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的详细监控就完成了。