zabbix邮件脚本路径错误,导致无法发送邮件的问题处理

公司zabbix主要用于监控MySQL数据库及操作系统的运行状态及性能状况。前两天,zabbix莫名其妙不发送邮件了,幸好及时查看zabbix界面,才避免了一次无空间可用的事故。

排查思路:zabbix涉及到邮件配置、zabbix media types、以及action等环节,所以采取排除法的策略来确定问题。

zabbix发送邮件采用mutt+msmtp方式,直接调用mutt命令或者发送邮件的mail脚本,都可以正常发送邮件。至此,可以确定问题出在了zabbix自身配置。

然后,查看了zabbix的media types和actions,都没有发现异常。一筹莫展时,突然觉得zabbix应该有发送邮件的记录。可是这个记录在什么地方,见下图(如果看不清,请点击这里查看大图)。
该页面路径 Monitoring>>Events>>根据Description列描述,然后点击Time列,看到的就是发送有邮件的动作(action)的详细信息,其中包含了邮件是否正常发送出去,还有未发送出邮件的错误所在。

上图中文字有些模糊,红框内文字是为“/usr/local/zabbix/share/zabbix/alertscripts/mail/mail: [20] Not a directory”。

这个错误引起了我的警觉,因为它显示的是错误的发送邮件mail脚本的路径,正确路径为”/usr/local/zabbix/share/zabbix/alertscripts/mail”,这里多出一个mail,肯定是zabbix_server.conf配置错误导致。查看zabbix_server.conf文件,确实是多了mail,删除mail。

注意,一定要重启zabbix服务重新加载配置文件才能生效,否则依然出现上面的错误。至此,问题解决。

特别说明:
zabbix_server.conf中,AlertScriptsPath和ExternalScripts后面跟的是路径,不是发送邮件脚本的名字。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注