# 如何進行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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。