本站将逐步迁移至新站点,点击访问

Zabbix3.0.2检测Mysql服务down时不触发报警问题

87次阅读
没有评论

问题现象

MySQL监控数据的获取及显示正常,但agent端关闭mysql后,不会发出告警,zabbix不会发出告警。

排查

1、查看zabbix-agent启动方式,得到/etc/zabbix/zabbix_agentd.conf是配置文件,去查看里面的mysql.ping的参数设置:

#vim /etc/zabbix/zabbix_agentd.conf

UserParameter=mysql.ping,mysqladmin  -P3306 -h127.0.0.1  ping | grep -c alive

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

mysqladmin -P3306 -h127.0.0.1 ping | grep -c alive
mysqladmin: connect to server at'127.0.0.1' failed
error: 'Can't connect to MySQL server on'127.0.0.1' (111)'
Check that mysqld is running on 127.0.0.1and that the port is 3306.
You can check this by doing 'telnet127.0.0.1 3306'
0

再看zabbix自带的mysql模版的mysql is down的触发条件是:{agent.com:mysql.ping.last(0)}=0,当调用mysql.ping的最后一个值是0的时候,触发报警。

解决

修改agent的配置文件vim /etc/zabbix/zabbix_agentd.conf:

UserParameter=mysql.ping,netstat -ntpl|grep 3306 |grep mysql |wc |awk '{print $1}'

注意:

1、修改完,重启agentd服务

2、执行chmod +s /bin/netstat防止zabbix-server远程调用失效。

在zabbix-server端check,能获取纯粹的数字0,证明此方法OK有效。

#zabbix_get -s 10.10.1.12 -p10050 -k mysql.ping

0

Honest1y
版权声明:本站原创文章,由Honest1y于2017年02月24日发表,共计1791字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)