您好,登录后才能下订单哦!
# 如何进行MySQL PMM搭建及细节分析
## 目录
1. [PMM概述](#pmm概述)
2. [环境准备](#环境准备)
3. [安装部署](#安装部署)
- [Docker方式安装](#docker方式安装)
- [二进制包安装](#二进制包安装)
4. [配置详解](#配置详解)
- [PMM Server配置](#pmm-server配置)
- [PMM Client配置](#pmm-client配置)
5. [监控指标解析](#监控指标解析)
6. [常见问题排查](#常见问题排查)
7. [最佳实践](#最佳实践)
8. [总结](#总结)
---
## PMM概述
Percona Monitoring and Management (PMM) 是由Percona开发的开源数据库监控解决方案,专为MySQL、MariaDB、PostgreSQL等关系型数据库设计。其核心特点包括:
- **全栈监控**:覆盖查询性能、系统资源、复制状态等
- **可视化仪表盘**:基于Grafana的300+预设面板
- **查询分析器**:通过QAN工具捕获慢查询
- **开源免费**:AGPLv3许可协议
架构组成:
PMM Server(数据收集/存储/展示) ↑ PMM Client(部署在被监控主机)
## 环境准备
### 硬件要求
| 组件 | 最低配置 | 生产推荐 |
|-------------|------------|----------------|
| PMM Server | 2核4GB内存 | 4核8GB内存+100GB存储 |
| PMM Client | 1核1GB内存 | 与数据库规格匹配 |
### 软件依赖
- **Server端**:
- Docker 20.10+ 或 CentOS 7+/Ubuntu 18.04+
- 开放端口:80(Web)、443(HTTPS)、9000(PMM管理)
- **Client端**:
- Perl 5.10+
- `pt-summary`、`pt-mysql-summary`工具
## 安装部署
### Docker方式安装(推荐)
```bash
# 创建数据卷
docker volume create pmm-data
# 启动容器
docker run -d \
-p 80:80 -p 443:443 \
-v pmm-data:/srv \
--name pmm-server \
--restart always \
percona/pmm-server:2.38.0
# 添加Percona仓库
sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
sudo percona-release enable pmm2-server
# 安装服务端
sudo yum install -y pmm2-server
# 初始化配置
sudo pmm-server config --password admin123 --bind-address 0.0.0.0
关键配置文件路径:
/etc/pmm-server/config.json
/var/lib/pmm-server/grafana/
重要参数示例:
{
"listen_port": 443,
"data_retention": "720h",
"query_timeout": "30s",
"disable_updates": false
}
注册客户端到Server:
pmm-admin config --server-url=https://<server-ip> --server-insecure-tls --server-username=admin --server-password=admin123
添加MySQL监控:
pmm-admin add mysql \
--username=pmm-monitor \
--password=SecurePass123 \
--query-source=slowlog \
--host=127.0.0.1 --port=3306
资源层:
数据库层:
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
SHOW ENGINE INNODB STATUS;
查询分析:
指标名称 | 警告阈值 | 严重阈值 |
---|---|---|
连接数利用率 | 70% | 90% |
InnoDB缓冲池命中率 | < 98% | < 95% |
复制延迟(seconds_behind) | > 30 | > 300 |
pmm-admin check-network
失败
telnet <server-ip> 443
curl -k https://<server-ip>/ping
pmm-agent.log
)PROCESS
和REPLICATION CLIENT
权限)
-- 在PMM Server上检查数据收集
SELECT * FROM metrics WHERE metric_name LIKE 'mysql_%' LIMIT 10;
使用TLS加密通信:
pmm-admin config --server-url=https://<server-ip> --server-cert=/path/to/cert.pem
遵循最小权限原则:
CREATE USER 'pmm-monitor'@'%' IDENTIFIED BY 'ComplexP@ssw0rd';
GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'pmm-monitor'@'%';
调整数据保留策略(默认30天):
docker exec pmm-server edit-config /srv/grafana/grafana.ini
修改[database]
段的retention
值
启用数据压缩:
storage:
compress: true
PMM作为开箱即用的MySQL监控方案,其核心价值在于: 1. 快速定位性能瓶颈:通过QAN分析慢查询模式 2. 历史数据追溯:基于VictoriaMetrics的时间序列存储 3. 告警集成:可与Alertmanager无缝对接
后续优化方向: - 自定义Grafana仪表盘 - 配置阈值告警规则 - 集成Prometheus其他exporter
注意事项:生产环境建议部署高可用架构,可通过部署多个PMM Server+负载均衡实现。 “`
该文档共计约2150字,采用Markdown格式编写,包含代码块、表格、列表等结构化元素,便于技术团队直接用于内部知识库建设。实际部署时需根据具体环境调整参数。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。