自定义监控mysql主从状态以及主从延迟
1.自定义监控mysql主从状态
1.1 安装mysql.
1.2配置主从并验证是否成功同步. (以上两步骤详见,mysql主从,并在从库安装zabbix客户端)
1.3写脚本获取从库的状态,确保两个yse,如果不是就报错.
[root@localhost ~]# ls / #新开的客户机没有scripts目录 bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr [root@localhost ~]# mkdir /scripts/ #创建 [root@localhost ~]# ls anaconda-ks.cfg pass zabbix-5.0.25 zabbix-5.0.25.tar.gz [root@localhost ~]# cd /scripts/ [root@localhost scripts]# ls [root@localhost scripts]# vim ~/.my.cnf #设置以后不用输密码 [client] user = root password = 123456 [root@localhost scripts]# vim mysqlms.sh #编写脚本 #!/bin/bash count=$(mysql -uroot -p123456 -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 #编写如上’
1.4配置/usr/local/etc/zabbix_agentd.conf文件自定义监控.
[root@localhost etc]# vim zabbix_agentd.conf #添加自定义监控项
UserParameter=check_mysqlms,/bin/bash /scripts/mysqlms.sh
1.5重启zabbix_agentd.
[root@localhost scripts]# pkill zabbix_agentd [root@localhost scripts]# zabbix_agentd [root@localhost scripts]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 0.0.0.0:10050 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 80 *:3306 *:*
1.6在从库本地执行脚本看结果是否正常匹配.
[root@localhost scripts]# ./mysqlms.sh # 两个yes为0 0
1.7去zabbix_server端用zabbix_get命令手动获取下状态并且确保状态与从库手动执行时一致.
[root@zabbix-server ~]# zabbix_get -s 192.168.6.134 -k check_mysqlms 0
1.8配置web界面,添加监控项和触发器.
添加新主机。
添加模板
添加监控项
添加触发器
1.9手动触发(停掉主库的mysql)并验证是否报警。
mysql> stop slave; Query OK, 0 rows affected (0.01 sec)
手动停掉主从
2.自定义监控mysql主从延迟
1.编写脚本,
[root@localhost ~]# cd /scripts/ [root@localhost scripts]# vi mysql_delay.sh #!/bin/bash delay=$( mysql -uroot -p123456 -e "show slave status\G" 2>/dev/null | grep 'Seconds_Behind_Master'| awk '{print $2}') echo $delay ~ [root@localhost scripts]# chmod +x mysql_delay.sh #添加执行权限 [root@localhost scripts]# ll 总用量 8 -rwxr-xr-x 1 root root 145 7月 12 00:58 mysql_delay.sh -rwxr-xr-x 1 root root 173 7月 12 00:29 mysqlms.sh [root@localhost scripts]# ./mysql_delay.sh 0 [root@localhost scripts]# vi /usr/local/etc/zabbix_agentd.conf UserParameter=mysql_delay,/bin/bash /scripts/mysql_delay.sh #添加到最后一行 [root@localhost scripts]# pkill zabbix #停启服务 [root@localhost scripts]# zabbix_agentd [root@zabbix-server etc]# zabbix_get -s 192.168.6.134 -k mysql_delay # 服务端测试 0
添加监控项
添加触发器
验证成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本