zabbix自定义邮件告警

点点圈 提交于 2019-12-30 19:23:02

通过python实现自定义脚本报警过程总结:

第一步:在管理--报警媒介类型里面新添加一项“邮件报警”,如下所示:

 

 

 

第二步:我们只是给脚本起了一个名字,其实还没写呢?写到什么地方呢?zabbix的配置文件里面有定义,如下所示:

//将python写的程序放到这个目录里面,注意,名字要和上述一致。[root@zabbix ~]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts

[root@zabbix alertscripts]# pwd
/usr/lib/zabbix/alertscripts
[root@zabbix alertscripts]# cat sent_mail.py

#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = 'smtp.qq.com'  
mail_user = '746620446@qq.com'
mail_pass = 'tb**sdxtzobcfh'
mail_postfix = 'qq.com'
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,e:
        print str(e)
        return False
if __name__ == "__main__":
    send_mail(sys.argv[1], sys.argv[2], sys.argv[3])//测试一下,别忘记加执行权限[root@zabbix alertscripts]# ./sent_mail.py 746620446@qq.com test test

 

 

这个python写的脚本,名字里面里面最好不要带mail这样的关键字,不然老是提示错误,下次再用的的时候把QQ号改一下,然后把mail_pass改一下,mail_pass里面不是QQ邮箱的密码,而是授权码,这一点要注意。

 

第三步:到用户---报警媒介里面就可以了。

 这样其实就可以了,如果还是不行的话,看看配置--动作,一定要处在打开状态哟!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!