- 安裝 Perl 依賴:
yum install -y perl-File-Which perl-libwww-perl perl-Digest-SHA perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
- 部署 MPM Agent:
tar xf mysql_performance_monitor-latest.tar.gz
mkdir -p /opt/mpm
mv mysql_performance_monitor/* /opt/mpm/
- 配置 Zabbix Agent (
/etc/zabbix/zabbix_agentd.conf):
UserParameter=FromDual.MySQL.check,/opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf
- 配置 MPM Agent (
/etc/zabbix/FromDualMySQLagent.conf):
[default]
Type = mysqld
LogFile = /var/log/zabbix/FromDualMySQLagent.log
Username = mpm
Password = mpmsecret
MysqlHost = 127.0.0.1
MysqlPort = 3306
ZabbixServer = localhost
Modules = process mysql myisam innodb
[mysql1] # 必須與 Zabbix Server 中主機名一致
Type = mysqld
Modules = process mysql myisam innodb
PidFile = /var/lib/mysql/mysql.pid
- 創建監控用戶並授權:
CREATE USER 'mpm'@'127.0.0.1' IDENTIFIED BY 'mpmsecret';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'mpm'@'127.0.0.1';
- 創建日誌目錄並授權:
mkdir -p /var/log/zabbix /var/log/zabbix/cache
chown -R zabbix:zabbix /var/log/zabbix
- 修正 zabbix_sender 路徑 (腳本內硬編碼):
sed -i 's|/usr/local/bin|/usr/local/zabbix/bin/|g' /opt/mpm/FromDualMySQLagent.pl
- 啟動/重啟 Zabbix Agent:
systemctl restart zabbix-agent
- 驗證採集:
/opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf
# 返回 1 表示成功
- 加入 Crontab 定時推送 (可選,Agent 模式已含輪詢):
* * * * * /opt/mpm/FromDualMySQLagent.pl /etc/zabbix/FromDualMySQLagent.conf >/dev/null 2>&1
| 分類 | 核心指標 |
| 連接/線程 | Threads_connected, Threads_running, Connection_errors_* |
| 查詢吞吐 | Questions, Queries, Com_select, Com_insert, Com_update, Com_delete |
| InnoDB | Innodb_buffer_pool_reads, Innodb_buffer_pool_pages_*, Innodb_row_lock_*, Innodb_log_waits |
| 複製 | Seconds_Behind_Master, Slave_IO_Running, Slave_SQL_Running |
| 緩存/表 | Open_tables, Opened_tables, Table_locks_*, Qcache_* (舊版) |
| 慢查詢 | Slow_queries, Slow_launch_threads |