故障现象:

同一个动作,配置了邮件报警和短信报警。

邮件报警发送成功,短信报警发送失败

查看数据库alerts表,显示短信邮件均发送成功

原因分析:

1、邮件发送成功,短信没有发送成功,证明zabbix配置的动作已生效。

2、触发器触发告警-->动作匹配触发器状态-->动作调用短信脚本-->动作调用消息变量。

问题解决步骤:

1、查看zabbix 的mysql ,alerts表,最新的消息在最后一条。

2、alert表有对应短信消息记录,说明确实有触发告警动作发送消息,查看error字段是否有异常,如有异常解决对应的异常

3、手动调用短信脚本,短信脚本发送内容为alerts的message字段内容。

结果:

在手动调用脚本加上alerts表message字段内容,执行报错,原因是短信内容不能有空格。

解决方式:去掉发送短信内容的空格,手动再调用短信脚本,测试后短信发送正常

总结:

1、短信发送脚本有BUG,导致有空格的短信报警消息发送有问题,改善短信发送的脚本

2、当短信发送失败后,手动执行脚本发送消息正常,就一直觉得短信脚本是正常的,需要模拟短信发送真实情况才能重现异常;