zabbix+邮件报警脚本

zabbix原生的报警媒介类型中,邮件报警是我们常用的方式。

1、web界面新增报警媒介类型

2、关于脚本

脚本如下

[root@zabbix alertscripts]# pwd

/usr/lib/zabbix/alertscripts

[root@zabbix alertscripts]# cat mail_qq.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = '111111111@qq.com'

mail_pass = 'xxxxxxxxxxx'

 

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+">"

msg = MIMEText(content, 'plain', 'utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

[root@zabbix alertscripts]# cat mail_163.py

#!/usr/bin/python

#coding:utf-8

import smtplib

from email.mime.text import MIMEText

import sys

mail_user = '1232323232@163.com'

mail_pass = 'xxxxxxxxxx'

 

def send_mail(to_list,subject,content):

me = "zabbix 监控告警平台"+"<"+mail_user+">"

msg = MIMEText(content, 'plain', 'utf-8')

msg['Subject'] = subject

msg['From'] = me

msg['to'] = to_list

try:

s = smtplib.SMTP("smtp.163.com", 25)

s.login(mail_user,mail_pass)

s.sendmail(me,to_list,msg.as_string())

s.close()

return True

except Exception,e:

print str(e)

return False

if __name__ == "__main__":

send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

脚本编写完成之后需要为脚本添加执行权限

[root@zabbix alertscripts]# chmod +x mail_qq.py

3、测试

命令行测试脚本能否成功执行

[root@zabbix alertscripts]# ./mail_qq.py xxx@163.com "测试" 'test'

测试参数为三个,分别为收件人邮箱地址,邮件标题,邮件内容

测试的时候如果出现错误提示缺少smtplib,解决方法为使用pip进行安装:pip install smtplib

测试完成了就可以通过zabbix进行触发报警了

 

posted @ 2020-04-24 17:21  云凡、、、  阅读(270)  评论(0)    收藏  举报