- 环境
192.168.2.117 zabbix-server
192.168.2.118 mysql主
192.168.2.119 zabbix-agent/mysql从
其中118和119已经配置好mysql主从同步
- 添加脚本
在119服添加主从同步判断的shell脚本mysql_check.sh,所在目录为/data/sh
#!/bin/bash
#2017年12月22日22:12:35
#auto check mysql master and slave status
#by lee
mysql -uroot -p123456 -e "show slave status \G;" | grep -E 'Slave_IO_Running: Yes|Slave_SQL_Running: Yes' | grep -c Yes
设置脚本执行权限
chmod u+x mysql_check.sh
设置agentd配置文件,添加下面命令
UserParameter=mysql.ms.check,/data/sh/mysql_check.sh
- 设置item
进入到host界面,点击119的item,然后点击右上角的创建item
1)
2)
3)
键值输入agentd配置文件里面的值mysql.ms.check,输入完成后,点击下面的添加按钮,进入到item界面
4)
- 创建graph
进入主机界面,点击119的图形按钮,进入后点击右上角的创建图形按钮
1)
2)
3)
监控项为上面添加的监控mysql主从项,点击添加按钮完成图像创建
查看项目的图像状态:
- 创建触发器,设置邮件报警
进入主机界面,点击119的触发器按钮,进入后点击右上角的创建触发器按钮
1)
2)
在表达式一栏点击添加按钮,设置内容如下,表示如果判断T值不是2时就触发
3)
4)
表达式:
监控项就是要目标
功能是获取到的最新的数值
N就是2
排班=偏移
点击添加按钮,完成触发器创建,然后会显示创建的触发器
- 测试监控主从同步
手动停止mysql从服务器的slave
mysql -uroot -p123456 -e "stop slave;show slave status \G;"
mysql -uroot -p123456 -e "start slave;show slave status \G;" #恢复
查看监控项目图像,可以看到值为0,而不是2
在监测—问题界面可以看到触发器的条件触发了后会自动发送邮箱报警,因为之前设置了发送3次报警,所以这里显示三次
1)
2)
3)
手动开启了slave后,可以看到监控主从同步状态正常
4)
如果在web界面设置了后没有获取到数据,可以先手动在zabbix服务器上通过下面命令来检测监控数据是否可以正常获取
[root@host107 bin]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.119 -k mysql.ms.check
2
[root@host107 bin]#
mysql主从监控邮箱报警配置完成。
备注:
1) 在检测监控数据的时候,提示脚本权限不够,如下
[root@host107 include]# /usr/local/zabbix/bin/zabbix_get -s 192.168.2.119 -k mysql.synchronization.check
sh: /root/zabbixtest/mysql_check.sh: Permission denied
除了需要脚本本身要加执行权限之外,还需要注意117服务器访问119服的mysql服务时候,是否能访问成功,可以通过授权命令设置
grant all on *.* to 'root'@'192.168.2.117' identified by'123456';
最后是不要把脚本放在root目录下,放在其他目录下就可以get到