您好,欢迎访问这里是深圳市硕远科技有限公司!
戴尔服务器价格_IBM联想配置_浪潮代理-深圳市硕远科技有限公司
联系我们
戴尔服务器价格_IBM联想配置_浪潮代理-深圳市硕远科技有限公司
邮箱:2324898850@qq.com
电话:400-080-6079
地址:深圳市龙华区河背工业区108创业园A301
当前位置:主页 > 新闻动态 > 行业新闻 >

行业新闻

Zabbix 5.2由浅入深系列之邮箱告警

发布时间:2022-04-28 07:03:05浏览次数:

众所周知,Zabbix有很多告警方式,邮件作为最原始留档的一种方式,也是最基础的,在告警体系里也是应该掌握的一种方式,因为这种方式甚至都不需要机器访问外网(自有邮件服务器)就可以实现。在以往的zabbix版本,自带的php mail会导致zabbix server服务异常重启,在5.0之后就已经解决了,所以既可以傻瓜式,也可以脚本化实现,之前我翻阅过大部分的这方面的文章,sh脚本基本通过mailx这种方式,虽然这种方式也可以,但是还有多多少少有点缺陷,所以今天带来两种方式,分别是zabbix原生和基于Python。

正文

环境

Zabbix版本为5.2.3,Python版本为2.7.

脚本内容

#!/usr/bin/python2
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'xxxxxxxxx' #######邮箱server
mail_user = 'xxxxxxxxx' #####不要带后缀
mail_pass = 'xxxxxxxxxx' ####此处为您的密码或授权码
mail_postfix = 'yeah.net'
def send_mail(to_list,subject,content):
 me = "Zabbix"+"<"+mail_user+"@"+mail_postfix+">"
 msg = MIMEText(content, 'plain', 'utf-8')
 msg['Subject'] = subject
 msg['From'] = me
 msg['to'] = to_list
try:
 s = smtplib.SMTP()
 s.connect(mail_host)
 s.login(mail_user,mail_pass)
 s.sendmail(me,to_list,msg.as_string())
 s.close()
return True
except Exception as e:
print ('Exception',e)
return False
if __name__ == "__main__":
 send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

脚本使用注意

本脚本只需要改mail_host,mail_user,mail_pass,mail_postfix,me部分,默认使用smtp 25端口。

脚本存放位置

在Zabbix server配置文件里查看AlertScriptsPath根目录,并将脚本放入,修改权限及所属者。

chown zabbix:zabbix mail.py
chmod +x mail.py

查找告警脚本存放目录

修改权限及所属者

邮箱配置(以网易为例)

打开设置

点击开启SMTP,随便一个就可以

用微信扫描二维码发送短信

发送短信完成后获取到授权码,该码为密码

找到服务器地址(主要是smtp服务器地址)

修改脚本文件

修改以下几处,mail_host,mail_user,mail_pass,mail_postfix(mail_postfix比较特殊,为@后缀名,举个例子,zabbix@zabbix.com,该后缀为@zabbix.com)。

修改脚本文件

测试脚本

./mail.py

执行完成之后发现报错

该报错为python2没有安装,所以需要安装python2

安装python2

创建告警媒介

告警媒介填写

类型为脚本

传递值为{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}

填写告警媒介内容


填写用户媒介内容

创建动作,哪些主机需要告警


填写操作内容,调用脚本

创建测试主机,采用ICMP模板

效果

效果1

效果2

部分朋友反应采用阿里云机器会封25号端口,所以建议采用SSL(465端口)

需要将s=smtplib.SMTP()改为s = smtplib.SMTP_SSL(mail_host,465)

改为SSL连接

Zabbix原生方式

在告警媒介里选择Email,填写相关信息

测试正常

效果正常

由于篇幅有限,就不再做一遍

总结

从整体测试情况来看,互联网的免费邮箱多多少少有点问题,建议采用企业邮箱,目前是qq邮箱要更友好一点,网易邮箱多多少少都会存在一些发送的问题,例如543,需要列表带有自身邮箱才行。这个需要自己实际测试才知道,我这边的环境也不一样,如果在使用中有任何问题可以咨询我或者留言。

400-080-6079