wKioL1hPRkDQK0lFAAA8XQsvMcc784.png-wh_50

当mysql down掉的时候,zabbix显示如下结果

wKioL1hPRweCfcl2AAA6PKF9JfA282.png-wh_50wKiom1hPR1jgIdJ4AAAavvbVrUc233.png-wh_50

使用mysqladmin组件的一连串命令并且检索alive来获取结果集的,获取到就返回1表示mysql服务是开启的获取不到就返回0表示mysql服务关闭了,但是实际上呢?能返回1但是返回不了0,因为mysqladmin命令会先报错信息出来,这样zabbix-server调用的时候返回的不是纯粹数字,而是字符串+熟悉,zabbix-server的触发器里面识别不了

因此可以知道mysqladmin在mysql服务down的时候,返回的字符串报警+数字0,完全触发不了zabbix的报警条件了,是需要考虑其它的方式来判断了。

经查找相关资料telnet也是不能满足mysql down掉时触发报警的需求,现在用netstat试试

wKioL1hPSJ6Rxsl1AAAOEEQVSXs707.png-wh_50

netstat -lntup|grep 3306|grep mysql|wc|awk '{print $1}'

将配置文件中mysqladmin ping | grep -c alive 改为上面的命令试试

重启zabbix_agentd

发现还是不行,最终发现netstat 被远程调用的时候失效 所以执行:

chmod +s /bin/netstat

成功了