PMM(Percona Monitoring and Management)
是一个用于管理和监控数据库性能的开源平台。 。 它能提供全面的基于时间和各类监控指标、计数器的分析。
性能测试中,是做数据库监控的较好工具。
官网
https://www.percona.com/doc/percona-monitoring-and-management/index.html
支持的数据库
mysql、mongodb、postgresql
原理分析
以mysql为例,整个工作的基本原理简单说:
- PMM-Client客户端,采用mysql_exporter(多数软件都有此exporter监控计数器),收集数据
- PMM-Client客户端调用PMM-Server服务端的api,把收集的数据保存到服务端的数据库。
- PMM-Server服务端其实是集成了Grafana的功能,支持对收集的数据做可视化展示和查询
快速搭建
- 安装服务端
$ docker pull percona/pmm-server:1
$ 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
$ docker run -d \
-p 80:80 \
--volumes-from pmm-data \
--name pmm-server \
--restart always \
percona/pmm-server:1
测试是否成功
浏览器访问http://服务器端ip:端口
- 安装客户端-在目标数据库主机
$ yum install pmm-client
- 配置客户端监控
pmm-admin config --server 服务器端ip:端口
pmm-admin add mysql:metrics --user 数据库用户名 --password 数据库密码 --host 数据库IP
pmm-admin add mysql:queries --user 数据库用户名 --password 数据库密码 --host 数据库IP
效果展示
慢sql监控:可以直观看到慢sql的执行过程、执行计划、执行详情、索引详情
数据库性能监控:可以监控CPU、IO、Swap、Network