WGCLOUD是一款开源运维监测平台,它有一个模块自定义监控项,可以执行一些我们自定义的指令或脚本,非常灵活实用
本文我们尝试使用此功能来监测我们的mysql从节点是否在正常工作,如果如下两项值都为yes,那么slave节点是正常工作的,否则从节点同步出现了问题
执行sql,返回如下结果
代码语言:javascript复制show slave status
知道了大致思路,我们开始写我们的shell脚本,非常简单的
比如我们的shell脚本为/home/slaveCheck.sh,记得给此sh文件加上可执行权限,内容如下
代码语言:javascript复制#!/bin/bash
#slave节点ip
mysqlIP=192.168.1.2
#port
mysqlPort=3309
#用户名
username=root
#密码
password='123456'
mysql -h$mysqlIP -u$username -p$password -P$mysqlPort -e "show slave statusG" 2>/dev/null | grep -v grep | grep -c 'Yes'
#2>dev/null 去掉告警信息
#grep -v grep 将grep本身的进程去掉
#grep -c 'Yes' 将匹配yes的行数取出来
我们在左侧菜单点击自定义监控模块,添加后就可以正常监控了,如下
添加页面,输入如下内容
监控主机选择shell脚本(/home/slaveCheck.sh)所在的主机
自定义监控项执行的指令或脚本,输入shell脚本的完全路径即可
告警表达式,这里写的是result<2,表示如果脚本返回的数字小于2,则进行告警通知
好啦,到这里就完成了
自定义监控项,默认每10分钟执行一次,也可以自定义修改,在agent/config/application.properties中修改,如下
代码语言:javascript复制#自定义监控项监控间隔时间,单位秒,默认10分钟,此功能需要升级到专业版
customDataSeconds=600
修改后,重启agent生效