简介
Percona Monitoring and Management (PMM):是一款 Percona
发布的用于管理和监控 Linux
、MySQL
、MongoDB
、PostgreSQL
等数据库开源工具,通过 PMM
客户端收集到的监控数据,通过第三方软件 Grafana
展示出来。
PMM功能
- 支持对主机的硬盘、网络、CPU、内存的监控。
- 支持对
MyISAM
、InnoDB
、TokuDB
和PXC/Glarera
的监控。 - 支持
Query Analytics
的功能,可以检视执行了哪些SQL
指令,并对执行性能较差的SQL
进行优化。 - 支持了
MySQL
复制拓扑图结构构造。
官网 Demo
架构
PMM Client
pmm-admin:用于管理
PMM Client
的命令行工具,例如:添加、删除要监视的数据库实例。node_exporter:采集主机监控指标。
mysqld_exporter:采集
MySQL
监控指标。mongodb_exporter:采集
MongoDB
监控指标。proxysql_exporter:采集
ProxySQL
监控指标。
PMM Server
Query Analytics(QAN):主要用来搜集指令并作性能分析。
- QAN API:作为后端储存和读取
Query
资料用。 - QAN APP:提供图形化分析界面。
Metrics Monitor(MM):主要提供 MySQL
和 MongoDB
历史监控信息。组件说明如下:
- Prometheus:一个开源的服务监控系统和时间序列数据库,它连接到
PMM Client
上的exporter
聚集的监控数据。 - Consul:提供
API
让PMM Client
可以远端替Prometheus
新增、移除Hosts
,同时它也储存了监控的metadata
。 - Grafana: 这是一个第三方
Dashboard
和图形构建器,用于可视化Prometheus
中聚合的数据,以Web
方式呈现。 - Percona Dashboards:是由
Percona
开发的一组用于Grafana
的仪表板。上述的Web
页面都能从PMM Landing Page
直接连接。
安装
PMM Server
(1)安装 docker
1 | $ yum -y install docker |
(2)运行 docker
1 | $ systemctl start docker |
(3)下载容器镜像
1 | $ docker pull percona/pmm-server:latest |
(4)创建数据卷容器
1 | $ docker create \ |
(5)运行 PMM Server
1 | $ docker run -d \ |
(6)验证,通过 登录 查看是否正常显示,也可以通过如下方式:
1 | $ curl http://10.133.0.53/ping |
其他命令:
1 | $ docker exec -it 'xx' /bin/bash |
PMM Client
(1)确保 PMM Server
主机可访问
1 | $ ping 10.133.0.52 |
(2)安装 Client
包
1 | $ yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm |
(3)连接 PMM Client
到 PMM Server
1 | $ pmm-admin config --server 10.133.0.52 |
监控
主机
1 | # 添加监控 |
MySQL
1 | # 添加监控 |
1 | $ wget https://devops-files.oss-cn-qingdao.aliyuncs.com/pmm2-client-2.1.0-5.el7.x86_64.rpm |
1 | # 开启防火墙端口 |
1 | # 更改存储类型为MySQL |
在容器进入 mysql 客户端,创建数据库 grafana
1 | $ create database grafana; |
1 | $ pmm-admin --help |
实践
- 安装 pmm-client
1 | $ wget https://devops-files.oss-cn-qingdao.aliyuncs.com/pmm2-client-2.1.0-5.el7.x86_64.rpm |
- 监控主机
1 | # 将client_name修改为服务器ip |
- 监控 MySQL
1 | $ pmm-admin add mysql --user hdm --password Hdm@123! x.x.x.x:port |
- 配置告警
1 | # 进入docker |
- 升级 pmm-server
1 | $ docker pull percona/pmm-server:latest |
FA&Q
(1)docker
默认目录 /var/lib/docker
修改为 /data/dockerfile
1 | $ docker info |
1 | # 停止docker服务 |
1 | $ docker info |
(2)PMM
修改主机名作为唯一标识,修改为 ip
、port
1 | $ pmm-admin check-network |