之前在阿里云上部署了zabbix服务,配置完自己想监控的内容后,需要添加一个邮件报警的功能,之前我在服务器上面写过脚本也需要发送邮件(同样是阿里云的服务器),知道阿里云默认将25端口给封掉了所以利用传统的发邮件的方式肯定是行不通的,后来也是经过大量的查找方法,利用465端口可以发送邮件,今天主要还是记录此次部署zabbix邮件报警踩到的坑。
部署完邮件服务器后,测试本地可以发送邮件了,并且也可以收到发送的邮件。
之后我在zabbix平台web页面配置邮件报警相关的配置


就不多发了,具体配置大家可以从网上搜一下,有很多资料可以参考。然后我故意将一台服务器的其中一个端口给down掉为了触发报警。

在我关闭掉其中一个服务后,和我预想的一样,zabbix监控到了,并且显示出来。
点击报表→动作日志→可以查看到报警的信息如图:

可以看到平台已经提示发送成功了。然后我登录我的邮箱接收邮箱,怎么也就收不到报警的邮件,这就比较奇怪了,因为在此之前我在我的一台内网的服务器上面都部署过一次,并且也可以成功的接收到报警邮件,检查了好几次自己的配置内容后,没觉得那步出错了呀,真是比较奇怪,安装之前配置的流程,现在应该可以接收到邮件了。
后来在zabbix_server 服务器上面直接mail命令测试是否可以正常发送邮件,

下面是我的接收结果:


发现也是可以正常发送的啊,这就非常奇怪了,下面是我的解决思路:

错误排查过程:
1.仔细检查了zabbix服务端的相关配置信息(动作、权限、报警媒介类型、报警脚本等),均无问题
2.重启了zabbix服务端程序,故障依旧存在。
3.查看/var/log/zabbix/zabbix_server.log服务端日志,没找到有价值的信息
4.在zabbix_server.conf中发现可以调整debug调试信息的级别,于是修改了级别,如下:
vim /etc/zabbix/zabbix_server.conf

  1. DebugLevel= #由0改为4

保存退出,重启服务。
echo " " > /var/log/zabbix/zabbix_server.log #清空日志

tailf /var/log/zabbix/zabbix_server.log #观察日志的变化,发现有如下错误信息:


搜索下8015错误信息后,对/etc/mail.rc文件作了修改:
vim /etc/mail.rc
将原来的set nss-config-dir=/root/.certs注释掉,改成了:

  1. set nss-config-dir=/etc/pki/nssdb

保存退出。就可以收到报警邮件了。
vim /etc/zabbix/zabbix_server.conf
DebugLevel=0
保存退出。重启zabbix。