通过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邮箱的密码,而是授权码,这一点要注意。
第三步:到用户---报警媒介里面就可以了。
这样其实就可以了,如果还是不行的话,看看配置--动作,一定要处在打开状态哟!
来源:https://www.cnblogs.com/yizhangheka/p/12120746.html