請參考《安裝部署分佈式監控系統Zabbix 2.06》 http://www.linuxidc.com/Linux/2013-07/86942.htm前端
注意:如下操做都是在被監控端執行的。mysql
MPM(PERFORMANCE MONITOR FOR MYSQL)依賴的相關Perl模塊安裝:
yum install perl-File-Which perl-libwww-perl perl-Digest-SHA1 perl-DBD-MySQL perl-Time-HiRes perl-Crypt-SSLeay
下載MPM並解壓:
wget -c http://www.shinguz.ch/download/mysql_performance_monitor-latest.tar.gz
tar zxvf mysql_performance_monitor-latest.tar.gzlinux
MPM模板:
tar zxvf mysql_performance_monitor_templates-0.9.1.tar.gz
cd mysql_performance_monitor_templates-0.9.1/xmlweb
在Zabbix Web UI導入監控所需的模板(「Configuration」->」Templates」->」Import」):
Template_FromDual.MySQL.mpm.xml (監控mpm agent自己,這個必須導入)
Template_FromDual.MySQL.server.xml (監控Linux系統跟數據庫使用相關的附加項)
Template_FromDual.MySQL.process.xml (監控各類Linux進程[好比:mysqld,ndbd])
Template_FromDual.MySQL.mysql.xml (監控MySQL經常使用狀態變量)
Template_FromDual.MySQL.innodb.xml (監控InnoDB存儲引擎狀態變量)
Template_FromDual.MySQL.myisam.xml (監控MyISAM存儲引擎狀態變量)
Template_FromDual.MySQL.master.xml (監控MySQL主從複製的Master狀態)
Template_FromDual.MySQL.slave.xml (監控MySQL主從複製的Slave狀態)
MPM其它用途的模板:
Template_FromDual.MySQL.ndb.xml (監控MySQL Cluster)
Template_FromDual.MySQL.galera.xml (監控MySQL Galera Cluster)
Template_FromDual.MySQL.pbxt.xml (監控PBXT存儲引擎狀態變量)
Template_FromDual.MySQL.aria.xml (監控Aria存儲引擎的狀態變量)
Template_FromDual.MySQL.drbd.xml (監控DRBD設備狀態信息)sql
安裝MPM:數據庫
tar zxvf mysql_performance_monitor_agent-0.9.1.tar.gz
mv mysql_performance_monitor_agent-0.9.1 /usr/local/mysql_performance_monitor-agent
修改FromDualMySQLagent.pl中的zabbix_sender的路徑:vim
cd /usr/local/mysql_performance_monitor-agent/
sed -i 's|/usr/local/bin|/usr/local/zabbix/bin/|g' FromDualMySQLagent.pl
將MPM Agent的Keys配置添加到Zabbix Agentd配置文件目錄中:windows
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d
vi FromDual_MySQL_monitoring.conf
# cat FromDual_MySQL_monitoring.conf
UserParameter=FromDual.MySQL.check,/usr/local/mysql_performance_monitor-agent/FromDualMySQLagent.pl /usr/local/mysql_performance_monitor-agent/etc/FromDualMySQLagent.conf
建立MySQL監控用戶mpm:分佈式
mysql> create user 'mpm'@'127.0.0.1' identified by '123456';
mysql> grant process, replication client on *.* to 'mpm'@'127.0.0.1';
mysql> flush privileges;
配置MPM Agent:ide
cd /usr/local/mysql_performance_monitor-agent/etc
cp FromDualMySQLagent.conf.template FromDualMySQLagent.conf
mkdir -p /var/log/zabbix
mkdir -p /var/log/zabbix/cache
touch /var/log/zabbix/FromDualMySQLagent.log
chown -R zabbix:zabbix /var/log/zabbix
chmod o+r /var/run/mysqld/mysqld.pid #這裏要根據本身實際狀況進行修改
vi FromDualMySQLagent.conf
# cat FromDualMySQLagent.conf
[default]
# Type of section:
# mysqld for a normal MySQL database
# ndbd for a MySQL cluster
Type = mysqld
# Debug levels are:
# 1 is logging only errors
# 2 is logging errors and warnings (this is the default)
# 3 logs some informations messages as well
# 4 logs everything (for debugging purposes only)
Debug = 2
LogFile = /var/log/zabbix/FromDualMySQLagent.log
# Directory where the Cache files should be written to:
CacheFileBase = /var/log/zabbix/cache/FromDualAgentCache
# If you agent is not located in the same time zone as your server
# TimeShift = +0.0
# Information for MySQL connections: 下面的這幾項須要修改
Username = mpm
Password = 123456
MysqlHost = 127.0.0.1
MysqlPort = 3306
# Zabbix Server IP address 須要修改
ZabbixServer = 192.168.1.190
# If section is disabled
Disabled = false
# Possible modules for databases are:
# process mysql myisam aria innodb pbxt ndb master slave drbd galera memcache
# Possible modules for servers are:
# mpm server
# Usual modules are
Modules = process mysql myisam innodb
# Special parameter which is used for module ndb and process
ClusterLog = /var/lib/mysql-cluster/ndb_1_cluster.log
# MySQL Pid file, need read permission for zabbix user
PidFile = /var/run/mysqld/mysqld.pid #這裏也須要修改
[db_server]
Type = mysqld
Modules = mpm server
# All MySQL databases here
# Try to avoid section names with spaces!
[192.168.1.191_MySQL_5.5.29] # This MUST match Hostname in Zabbix! 注意:該行及如下的幾行須要取消註釋
Type = mysqld
MysqlPort = 3306
Modules = process mysql myisam innodb slave
PidFile = /var/run/mysqld/mysqld.pid
Debug = 1
注:這裏監控的MySQL Server是MySQL主從複製的中的Slave機器.
查看mpm-agent的日誌會報錯,一個是mysql.pid文件讀取權限的問題,這個能夠自行解決。還有一個就是鏈接zabbix server的問題:解決方法以下:
安裝MySQL MPM插件時,在zabbix web前端點擊Monitoring->Latest data查看監控,沒有生成監控數據
查看MPM的日誌,發現下面報錯
[root@localhost etc]# tail -f /var/log/zabbix/FromDualMySQLagent.log
15989:2017-04-10 07:59:44.725 - INFO: FromDual Performance Monitor for MySQL (0.9.1) run started.
15989:2017-04-10 07:59:44.945 - WARN: 192.168.174.187, 10051, db_server
15989:2017-04-10 07:59:44.945 - WARN: Connection to zabbix server failed (rc=1305)!
15989:2017-04-10 07:59:46.078 - WARN: 192.168.174.187, 10051, db_server
15989:2017-04-10 07:59:46.078 - WARN: Connection to zabbix server failed (rc=1305)!
解決方法: 註釋掉Zabbix Agent端下面文件中的check語句 [root@localhost etc]# vim /usr/local/mysql_performance_monitor-agent/lib/sendData.pm # $rc = &FromDualMySQLagent::checkConnectionToZabbixServer($main::gParameter{'ZabbixServer'}, $main::gParameter{'ZabbixServerPort'}, $main::gParameter{'Hostname'}); 以後關閉Agentd服務,刪除cache文件夾裏面的文件 [root@localhost cache]# cd /var/log/zabbix/cache [root@localhost cache]# rm -rf * 以後重啓Agentd服務