zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程


因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式

Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

对线上的MySQL服务器实现监控,percona监控插件是php开发,因此要在agent安装php环境

一、zabbix-agent端操作(即被监控的Mysql服务器)
1.安装php环境和插件

①安装php环境
percona监控插件是php开发,因此要在agent安装php环境

# yum install zabbix-agent php php-mysql
[[email protected] ~]# rpm -qa zabbix-agent php php-mysql
php-5.3.3-49.el6.x86_64
zabbix-agent-1.8.22-1.el6.x86_64
php-mysql-5.3.3-49.el6.x86_64

 

②安装percona插件

[[email protected] ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

 

③配置参数

# mkdir -p /etc/zabbix/zabbix_agentd.d
# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf

 

将模板include到配置文件中
# vim /etc/zabbix/zabbix_agentd.conf
添加如下:

Include=/etc/zabbix/zabbix_agentd.d/

 

重启生效

service zabbix-agent restart

 

2.修改监控相关的脚本:

①编辑监控的php配置文件(通过该配置文件获取Mysql的账号密码)

单独添加一个较低权限的用户zabbix专门用于对数据库进行监控

mysql> GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO [email protected]'localhost' IDENTIFIED BY 'zabbixpassword'; 
mysql> flush privileges;

 

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf

<?php
$mysql_user = 'zabbix'; 
$mysql_pass = 'zabbixpassword';

 

②编辑ss_get_mysql_stats.php文件,修改具体的用户名、密码、socket、Mysql端口等参数

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbixpassword';
$mysql_port = 3306;
$mysql_socket = "/tmp/mysql.sock";

 zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

③在zabbix-agent客户端进行测试(一定要能获取数据,否则服务端会无法获取监控数据)

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj
276671

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gw
1

 

二、zabbix-server web端操作
1.导入监控模板

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程
报错:
nvalid tag "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" is expected.

将zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml导入zabbix2.4中再导出。之后将新的导出xml导入到3.0中问题解决。

2.修改日志权限

chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt

 

3.添加客户端模板

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程4.通过服务端验证是否生效,并查看图像

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

客户端/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf 文件可以看到支持的监控项

[[email protected] scripts]# zabbix_get -s 192.168.3.12 -k MySQL.file-reads
171
[[email protected] scripts]# zabbix_get -s 192.168.3.12 -k MySQL.os-waits
2

 zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

三、监控mysql主从
需要在slave的节点上配置

修改slave上的监控脚本,添加账号、密码、socket等参数

# vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
RES=`HOME=~zabbix mysql -h192.168.3.13 -uzabbix -pzabbixpassword -S /tmp/mysql.sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

 zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程

 

测试报警是否生效
mysql> stop slave;
Query OK, 0 rows affected (0.13 sec)

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程