如何进行MYSQL PMM搭建及细节分析

发布时间:2021-12-10 16:19:06 作者:柒染
来源:亿速云 阅读:141
# 如何进行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

二进制包安装(CentOS示例)

# 添加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

配置详解

PMM Server配置

关键配置文件路径:

/etc/pmm-server/config.json
/var/lib/pmm-server/grafana/

重要参数示例:

{
  "listen_port": 443,
  "data_retention": "720h",
  "query_timeout": "30s",
  "disable_updates": false
}

PMM Client配置

注册客户端到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

监控指标解析

核心监控维度

  1. 资源层

    • CPU使用率(user/system/iowait)
    • 内存消耗(buffers/cache)
    • 磁盘IOPS和延迟
  2. 数据库层

    SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
    SHOW ENGINE INNODB STATUS;
    
  3. 查询分析

    • 执行频率TOP 50查询
    • 平均锁定时间超过100ms的语句
    • 全表扫描比例

关键指标阈值参考

指标名称 警告阈值 严重阈值
连接数利用率 70% 90%
InnoDB缓冲池命中率 < 98% < 95%
复制延迟(seconds_behind) > 30 > 300

常见问题排查

1. 客户端无法连接Server

2. 监控数据缺失

3. Grafana面板显示”No Data”

最佳实践

安全建议

  1. 使用TLS加密通信:

    pmm-admin config --server-url=https://<server-ip> --server-cert=/path/to/cert.pem
    
  2. 遵循最小权限原则:

    CREATE USER 'pmm-monitor'@'%' IDENTIFIED BY 'ComplexP@ssw0rd';
    GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'pmm-monitor'@'%';
    

性能优化

总结

PMM作为开箱即用的MySQL监控方案,其核心价值在于: 1. 快速定位性能瓶颈:通过QAN分析慢查询模式 2. 历史数据追溯:基于VictoriaMetrics的时间序列存储 3. 告警集成:可与Alertmanager无缝对接

后续优化方向: - 自定义Grafana仪表盘 - 配置阈值告警规则 - 集成Prometheus其他exporter

注意事项:生产环境建议部署高可用架构,可通过部署多个PMM Server+负载均衡实现。 “`

该文档共计约2150字,采用Markdown格式编写,包含代码块、表格、列表等结构化元素,便于技术团队直接用于内部知识库建设。实际部署时需根据具体环境调整参数。

推荐阅读:
  1. MySQL-MongoDB开源监控利器PMM增加slack报
  2. MySQL-MongoDB开源监控利器之PMM

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql pmm

上一篇:faasd和pai二个后端安装启动逻辑是怎样的

下一篇:Nginx高可用怎么实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》