由于zabbix自带的mysql监控模板监控的东西比较少,应公司DBA的要求,使用percona zabbix mysql-plugin实现对mysql的监控。

percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面。

好了,背景介绍就到这里了,下面开始进入正题,部署mysql的监控。

首先,需要安装安装php和php-mysql,因为用到了php脚本,所以在本机上面需要安装php,至于php的安装不是本文讨论的重点,在我以前的博客中有写该怎样安装php,这里就不重复讨论了。

然后,需要去percona官网下载最新版本的percona zabbix mysql-plugin,从1.1版本开始起支持zabbix,包括cacti,nagios也都有接口提供,这里我们下载的是percona zabbix mysql-plugin,链接在这:https://www.percona.com/downloads/percona-monitoring-plugins/1.1.5/percona-zabbix-templates-1.1.5-1.noarch.rpm

下载后使用

rpm -ivh percona-zabbix-templates-1.1.5-1.noarch.rpm

安装,安装完毕后会产生两个目录,每个目录有两个文件,详细结果如下所示:

[root@test2 ~]# ls /var/lib/zabbix/percona/
scripts  templates
[root@test2 ~]# ls /var/lib/zabbix/percona/scripts/
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php
[root@test2 ~]# ls /var/lib/zabbix/percona/templates/
userparameter_percona_mysql.conf  zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.5.xml

首先,我们需要下载模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.5.xml然后将这个模板文件导入到zabbixweb端的模板中去,然后将配置文userparameter_percona_mysql.conf放入到zabbix的配置文件目录中,我这的目录是/usr/local/zabbix-2.4.4/etc/zabbix_agentd.conf.d/

然后修改zabbix_agentd.conf配置文件,将配置文件所在目录添加进去,也就是添加下面这行语句:

Include=/usr/local/zabbix-2.4.4/etc/zabbix_agentd.conf.d/*.conf

然后修改脚本,首先修改sh脚本,也就是get_mysql_stats_wrapper.sh这个脚本,将下面这条语句进行修改:

RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

修改为:

RES=`/usr/local/mysql/bin/mysql -uroot -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

我这里Mysql没有设置root密码,可以在这里写入mysql的相应账号密码。

还有需要注意,在这个脚本中需要调用php来实现监控,所以需要修改php的路径,我的php的路径为/usr/local/php/bin/php,所以我将脚本中的那条命令修改成下面这样:

CMD="/usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"

之后保存该脚本,并修改权限为755

然后修改php脚本文件,修改用户名和密码如下:

$mysql_user = 'root';
$mysql_pass = '';
$mysql_port = 3306;

因为我的mysqlroot密码是空的,所以我这里密码是没有输入的,各位可以修改成相应的账号密码。

修改完之后保存配置并将权限设置为755,然后重启zabbix_agentd,在zabbix_server端添加刚刚我们导入进去的模板,就可以实现mysql的监控了,下面是监控的效果图:

wKiom1X37L6iVNK1AAIfR9Q2rdo459.jpg

wKioL1X37vSDlTgRAAKpRn6oNqc505.jpg

wKiom1X37MCC5th_AAGMmhgEvko208.jpg

但是貌似这个模板对于单个数据库虽然足够详细,对于数据库集群的监控还是不够给力,需要在其监控脚本的基础上进行修改,使其能够监控到数据库集群的状态信息那就更好了,当然,我这里只做了单个数据库的监控,集群由于没有实际部署,这里也就没有进行演示了,对这方面感兴趣的童鞋们可以自行阅读脚本源代码,对脚本进行修改以便于实现mysql集群的详细监控。本教程就写到这里了,多谢大家捧场,撒花