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、导入模板,配置——模板——导入

zabbix3.2.1使用percona插件实现mysql监控_第1张图片

然而并未出现我们期待的结果是吗?

经后来核实,参考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添加此模板了

监控效果展示

zabbix3.2.1使用percona插件实现mysql监控_第2张图片
zabbix3.2.1使用percona插件实现mysql监控_第3张图片
zabbix3.2.1使用percona插件实现mysql监控_第4张图片

友情提示:如果出现以下报错,请仔细检查zabbix 日志,是不是真的字符类型的问题,我在尝试时候就出现了hostname与agent配置文件中hostname不相符的问题(蠢到家了!),如果使用zabbix-get能够获取到值,一般是没大问题的。cacti字样一定要一定要全部替换干净。


到此为止,对mysql的详细监控就完成了。


你可能感兴趣的:(zabbix3.2.1使用percona插件实现mysql监控)