前言
使用zabbix自帶的監(jiān)控模板僅僅能對mysql的14個監(jiān)控項進行監(jiān)控,而更深入的innodb存儲引擎的狀態(tài)信息則無法監(jiān)控到,如果能夠做到像innotop那樣對innodb進行監(jiān)控,則可以使我們更加了解mysql的運行狀態(tài)。
網(wǎng)上有很多是采用percona的一個插件實現(xiàn)的,但本人在實踐過程中還是遇到一些小問題,這里詳細記錄下,以備日后參考。
部署
前提:已經(jīng)部署好了zabbix-server和zabbix-agent
環(huán)境說明:
centos7
zabbix3.2.1
mariadb-5.5
percona-zabbix-templates-1.1.6-1.noarch
1、安裝percona插件所需的運行環(huán)境php與php-mysql
yum? -y install php php-mysql
2、下載percona插件模板,yum安裝即可
yum -y install? percona-zabbix-templates
安裝完成后生成如下幾個文件
[root@zabbix ~]# rpm -ql percona-zabbix-templates-1.1.6-1.noarch
/var/lib/zabbix/percona
/var/lib/zabbix/percona/scripts?????????? #監(jiān)控腳本目錄,以下兩個腳本需要在被監(jiān)控端對應(yīng)目錄存在
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
/var/lib/zabbix/percona/templates???????? #模板目錄
/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #監(jiān)控模板
3、導(dǎo)入模板,配置——模板——導(dǎo)入

然而并未出現(xiàn)我們期待的結(jié)果是嗎?
經(jīng)后來核實,參考https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html??這里的模板文件僅適用于2.0的zabbix,如果需要下載3.0版本,可以在此處下載網(wǎng)友修改過的版本http://pan.baidu.com/s/1skGBZM9?,忘記在哪找的了,在此感謝!將此模板導(dǎo)入即可
4、添加自定義配置文件至目標(biāo)主機的/etc/zabbix/zabbix_agentd.d/ 下
scp? /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf 192.168.0.15:/etc/zabbix/zabbix_agentd.d/
5、授權(quán)監(jiān)控用戶
MariaDB[(none)]>grant select,process,replication client on*.*to zbuser@'192.168.0.15'identifiedby'zbpass';
MariaDB[(none)]>flush privileges;
6、修改監(jiān)控腳本
vim? /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
HOST=192.168.0.15
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt? 改為 "CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt"
TIMEFLM=`stat -c %Y? /tmp/$HOST-mysql_cacti_stats.txt改為`TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt`
RES=HOME=~zabbix mysql 這里的mysql執(zhí)行路徑改為·which mysql·命令的執(zhí)行結(jié)果,我這里改為/usr/bin/mysql
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zbuser';?
$mysql_pass = 'zbpass';
$mysql_port = 3306;
這里主要修改連接mysql的用戶,密碼,端口;同時末行模式下將所有cacti替換為zabbix
:1,$s/cacti/zabbix/g
需要注意的是,ls /tmp/目錄下如果已經(jīng)生成包含cacti的文件,需要將其刪除,并授權(quán)zabbix為屬主,屬組 并確保以上腳本文件是否還有未修改的地方。
[root@zabbix ~]# ls /tmp/192.168.0.15-mysql_zabbix_stats.txt? -lh
-rw-rw-r-- 1 zabbix zabbix 1.3K Nov 17 14:32 /tmp/192.168.0.15-mysql_zabbix_stats.txt
測試
[root@zabbix ~]# php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host 192.168.0.15 --items gg
gg:9[root@zabbix ~]# zabbix_get -s 192.168.0.15 -p10050 -k "MySQL.Handler-commit"
766
[root@zabbix ~]# zabbix_get -s 192.168.0.15 -p10050 -k "MySQL.Bytes-sent"? ? ?
?1107086
以上配置完成后就可以為你指定的host添加此模板了
監(jiān)控效果展示



友情提示:如果出現(xiàn)以下報錯,請仔細檢查zabbix 日志,是不是真的字符類型的問題,我在嘗試時候就出現(xiàn)了hostname與agent配置文件中hostname不相符的問題(蠢到家了?。?,如果使用zabbix-get能夠獲取到值,一般是沒大問題的。cacti字樣一定要一定要全部替換干凈。

到此為止,對mysql的詳細監(jiān)控就完成了。