写这篇文章的目的不是别的,今年在阿里云的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 from=xxxxxxxxxxxx@163.com(你的邮箱用户名)
set smtp-auth-user=xxxxxxxxxxx@163.com(你的邮箱用户名)
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 '\r\n' '\n' (此处如果脚本不进行这么设置,那么邮件是可以发送,但是报警详情发送回有问题,不全或者是附件形式,所以进行一些处理)
body=echo $3|tr '\r\n' '\n'
email_File=/tmp/email.log
-m "$body" >>$email_File
echo "$body" | mail -v -r "xxxxxxxxxx@163.com" -s "$subject" $to >>$email_File (你的邮箱用户名)
chown -R zabbix:zabbix send_mail.sh
重启zabbix服务端
/etc/init.d/zabbix-server restart
之后配置zabbix报警系统即可成功报警,虽然最后可能回提升证书失效,但是不影响邮件发送,不必理会,还有初次接受报警邮件可能回在黑名单或者垃圾邮件中,注意加白。
短信和微信报警也有,需要的小伙伴可以留言
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com