通过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邮箱的密码,而是授权码,这一点要注意。

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

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

12-24 05:51