前言
- Percona Monitoring and Management (PMM)是一款开源的专用于管理和监控MySQL、MongoDB、PostgreSQL、ProxySQL、AWS RDS性能的开源平台,并且可以监控前述这些数据库所在的服务器资源,通过PMM客户端收集到的DB监控数据用第三方软件Grafana画图展示出来。
- 通过PMM,可以获得以下信息
1、广泛的可视化系统性能指标
2、收集并分析复杂的多系统拓扑结构的数据
3、深入发现效率低下原因,预测性能问题,或解决现有问题
4、注意潜在的安全问题并补救他们
PMM简介
PMM Server架构
- Query Analytics (QAN) 可以在时间段内分析MySQL查询性能,除了客户端QAN代理外,它还包括以下内容
- QAN API是用于存储和访问由在PMM客户端上运行的QAN代理收集的查询数据的后端.
- QAN Web App应用程序是一个用于可视化收集的查询分析数据的Web应用程序.
- Metrics Monitor 提供对MySQL或MongoDB Server实例至关重要的指标的历史视图,它包括以下内容:
- VictoriaMetrics, 时序型数据库. (Replaced Prometheus in PMM 2.12.0.)
- ClickHouse 是第三方列式存储数据库,方便查询分析功能.
- Grafana 是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能.
- Percona Dashboards 是我们开发的Grafana的一组仪表板.
PMM Client架构
-
pmm-admin
是用于管理PMM客户端的命令行工具,例如,添加和删除要监视的数据库实例. (Read more. -
pmm-agent
是一个客户端组件,是一个最小的命令行界面,它是带来客户端功能的中央入口点:它携带客户的身份验证,获取存储在PMM服务器上的客户端配置,管理性能数据收集器和其他代理. -
node_exporter
服务器性能数据收集器. -
mysqld_exporter
MySQL性能数据收集器. -
mongodb_exporter
MongoDB性能数据收集器. -
postgres_exporter
PostgreSQL性能数据收集器. -
proxysql_exporter
ProxySQL 性能数据收集器. -
rds_exporter
Amazon RDS性能数据收集器. -
azure_database_exporter
Azure database性能数据收集器.
安装部署
PMM Server
- 创建
docker-compose_prometheus_grafana.yml
配置文件
cd /opt/docker-compose
touch docker-compose_pmm-server.yml
- 编辑
docker-compose_pmm-server.yml
文件并键入
services:
pmm-server:
image: percona/pmm-server:2
hostname: pmm-server
container_name: pmm-server
restart: always
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"
ports:
- "443:443"
volumes:
- data:/srv
volumes:
data:
With this approach, data is stored in a volume, not in a
pmm-data
container.
- 查看数据卷
docker volume ls
local pmm-server_data
- 如果存在垃圾数据,可以尝试以下命令进行清除
docker stop pmm-server
docker rm pmm-server
docker inspect pmm-server_data
[
{
"CreatedAt": "2021-05-28T16:16:15+08:00",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "pmm-server",
"com.docker.compose.version": "1.29.2",
"com.docker.compose.volume":