写这篇文章的目的不是别的,今年在阿里云的centos7上安装了zabbix3以上版本,我可以直接说明不是zabbix最新版本,安装路上根据之前总结文档一顿操作,ok,一切正常,zabbix服务器正常启动,界面也正常,直至报警调试自带mail报警,发现并没有收到邮件。 于是手动测试邮件发送,发现失败了,。。。。失败了。然后各种百度找资料,一瞬间发现很多文档,最多的就说阿里云禁用了邮件服务器的25端口,而mail默认走25。 既然发现问题,那就是解决问题,于是各种尝试改配置文件端口,生成cert证书之类,不行,不行、不行,各种问题各种不行,后来终于找到一篇正常解决问题的文章,也是生成cert文件,但是发现在root下会有zabbix用户访问不到的权限问题,于是果断更改目录。 这里需要说明下,我是申请的163邮箱(如果你是qq,证书名称什么的都会不一样,具体我没有研究),开启了POP3/SMTP服务(必须开启并且记录密码) 生成证书cd /usr/lib/zabbix/alertscripts/mkdir .certsecho -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crtcertutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crtchown -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=loginset ssl-verify=ignoreset nss-config-dir=/usr/lib/zabbix/alertscripts/.certs 创建报警脚本send_mail.sh#!/bin/bashDATETIME=date +%Y%m%d%H%Mto=$1subject=echo $2|tr '\r\n' '\n' (此处如果脚本不进行这么设置,那么邮件是可以发送,但是报警详情发送回有问题,不全或者是附件形式,所以进行一些处理)body=echo $3|tr '\r\n' '\n'email_File=/tmp/email.log-m "$body" >>$email_Fileecho "$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报警系统即可成功报警,虽然最后可能回提升证书失效,但是不影响邮件发送,不必理会,还有初次接受报警邮件可能回在黑名单或者垃圾邮件中,注意加白。短信和微信报警也有,需要的小伙伴可以留言
原文地址:http://blog.51cto.com/huangmoumou/2131408
时间: 2024-11-07 02:44:59