PMM:一款开源的数据库监控与管理工具
PMM(Percona Monitoring and Management)是一款开源的数据库监控、可观测性和管理工具,专注于 MySQL、PostgreSQL、MongoDB 等数据库的性能优化、故障排查和健康管理。
PMM 项目主要使用 Go 语言开发,遵循 AGPLv3 开源协议,源代码托管在 GitHub:
https://github.com/percona/pmm/
体系结构
PMM 采用经典的客户端-服务器(CS)架构,如下图所示:
其中,PMM Server 作为中心化服务,用于存储、分析来自 Client 的数据,并且提供 Web 界面进行可视化。它整合了多个开源组件:
- Query Analytics(QAN):支持数据库性能分析,包括后端 QAN API 以及前端 QAN UI。
- Grafana:提供强大的数据可视化能力,以仪表盘(Dashboards)的形式展示性能指标。
- VictoriaMetrics:作为时间序列数据库,高效存储监控数据。PMM 早期版本使用 Prometheus。
- ClickHouse:用于支持查询分析功能,存储和分析查询日志。
PMM Client 安装在需要监控的目标数据库服务器上,负责收集数据库性能指标(例如查询延迟、连接数、锁状态等)和系统指标(例如 CPU、内存、磁盘 I/O)。它通过一系列称为 Exporters 的组件来抓取数据。
PMM Client 和 PMM Server 之间使用 SSL/TLS 加密连接确保数据安全。
功能特性
- 查询分析:自动抓取并分析 SQL 查询性能,快速识别慢查询、高负载操作,并提供优化建议。
- 性能监控:提供实时和历史的性能指标监控,涵盖操作系统(CPU、内存、磁盘I/O、网络)和数据库深层指标。
- 可视化仪表盘:友好的用户界面,提供了开箱即用的预置仪表盘,同时也支持自定义仪表盘。
- 告警与通知:支持基于预定义的规则(如复制中断、磁盘空间不足)触发告警,并可通过邮件等渠道发送通知。
- Percona 顾问:内置顾问程序定期执行数据库检查,识别潜在的安全威胁、性能下降、数据丢失或者损坏问题。
- 备份与恢复:PMM 可以零停机备份关键数据并最小化性能影响,也可以进行计划备份(热备、增量备份、物理备份)并且执行 PITR 恢复。
在线体验
PMM 提供了一个在线体验环境,地址如下:
https://pmmdemo.percona.com/
下载安装
PMM 提供了多种安装方法,使用 Docker 部署 PMM Server 的命令如下:
docker pull percona/pmm-server:3docker volume create pmm-datadocker run --detach --restart always \
--publish 443:8443 \
--volume pmm-data:/srv \
--name pmm-server \
percona/pmm-server:3
启动服务之后,在浏览器中输入以下地址:
https://SERVER_IP_ADDRESS
默认用户名和密码都是 admin,登录之后建议修改密码。
对于要监控的数据库服务器,还需要安装 PMM Client 并且进行相应的配置,建议参考以下官方文档:
https://docs.percona.com/percona-monitoring-and-management/3/quickstart/quickstart.html
总结
PMM 是一款功能强大且全面的开源数据库监控管理工具,对于需要深入洞察数据库性能、进行有效故障排查和优化的团队来说,是一个非常好的选择。它的开源特性也意味着你可以更灵活地进行定制和扩展。