zabbix-使用percona mysql插件来监控mysql

概述

       zabbix自带的mysql插件来监控mysql数据库,但是太过简陋了,为了更详细的监控,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式。

安装php脚本运行环境

percona监控zabbix的脚本使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了:

yum install -y php php-mysql

 

安装官方percona插件

官网:https://www.percona.com/doc/percona-monitoring-plugins/1.1/index.html

image

1,安装percona的yum源

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

2,安装percona监控插件

yum install percona-zabbix-templates

3,查看percona-zabbix-templates 安装后的脚本位置和模板位置

[root@mysql03 home]# rpm -ql  percona-zabbix-templates-1.1.8-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.8.xml

注:安装后会生成2个目录,/var/lib/zabbix/percona/scripts是监控脚本目录,/var/lib/zabbix/percona/templates是监控mysql的xml模版目录,然后把/var/lib/zabbix/percona/templates/目录下的模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml复制出来,在zabbix的管理界面import导入进去,但是报如下错误:

image

解决办法:

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

4,拷贝userparameter_percona_mysql.conf文件到被监控的mysql服务器上

cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

5,修改客户端的zabbix_agentd.conf文件, 把userparameter_percona_mysql.conf 所在的目录Include增加进去

Include=/etc/zabbix/zabbix_agentd.d/*.conf

6,修改监控脚本

# 修改用户名,密码,端口,sock文件路径
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = 'Ab.12345';
$mysql_port = 3306;
$mysql_socket = "/tmp/mysql.sock";

注:若mysql没有使用默端口3006,则还需要修改如下脚本文件:

# 1,这里要先建好这个文件,否则会报rm权限错误
vim /tmp/localhost-mysql_cacti_stats.txt:3317
chown -R zabbix.zabbix /tmp/$HOST-mysql_cacti_stats.txt:3317
 
#2,修改端口脚本
vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
换成:
CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt:3317"
 
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
换成:
TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt:3317`
 
#3,修改mysql执行命令路径
#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 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','`

登陆mysql创建监控要用的账号

mysql> GRANT USAGE,SELECT,PROCESS,SUPER,REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY "Ab.12345";
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 

测试监控项

agent端测试

[root@mysql01 home]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
gg:20
[root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh gm
1
[root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh gw
1819813

zabbix-server端测试监控项

[root@SMP tmp]# zabbix_get -s 192.230.4.11 -k 'MySQL.Handler-commit'
rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
18041875

注:权限问题解决方法

登录zabbix-agent服务器,执行:

[root@mysql01 tmp]# cd /tmp
[root@mysql01 tmp]# chown -R zabbix.zabbix localhost-mysql_cacti_stats.txt 
[root@mysql01 tmp]# /etc/init.d/zabbix-agent restart

再次测试:

[root@SMP tmp]# zabbix_get -s 192.230.4.11 -k 'MySQL.Handler-commit'
18041956

主机关联模板

image

查看数据:

image

mysql从库监控slave配置

先在mysql slave的agent里面需要check下看是否生效:

[root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh running-slave
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
0

需要配置下访问mysql的一些基本参数:

在my.cnf配置用户名密码、sock路径 

[mysql]
no-auto-rehash
user=zabbix
password=Ab.12345
socket=/var/lib/mysql/mysql.sock

再次测试:

[root@mysql03 scripts]# sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave 
1

结束!

猜你喜欢

转载自www.cnblogs.com/snailshadow/p/9153429.html