设为首页 收藏本站
查看: 1638|回复: 0

[经验分享] zabbix的短信与邮件报警脚本

[复制链接]

尚未签到

发表于 2018-1-2 07:13:33 | 显示全部楼层 |阅读模式
  

#!/usr/bin/python  
#
-*- coding: utf-8 -*  

  
import sys
  
import smtplib
  
from email import encoders
  
from email.header import Header
  
from email.mime.text import MIMEText
  
from email.utils import parseaddr, formataddr
  

  
def send_email(to_addr,subject,body):
  msg = MIMEText(body,'html','utf-8')
  msg['From'] = '<18611819511@163.com>'
  msg['To'] = '<%s>' % to_addr
  msg['Subject'] = subject
  

  smtp = smtplib.SMTP_SSL('smtp.163.com', 465)
  smtp.set_debuglevel(1)
  smtp.ehlo("smtp.163.com")
  smtp.login('18611819511@163.com','************')
  smtp.sendmail('18611819511@163.com', [to_addr], msg.as_string())
  

  

  
if __name__ == "__main__":
  # 这里的密码是开启smtp服务时输入的客户端登录授权码,并不是邮箱密码
  # 现在很多邮箱都需要先开启smtp才能这样发送邮件
  send_email(sys.argv[1],sys.argv[2],sys.argv[3])
  

  zabbix为3.2版本。python版本为2.7,然后在zabbix上进行设置。
  

#!/usr/bin/python  
#
-*- coding: utf-8 -*  
import top.api
  
import json,sys
  
appkey = '*********'
  
secret = '***************************'
  
url = 'gw.api.taobao.com'
  
port='80'
  
req = top.api.AlibabaAliqinFcSmsNumSendRequest(url,port)
  #port可以不传参,因为方法中自带了port=80的参数
  
req.set_app_info(top.appinfo(appkey, secret))
  

  
content = sys.argv[2]
  
#短信类型
  
req.sms_type = "normal"
  
#sign_name
  
req.sms_free_sign_name = "***"
  
#传参的是看需要看你们的模板中是要传递参数,我这边传递的参数名为'usingPercent'这个是动态的还是看自己,然后进行json格式化
  
data = {"usingPercent":content}
  
req.sms_param = json.dumps(data)
  

  

  
#收件人手机号
  
req.rec_num = sys.argv[1]
  
#短信模板
  
req.sms_template_code = "SMS_*******"
  

  
resp = req.getResponse()
  

  运行之前请安装依赖 pip install top
  zabbix为3.2版本。python版本为2.7,然后在zabbix上进行设置。此短信脚本是阿里大于的如果 是别的运营商的话请查看文档api
DSC0000.png DSC0001.png DSC0002.png

  这里我要说一下,短信不是邮件没有主题,那么你有两个选择一个是{ALERT.SUNJECT}只是单纯的一个主题信息,可以看出问题一个大概的情况,你可以把第二的参数换成{ALERT.MESSAGE},当然就比较详细的东西的,但是由于平台的不同可能会有相应的字数限制,对于我来讲,可能一个主题就够了,然后我可以登录进去看。如果不懂的叫我qq469910799
  我还想说一下其实报警发送很简单,首先就是本地测试是否可以使用发送。其次就是传参,然后再zabbix 修改传递的参数就这样

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430686-1-1.html 上篇帖子: zabbix流量汇聚 下篇帖子: grafana+zabbix 部署分布式监控系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表