Zabbix监控Mysql5.5主从同步
1、创建监控用户
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'jiankong'@'127.0.0.1' IDENTIFIED BY 'Zabbix';
2、编写监控脚本
#!/bin/sh
slave_is=($(/usr/local/mysql/bin/mysql -h 127.0.0.1 -ujiankong -p'Zabbix' -e "show slave status \G"|grep Running |awk '{print $2}'))
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
then
echo '2' #代表正常两个yes
else
echo '1' #代表不正常
fi
执行以上脚本,如果主从同步正常,返回状态2,否则返回状态1.
备注:Mysql5.5在脚本里直接填写密码,执行脚本后不会提示Mysql安全性。如果你的Mysql是5.5以上的版本,该脚本不适用。
Warning: Using a password on the command line interface can be insecure.
3、agentd配置文件中声明key
vim /usr/local/zabbix/etc/zabbix_command_tcp.conf
UserParameter=mysql_replication,/bin/bash /usr/local/zabbix/bin/mysql_replication.sh
4、重启agentd服务并进行测试
[root@dubbo bin]# /etc/init.d/zabbix_agentd restart
Restarting zabbix_agentd (via systemctl): [ 确定 ]
[root@dubbo bin]#
测试
在zabbix_server上看看能否获取到key的监控值:
[root@Zabbix bin]# ./zabbix_get -s 172.10.12.174 -k mysql_replication
2
[root@Zabbix bin]#
5、在监控的主机添加监控内容(监控项,触发器)
创建监控项(Item)
备注:名称自己可以随意写,最重要的是键值需要与agentd配置文件中声明key[UserParameter=mysql_replication]保持一致。
创建触发器(Triggers)
最终的触发器
监控已添加好了,我们现在来进行测试,看下是否告警
首先登录进入从mysql,可以先检查mysql主从状态,可以看到是没有问题的。
手工测试,关闭slave
告警信息
启动slave,然后检查slave状态
恢复告警信息