云服务器邮件报警详细步骤

我司用的西部数码云服务器做邮件报警,我看阿里云也是屏敝了25端口。

所以打脸的说,我做了两天才搞通。

做这个报警,我反正操碎了心,微信有注册过公众号,所以微信做了一天多都没做通,听说跟微信公众号有冲突,搞不明白,转战邮件。

sendEmail默认端口为25,我不会绕25,一系列报错:Nov 21 16:58:05 ebs-49310 sendEmail[31711]: ERROR => Timeout while connecting to smtp.exmail.qq.com:25  There was no response after 60 seconds.

报错还有如下情况:smtp-server: 535 Error: ȫʹԃ˚ȨëµȂ¼¡£Ъȩȫ¿´: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256"

/root/dead.letter" 11/293

. . . message not sent.

如果你也遇到以上情况,那么试试下面吧

首先你得有邮箱的授权码

如果这里是关闭请开启,如果是开启状态但不知道授权码的,那关了再开一次,记录下授权码:本人授权码为jjtpupmyrtwkbjhc

有了授权码,下面言归正传:

yum -y install mailx

ln -s /usr/bin/mailx /usr/bin/mail

chown -R zabbix.zabbix /usr/bin/mail

vim /etc/mail.rc

如果你的/etc/mail.rc里有配置的set smtp-use-starttls,请注释掉,配置这行会验证证书失败。

这个玩意,关了 systemctl stop postfix.service

生成qq邮箱的ssl证书

mkdir -p /root/.certs/

echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt

certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt

certutil -L -d /root/.certs

进入证书存放目录,cd /root/.certs/

返回以下提示即为正常:

 

mailx -s "邮箱测试" 402252408@qq.com < message_file.txt无返回值即发送成功

echo  test | mail -v -s " test"  402252408@qq.com  (也可以实现邮件发送的)

成功。

 

 

配置zabbix网页邮件报警

 对了,忘了附脚本图了,回补

#!/bin/bash
### jiayan

messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

修改zabbixserver的配置文件

vim /etc/zabbix/zabbix_server.conf

 

修改为你的mailx.sh脚本路径

 

其次配置网页端

 

然后宕掉某个在监控状态的服务器,出现报警提示

 

如果,你也出现以上已送达,却邮箱没反应的情况,那么你会在你的日志里看到以下内容:

 

Error initializing NSS: Unknown error -8015.

. . . message not sent.

未发送成功。

接着往下做吧少年,一波三十折,你已经经历了二十九折了。

这个是权限问题,因为证书是在root下生成的,所以其它用户没有执行权限,所以了

 cp  -a  /root/.certs   /tmp

chmod -R 777 /tmp

然后再修改下/etc/mail.rc里的nss-config-dir (别怪我没早说这个问题,这个问题也是我做到这里才发现的,见谅)

 

再次宕掉服务,邮件报警实现。

 

posted @ 2018-11-22 16:34  木子巫  阅读(2025)  评论(1编辑  收藏  举报