azkaban(七):邮件报警
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了azkaban(七):邮件报警相关的知识,希望对你有一定的参考价值。
参考技术A 虽然azkaban 提供很好的容错机制,如:失败重试次数,但是若程序真的有问题,即使重试一万次又能如何?最终还是需要工程师去修复。如何通知工程师呢?虽然azkaban不能主动打电话,但是可以提供了邮件报警功能。除了运行失败通知提醒外,当程序运行成功之后也是可以进行邮件通知的。
配置修改如下:
此时需要配置邮件发送策略,那么job需要发送,哪些不需要发送。
zabbix邮件报警脚本
Zabbix邮件报警脚本对于目前的运营商来说,25端口基本上被禁用了,只能使用ssl/tls加密协议来发收邮件,对于zabbix来说邮件报警还是比较常用的,下面为报警脚本,亲测时可以正常收到邮件的,可以先进行测试是否能正常收到邮件在正式配置到zabbix上。以163邮件为例:
[[email protected] ~]# cat zabbix_mail.py #!/usr/bin/python # coding=utf-8 #zabiix 邮件报警脚本 #测试方法:python zabbix_mail.py [email protected] test test #能正常发送邮件说明成功 import smtplib import sys from email.mime.text import MIMEText class send_mail(): mail_host="smtp.163.com" mail_user="[email protected]" #注:此地方的密码为POP3/SMTP/IMAP客户端授权的授权码,不是邮箱的登录密码 mail_pass="XXXXXXXXXX" mail_postfix="163.com" def __init__(self,sub,content): self.me="Zabbix-Alter"+"<"+self.mail_user+"@"+self.mail_postfix+">" self.msg = MIMEText(content,_subtype='html',_charset='utf-8') self.msg['From'] = self.me self.msg['Subject'] = sub def sendMessage(self,user): self.msg['To'] = ";".join(user) try: s = smtplib.SMTP_SSL(host=self.mail_host,port=465) s.login(self.mail_user,self.mail_pass) s.sendmail(self.me, user, self.msg.as_string()) #发送邮件 s.close() except Exception, e: print str(e) if __name__ == '__main__': mailto_list=[] mailto_list.append(sys.argv[1]) s = send_mail(sys.argv[2],sys.argv[3]) s.sendMessage(mailto_list)
以上是关于azkaban(七):邮件报警的主要内容,如果未能解决你的问题,请参考以下文章