原文:https://blog.csdn.net/yanggd1987/article/details/79656771
简介
之前主要使用nagios监控mysql,本文主要介绍使用percona-monitoring-plugins监控mysql,percona监控插件是php开发,因此要在agent安装php环境。
配置安装
一.zabbix-agent端操作
1.安装软件依赖
yum install php php-mysql -y
- 1
2.安装percona插件
#centos 6
rpm -Uvh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm #centos 7 rpm -Uvh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
- 1
- 2
- 3
- 4
3.复制配置文件至zabbix_agent相关目录下
cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
#重启生效
service zabbix-agent restart
- 1
- 2
- 3
4.数据库添加只读账户
grant process,super,replication client on *.* to 'zabbix'@'localhost' identified by 'zabbix';
- 1
由于监控mysql需要使用show processlist 及主从相关命令,因此需要给zabbix权限以process,super,replication client等权限。
5.修改脚本参数
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
$mysql_user = 'zabbix';
$mysql_pass = 'zabbix'; $mysql_port = 3306; $mysql_socket = '/tmp/mysql.sock'; $mysql_flags = 0;
- 1
- 2
- 3
- 4
- 5
- 6
以上参数需要根据实际情况填写
6.修改日志权限
chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt
- 1
7.测试
#在zabbix agent上测试MySQL.Threads-connected
[root@test83 scripts]# bash /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh iu
77
#在zabbix server上测试 [root@test250 ~]# /App/zabbix/bin/zabbix_get -s 10.10.5.83 -k MySQL.Threads-connected 77
- 1
- 2
- 3
- 4
- 5
- 6
若输出正常,则表明percona-monitoring-plugins配置成功。下一步我们需要安装模板。
二.zabbix-server端操作
1.导入监控模板
导入”zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml”报如上错误,原因原来的模板在3.x 使用有问题,需要将模板导入到2.4中再到处即可。
2.给客户端添加模板,在此我们不多做说明了。
解决方案:
手动修改模板文件解决报错比较麻烦,有人提到可以将此模板导入 Zabbix 2.X 系列后,再导出到 Zabbix 3.0。
这里我们直接使用现成可用的 Zabbix 3.X 的 percona-zabbix-templates
zbx_percona_mysql_template.xml 模板地址
三.监控mysql主从
在slave节点上操作:
1.权限需提升
#若只分配select权限,需进一步提升权限
grant process,super,replication client on *.* to 'zabbix'@'localhost' identified by 'zabbix';
- 1
- 2
2.修改脚本
vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
RES=`HOME=~zabbix mysql -uzabbix -pzabbix -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` #修改后测试 [root@test83 ~]# bash /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave Warning: Using a password on the command line interface can be insecure. 1
- 1
- 2
- 3
- 4
- 5
- 6
我们看到会输出”Warning: Using a password on the command line interface can be insecure.”
因此我们需要需要在/etc/my.cnf中添加如下:
[client]
port = 3306
socket = /tmp/mysql.sock user = zabbix password = zabbix
- 1
- 2
- 3
- 4
- 5
然后再次将脚本更改为:
vim /var/lib/zabbix/percona/scripts/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' ','` #测试 [root@test83 ~]# bash /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave 1
- 1
- 2
- 3
- 4
- 5
- 6
经如上更改后,zabbix就会监控mysql主从,当然我们需要在master节点上将模板中的关于slave的监控项禁用,以便只监控slave节点的同步情况即可。