关于zabbix发送报警邮件25端口不通问题的解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于zabbix发送报警邮件25端口不通问题的解决方案相关的知识,希望对你有一定的参考价值。


写这篇文章的目的不是别的,今年在阿里云的centos7上安装了zabbix3以上版本,我可以直接说明不是zabbix最新版本,安装路上根据之前总结文档一顿操作,ok,一切正常,zabbix服务器正常启动,界面也正常,直至报警调试自带mail报警,发现并没有收到邮件。

于是手动测试邮件发送,发现失败了,。。。。失败了。然后各种百度找资料,一瞬间发现很多文档,最多的就说阿里云禁用了邮件服务器的25端口,而mail默认走25。
            
既然发现问题,那就是解决问题,于是各种尝试改配置文件端口,生成cert证书之类,不行,不行、不行,各种问题各种不行,后来终于找到一篇正常解决问题的文章,也是生成cert文件,但是发现在root下会有zabbix用户访问不到的权限问题,于是果断更改目录。


这里需要说明下,我是申请的163邮箱(如果你是qq,证书名称什么的都会不一样,具体我没有研究),开启了POP3/SMTP服务(必须开启并且记录密码)

生成证书
cd /usr/lib/zabbix/alertscripts/
mkdir .certs
echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt
chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/.certs

在mail.rc结尾添加
set smtp="smtps://smtp.163.com:465"
set [email protected](你的邮箱用户名)
set [email protected](你的邮箱用户名)
set smtp-auth-password=xxxxxxxxx(为163邮箱放通的POP3/SMTP服务密码)
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/usr/lib/zabbix/alertscripts/.certs

创建报警脚本send_mail.sh
#!/bin/bash
DATETIME=date +%Y%m%d%H%M
to=$1
subject=echo $2|tr ' ' ' ' (此处如果脚本不进行这么设置,那么邮件是可以发送,但是报警详情发送回有问题,不全或者是附件形式,所以进行一些处理)
body=echo $3|tr ' ' ' '
email_File=/tmp/email.log
-m "$body" >>$email_File
echo "$body" | mail -v -r "[email protected]" -s "$subject" $to >>$email_File (你的邮箱用户名)
chown -R zabbix:zabbix send_mail.sh

重启zabbix服务端
/etc/init.d/zabbix-server restart

之后配置zabbix报警系统即可成功报警,虽然最后可能回提升证书失效,但是不影响邮件发送,不必理会,还有初次接受报警邮件可能回在黑名单或者垃圾邮件中,注意加白。
短信和微信报警也有,需要的小伙伴可以留言


以上是关于关于zabbix发送报警邮件25端口不通问题的解决方案的主要内容,如果未能解决你的问题,请参考以下文章

云服务器 zabbix 配置报警邮件

zabbix没有收到报警邮件

zabbix邮件报警脚本

Zabbix使用SMTP发送邮件报警及定制邮件报警内容

Zabbix——设置阈值和报警

zabbix4.2通过163邮箱发邮件报警