Mysql监控平台搭建

PMM开源监控平台

Posted by BY lingjun on April 25, 2019 本文总阅读量

Mysql监控平台搭建

Percona Monitoring and Management(PMM)是一款管理和监控mysql,mongoDB性能的开源平台

PMM架构

PMM-Query Analytics(QAN)
查询分析器,PMM组件之一,因为会统计大量数据并实时采集数据,会影响mysql10%左右性能,不开启

pmm服务端需要开放端口
80或443端口,以访问PMM Web界面

pmm客户端需要开放端口
42000 用于PMM收集通用的系统指标
42002 让PMM收集MySQL服务器指标

磁盘空间
安装PMM客户端软件包至少需要100 MB的存储空间。
默认情况下,Metrics Monitor的保留期设置为30天。
对于每个受监控的数据库节点,PMM需要大约1GB的存储空间,数据保留设置为一周。
通过在创建和运行PMM Server容器时传递METRICS_RETENTION和QUERIES_RETENTION环境变量,可以控制数据保留。
-e METRICS_RETENTION=168h (我们保留一周数据,一周前数据进行备份归档)

内存
对于一个受监视的数据库节点,最小内存为2 GB,但在添加更多节点时,它不是线性的。
例如,应该使用16 GB轻松处理来自20个节点的数据。根据可用磁盘空间和要求,您可能需要调整数据保留时间。

性能问题
如果MySQL服务器有很多模式或表,建议在添加实例时禁用每个表指标

sudo pmm-admin add mysql --disable-tablestats

安装步骤

  • server端
#从Docker Hub获取最新版本
docker pull percona/pmm-server:1
 
#创建pmm-data容器
docker create \
   -v /opt/prometheus/data \
   -v /opt/consul-data \
   -v /var/lib/mysql \
   -v /var/lib/grafana \
   --name pmm-data \
   percona/pmm-server:1 /bin/true
 
#创建和启动pmm服务器容器
docker run -d \
   -p 80:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \
   percona/pmm-server:1
   -e metrics_retention=168
  • Client端
#yum安装client
yum install -y pmm-client
 
 
#客户端连接到服务端
pmm-admin config --server serverIP
 
 
#检测网络是否通
pmm-admin check-network
 
 
#添加监控项
pmm-admin add linux:metrics
 
#查看监控项
pmm-admin list

备份还原

  • 备份
#创建备份目录
mkdir -p /data/pmm-data-backup
mkdir -p /data/pmm-data-backup/opt/prometheus
mkdir -p /data/pmm-data-backup/var/lib
 
 
#停止docker容器
docker stop pmm-server
 
 
#从pmm-data容器中复制数据
docker cp pmm-data:/opt/prometheus/data /data/pmm-data-backup/opt/prometheus/
docker cp pmm-data:/opt/consul-data /data/pmm-data-backup/opt/
docker cp pmm-data:/var/lib/mysql /data/pmm-data-backup/var/lib/
docker cp pmm-data:/var/lib/grafana /data/pmm-data-backup/var/lib/
 
#备份已完成,启动pmm-server
docker start pmm-server
  • 还原
#创建一个pmm-data容器
docker create \
   -v /opt/prometheus/data \
   -v /opt/consul-data \
   -v /var/lib/mysql \
   -v /var/lib/grafana \
   --name pmm-data \
   percona/pmm-server:1 /bin/true
 
 
#将数据从备份目录还原到pmm-data容器中
docker cp /data/pmm-data-backup/opt/prometheus/data pmm-data:/opt/prometheus/
docker cp /data/pmm-data-backup/opt/consul-data pmm-data:/opt/
docker cp /data/pmm-data-backup/var/lib/mysql pmm-data:/var/lib/
docker cp /data/pmm-data-backup/var/lib/grafana pmm-data:/var/lib/
 
 
#对pmm-data文件应用正确的所有权
docker run --rm --volumes-from pmm-data -it percona/pmm-server:1 chown -R pmm:pmm /opt/prometheus/data /opt/consul-data
docker run --rm --volumes-from pmm-data -it percona/pmm-server:1 chown -R grafana:grafana /var/lib/grafana
docker run --rm --volumes-from pmm-data -it percona/pmm-server:1 chown -R mysql:mysql /var/lib/mysql
 
 
#创建一个新的pmm-server容器
docker run -d \
   -p 80:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \
   percona/pmm-server:1