使用Percona MySQL Server Template模板有可以监控主从是否同步的问题,但在实际使用过程中遇到了一些问题,因此根据Percona的脚本修改了一下做成单独的模板,只给从库配置该模板即可,配置过程如下。
1.创建mysql监控账号
grant replication client on *.* to 'zabbix'@'localhost';
这里要设置成无密码,之前试过很多次,带密码无法取到数,给replication client权限即可,只有本地能够登陆,因此风险问题可以忽略不计。
2.创建监控脚本(需修改mysql路径,我这里是 /usr/local/mysql/bin/)
vi /var/lib/zabbix/percona/scripts/MySQL-Slave.sh
#!/bin/bash
/usr/local/mysql/bin/mysql -uzabbix -e 'SHOW SLAVE STATUS\G' 2>/dev/null | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}'|grep -c Yes
3.修改agent脚本
最下面加上
vi /etc/zabbix/zabbix_agentd.conf
UserParameter=MySQL.slavestatus,/var/lib/zabbix/percona/scripts/MySQL-Slave.sh
给予执行权限
chmod +x /var/lib/zabbix/percona/scripts/MySQL-Slave.sh
重启agent
service zabbix-agent restart
4.添加监控项及触发器
监控项及触发器名称随意,键值为MySQL.slavestatus
触发器表达式为{MySQL-Slave-cc:MySQL.slavestatus.last()}<>2
5.验证
zabbix_get -s 192.168.1.1 -p 10050 -k "MySQL.slavestatus"
得到结果2则配置成功,说明主从同步。