自定义监控MySQL主从状态
配置主从监控脚本
/在客户端上操作
[root@agent ~]# mkdir /scripts
[root@agent ~]# vim /scripts/mysqlmd.sh
[root@agent scripts]# chmod +x /scripts/mysqlmd.sh /给脚本添加执行权限
[root@agent scripts]# cat mysqlmd.sh //如果不等于2就显示1否则显示0
#!/bin/bash
count=$(mysql -uroot -pRuntime123! -e "show slave status\G" 2>/dev/null| grep -v grep | grep -c 'Yes')
if [ $count -ne 2 ];then
echo '1'
else
echo '0'
fi
//修改zabbix文件
[root@agent scripts]# vim /usr/local/etc/zabbix_agentd.conf //在这个文件下添加下面这行
UserParameter=check_mysqlmd,/bin/bash /scripts/mysqlmd.sh
//重启一下服务
[root@agent scripts]# pkill zabbix
[root@agent scripts]# zabbix_agentd
2测试脚本
//在服务端上面执行
[root@zabbix_server ~]# zabbix_get -s 192.168.183.142 -k check_mysqlmd
0
配置监控项
配置主从延迟
编写脚本
[root@agent ~]# cd /scripts/
[root@agent scripts]# vim mysql_delay.sh
[root@agent scripts]# cat mysql_delay.sh
#!/bin/bash
delay=$(mysql -uroot -pRuntime123! -e 'show slave status\G' 2> /dev/null| grep 'Seconds_Behind_Master' | awk '{print $2}')
echo $delay
[root@agent scripts]# chmod +x mysql_delay.sh //添加执行权限
配置zabbix文件
[root@agent scripts]# vim /usr/local/etc/zabbix_agentd.conf //添加下面这行
UserParameter=check_mysql_delay,/bin/bash /scripts/mysql_delay.sh
//重启zabbix服务
[root@agent scripts]# pkill zabbix
[root@agent scripts]# zabbix_agentd
测试脚本
[root@agent scripts]# ./mysql_delay.sh //可以看到是可以取出延迟的值的,只不过这里的延迟太小几乎没有,所有就为零
0
[root@zabbix_server ~]# zabbix_get -s 192.168.183.142 -k check_mysql_delay //在服务端也是可以取到值的
0
配置监控项