zabbix3.4实现qq邮箱报警

 

 

mailx配置TSL发送邮件
 

整体流程 1 配置mialx发送外部邮件到qq邮箱 2 配置zabbix引用邮件

需要做zabbix自动报警   
于是想到了mailx作为客户端,使用SMTP发送邮件;测试了半天才发现的阿里为了防止滥发邮件,把出口的25端
口给封了,封了!然后现在摆在面前的只有2条路,1、申请阿里云解封;2、使用TSL加密协议,也就是465端口;
出于服务器安全考虑,这里使用465端口发送

进入正题:

一、配置mailx使用SMTP发送邮件:
1、安装mailx;这里直接使用yum install mailx -y 进行安装即可;

 maiLx   -v 可以查看版本,好像需要12.0版本以上的才支持配置外部邮件。                                                                              

2、在/etc/mail.rc配置文件中,在最后面输入以下内容:auth-passwd 不要填写密码,填授权码

set [email protected]

set smtp=smtp.163.com

set [email protected]

set smtp-auth-password=passwd

set smtp-auth=login

qq邮箱的配置 

1、邮箱需要开启SMTP功能,每个邮箱的开启方法都大同小异;
2、现在大部分邮箱使用SMTP会让你启动一个授权码来代替邮箱密码
具体各个邮箱开启授权码的方式可以直接百度;
测试是否发送成功:
mailx -s "邮箱测试" [email protected] < message_file 测试邮件一旦成功,收件箱会马上收到邮件,如果没有收到,则等一会可以看到shell界面的错误提示; 上面配置的是简单的使用25端口的SMTP发送邮件的功能,一般情况下我们使用这个就足够了,这个办法 在网上也很多配置说明,这里就不再浪费时间了,下面我们讲重点,使用TSL发送邮件; 前面说了,阿里云把25端口封了,去申请解封也比较麻烦,于是就想到了用TSL方式,绕过25端口发送邮件; TSL也就是使用SSL加密的方式,使用465或者其他端口来发送邮件,现在大部分邮箱都支持SSL,具体SSL的端口 地址,也可以查百度,这里是以126邮箱为准,126邮箱使用的是465或者994端口; 下面是详细的配置过程: 1、软件要求:openssl、mailx 12.0以上; 2、既然使用的是SSL协议,那当然是要有证书的了,下面是获取证书的操作;

 

mkdir -p /zabbix/.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

为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱SSL证书存放目录/root/.certs里执行如下命令:

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

返回如下提示即可:

**Notice: Trust flag u is set automatically if the private key is present.**

这是为了信任证书的标记操作。

至此,已经完成了mailx结合QQ邮箱发送系统邮件的部署了,通过命令行发送测试邮件试试吧:

按照上面操作,只要不报错,就是正常的,我们会在/root/.certs下面看到几个证书文件
 

3、证书配置好了,下面我们就要来配置mail.rc配置文件了,和最开始的不同,这里我们就需要配置和TSL相关的东西了

 

set [email protected]

set smtp=smtps://smtp.qq.com:465

set [email protected]

set smtp-auth-password=*******************   ## 你在邮箱生成的授权码

set smtp-auth=login

set ssl-verify=ignore

set nss-config-dir=/home/zabbix/.certs

 

其实就多了几个配置stmp前面加了stmps://指定协议类型,后面加上端口号;
启动ssl协议 ,下面指定ssl证书所在目录,就这样。
配置OK了之后,测试发送邮件;
测试能收到邮件就OK,说明发送没问题,至于具体会出现什么报错,可以根据报错的内容进行谷歌;
我这里在发送邮件的时候会提示一个证书不信任的问题,因为不影响正常发送邮件,所以选择忽略;

关于其他类型的邮箱这里没有做测试,QQ邮箱据说比这个好简单。其他的深入研究这里因为时间关系,没有太多的
技术含量,只是在查找资料的过程中,发现没有一个完整的案例,特意将自己的操作过程写下来;

参考文章:http://irow10.blog.51cto.com/2425361/1812638/
https://sourceforge.net/p/nail/mailman/message/30263940/

http://baijiahao.baidu.com/s?id=1587401158046300905&wfr=spider&for=pc

 
  
邮件可正常发送了,接下来配置zabbix通过触发器调用报警 

步骤 
1 、修改 zabbix_server.conf  添加一行指定报警脚本位置的命令 AlertScriptsPath=/alidata/server/zabbix/share/zabbix/alertscripts
zabbix3.4实现qq邮箱报警_第1张图片

 

2、写报警邮件 echo "$3" | mail -s "$2" "$1"  就这一行命令,$3 是内容 $2是标题, $1s是收件人。

zabbix3.4实现qq邮箱报警_第2张图片
3、添加媒体 名称随便起,脚本名称指定刚才写的那个脚本名称 

zabbix3.4实现qq邮箱报警_第3张图片

 

4、指定用户使用该媒体发送邮件

zabbix3.4实现qq邮箱报警_第4张图片

5、创建报警动作

zabbix3.4实现qq邮箱报警_第5张图片
 

 


 
报警图片

zabbix3.4实现qq邮箱报警_第6张图片
,过程分析,阿里云不支持25端口发邮件,所以用TLS 465 端口,一定要给zabbix用户配置证书,我以前配置给root了不能发送的,还要注意给zabbix用户发送邮件的权限,确定邮件可以正常发送好,再来解决调用问题,脚本可以使用shell也可以使用python发送邮件可以用脚本也可以在web控制台配置,不过控制台的我没有试。 web界面引用脚本的配置流程是 创建媒体>用户引用媒体>创建动作,在创建动作界面也出现了问题,因为不是特别会zabbix 动作设置,就创建动作当zabbix错误级别达到problem就报警。创建完成后可以关闭agentd 或者修改密码什么的,就是让你触发器的阈值触发,测试是否成功, [email protected] 有问题的可以问我的。



zabbix3.4 需要配置动作action 在里面指定触发报警的条件,如触发器状态到达average 就报警,报警可以调用媒体发送邮件

 

你可能感兴趣的:(zabbix3.4实现qq邮箱报警)