前言
使用zabbix自帶的監控模板僅僅能對mysql的14個監控項進行監控,而更深入的innodb存儲引擎的狀態信息則無法監控到,如果能夠做到像innotop那樣對innodb進行監控,則可以使我們更加了解mysql的運行狀態。
網上有很多是采用percona的一個插件實現的,但本人在實踐過程中還是遇到一些小問題,這里詳細記錄下,以備日后參考。
部署
前提:已經部署好了zabbix-server和zabbix-agent
環境說明:
centos7
zabbix3.2.1
mariadb-5.5
percona-zabbix-templates-1.1.6-1.noarch
1、安裝percona插件所需的運行環境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?????????? #監控腳本目錄,以下兩個腳本需要在被監控端對應目錄存在
/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 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #監控模板
3、導入模板,配置——模板——導入
然而并未出現我們期待的結果是嗎?
經后來核實,參考https://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html??這里的模板文件僅適用于2.0的zabbix,如果需要下載3.0版本,可以在此處下載網友修改過的版本http://pan.baidu.com/s/1skGBZM9?,忘記在哪找的了,在此感謝!將此模板導入即可
4、添加自定義配置文件至目標主機的/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、授權監控用戶
MariaDB[(none)]>grant select,process,replication client on*.*to zbuser@'192.168.0.15'identifiedby'zbpass';
MariaDB[(none)]>flush privileges;
6、修改監控腳本
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執行路徑改為·which mysql·命令的執行結果,我這里改為/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/目錄下如果已經生成包含cacti的文件,需要將其刪除,并授權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添加此模板了
監控效果展示
友情提示:如果出現以下報錯,請仔細檢查zabbix 日志,是不是真的字符類型的問題,我在嘗試時候就出現了hostname與agent配置文件中hostname不相符的問題(蠢到家了!),如果使用zabbix-get能夠獲取到值,一般是沒大問題的。cacti字樣一定要一定要全部替換干凈。
到此為止,對mysql的詳細監控就完成了。