萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Zabbix 整合 MySQL Fpmmm (MPM) 實戰監控教學

前言

Fpmmm (FromDual Performance Monitor for MySQL and MariaDB) 是 MPM 的升級版,提供更便捷的 MySQL 效能監控體驗,但需啟用相應優化參數。本文將詳細記錄從環境準備、Zabbix Agent 部署、Fpmmm 安裝配置到模板導入的完整流程,助你快速建立 MySQL 監控體系。

一、MySQL 基礎環境配置

1.1 配置 PID 檔案與啟動腳本

cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start
pid-file=/var/run/mysqld/mysqld.pid

1.2 設定環境變數

vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile.d/mysql.sh

1.3 修改 my.cnf 並建立 PID 目錄

vim /etc/mysql/my.cnf
# 在 [mysqld] 區段加入
pid-file=/var/run/mysqld/mysqld.pid

mkdir -p /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld
/etc/init.d/mysqld restart

二、部署 Zabbix Agent

# 安裝 Zabbix 官方倉庫 (以 2.4 版為例)
rpm -ivh https://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install -y zabbix-agent zabbix-sender

# 修改 agent 配置
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.128.128
ServerActive=192.168.128.128
Hostname=Zabbix server

三、安裝與配置 Fpmmm

3.1 安裝 PHP 依賴

yum install -y php-cli php-process php-mysqli

3.2 配置 PHP 環境

cat << '_EOF' > /etc/php.d/fpmmm.ini
variables_order = "EGPCS"
date.timezone = 'Europe/Zurich'
_EOF

3.3 下載並部署 Fpmmm

wget -P /usr/local/ https://support.fromdual.com/admin/download/fpmmm-0.10.5.tar.gz
cd /usr/local
tar xf fpmmm-0.10.5.tar.gz
ln -s fpmmm-0.10.5 fpmmm
cd fpmmm
mkdir -p /etc/fpmmm
cp tpl/fpmmm.conf.template /etc/fpmmm/fpmmm.conf
chown -R zabbix: /etc/fpmmm

3.4 建立監控專用資料庫帳號

mysql -e "GRANT ALL ON *.* TO 'fpmmm'@'192.168.158.130' IDENTIFIED BY 'password';"
mysql -e "GRANT ALL ON *.* TO 'fpmmm'@'127.0.0.1' IDENTIFIED BY 'password';"
usermod -G mysql zabbix

3.5 修改 fpmmm.conf 關鍵配置

[default]
Type = mysqld
LogLevel = 2
LogFile = /tmp/fpmmm/fpmmm.log
CacheFileBase = /tmp/fpmmm/fpmmmCache
AgentLockFile = /tmp/fpmmm/fpmmm.lock
Username = fpmmm
Password = password
MysqlHost = 127.0.0.1
MysqlPort = 3306
ZabbixServer = 192.168.158.128
Disabled = false
Modules = innodb master myisam mysql process security
PidFile = /var/lib/mysql/mysqld.pid

[mysql-master]
Type = mysqld
Modules = fpmmm server

[mysql-slave]
Type = mysqld
MysqlPort = 3306
Modules = process mysql myisam innodb master slave security
PidFile = /var/run/mysqld/mysqld.pid

四、驗證與自動化

4.1 手動測試

/usr/local/fpmmm/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf

輸出 1 代表成功。

4.2 加入 Zabbix UserParameter

vim /etc/zabbix/zabbix_agentd.conf
UserParameter=FromDual.MySQL.check,/usr/local/fpmmm/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf

4.3 設定 Crontab 定時執行

crontab -e
* * * * * /usr/local/fpmmm/bin/fpmmm --config=/etc/fpmmm/fpmmm.conf >/dev/null 2>&1

五、日誌分析與模板導入

觀察 /tmp/fpmmm/fpmmm.log,正常運行會顯示 run finished (rc=0)。若出現 Instance db2 seems not to be a Slave 警告,請檢查從庫配置。

最後將以下 XML 模板匯入 Zabbix:

  • Template_FromDual.MySQL.mpm.xml (必須)
  • Template_FromDual.MySQL.server.xml
  • Template_FromDual.MySQL.process.xml
  • Template_FromDual.MySQL.mysql.xml
  • Template_FromDual.MySQL.innodb.xml
  • Template_FromDual.MySQL.myisam.xml
  • Template_FromDual.MySQL.master.xml
  • Template_FromDual.MySQL.slave.xml

進階模板尚包含 NDB Cluster、Galera Cluster、PBXT、Aria、DRBD 等專用監控。

copyright © 萬盛學電腦網 all rights reserved