zabbix3.2.1使用percona插件實現mysql監控

前言

使用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的詳細監控就完成了。


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容