mysql监控工具-PMM,让你更上一层楼(上)
主旨
linux环境
mysql环境
docker环境
PMM client:部署在每个监控数据库主机。搜集主机,数据库和查询分析数据等。
PMM Server:汇集数据并展示。提供表,dashboards和graph的web界面。
client介绍:
PMM client 包含以下内容:
pmm-admin:提供命令行交互界面管理pmm client,包括新增、删除数据库实例等
pmm-mysql-query-0: 管理 mysql QAN代理的服务,从数据库实例搜集查询性能数据并发送到pmm server上的QAN API
pmm-mongdb-query-0:管理mongdb QAN代理的服务
node_exporter:搜集系统性能数据,基于prometheus exporter
mysqld_exporter:mysql性能搜集
mongodb_exporter:mongodb性能搜集
proxysql_exporter:ProxySQL性能数据搜集
PMM部署支持docker、虚拟机部署,本文是基于docker来进行部署的
PMM server包含以下内容:
QAN(Query Analytics):分析mysql数据库的查询性能,相对于qan agent,它包含:
—qan api:后端存储和获取由agent采集的查询性能数据
—qan web:提供数据展示
metrics monitor:提供mysql和mongodb的历史性能数据查询:
—prometheus:第三方的时序数据库,连接到pmm client的exporter并汇集数据。consul给pmm client提供api用于远程list,添加,删除prometheus上的配置主机,并存储监控的元数据
—grafana:第三方的图形展示界面
Orchestrator:提供mysql复制的拓扑工具和图形界面
MPP server 和 MPP client 之间必须开通的端口:
MPP server:80/443
MPP client:42000/42001/42002/42003/42004
[yunweijia@localhost ~]$ sudo docker search pmm-server
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
percona/pmm-server PMM Server (https://www.percona.com/doc/perc… 92
perconalab/pmm-server PMM Server dev repo 6
perconalab/pmm-server-fb 1
perconalab/pmm-server-openshift 1
pdawn/pmm-server pmm server 0 [OK]
# 我们在这里下载最新的镜像
[yunweijia@localhost ~]$ sudo docker pull percona/pmm-server
[yunyunjia@localhost ~]$
为了确保数据的安全性,我们创建持久化的pmm镜像:
[yunweijia@localhost ~]$ sudo docker create -v /opt/prometheus/data -v /opt/consul-data -v /var/lib/mysql -v /var/lib/grafana --name pmm-data percona/pmm-server:latest /bin/true
参数解释:
docker create:该命令指示Docker守护程序从映像创建容器
-v:该选项初始化数据卷的容器
--name:该选项为你可以用于引用Docker网络中的容器的容器分配一个自定义名称
上面我们指定了目录,那么我们就要创建这些目录:
[yunweijia@localhost ~]$ sudo mkdir -pv /opt/prometheus
mkdir: 已创建目录 "/opt/prometheus"
[yunweijia@localhost ~]$ sudo mkdir -pv /opt/prometheus/data
mkdir: 已创建目录 "/opt/prometheus/data"
[yunweijia@localhost ~]$ sudo mkdir -pv /var/lib/mysql
mkdir: 已创建目录 "/var/lib/mysql"
[yunweijia@localhost ~]$ sudo mkdir -pv /var/lib/grafana
mkdir: 已创建目录 "/var/lib/grafana"
[yunweijia@localhost ~]$
启动容器:
[yunweijia@localhost ~]$ sudo docker run -d -p 80:80 --volumes-from pmm-data --name pmm-server --restart always percona/pmm-server:latest
ae3a4427c08eaab5eb697369ec7d23e1362b03d1a1035660c01ac98b9db761fb
[yunweijia@localhost ~]$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae3a4427c08e percona/pmm-server:latest "/opt/entrypoint.sh" 4 seconds ago Up 4 seconds (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp pmm-server
[yunweijia@localhost ~]$
例如:http://192.168.112.130
界面如下: