首页 > 其他 > 详细

发送邮件统计夜莺系统nightingale的当前未恢复报警

时间:2020-12-29 20:11:34      阅读:27      评论:0      收藏:0      [点我收藏+]

有时候运维人员还是比较关注当前未恢复报警信息的,每次想去看就得操作一遍:打开网页->输入密码->点击查看历史告警的选项->进行筛选,  或者也可以告警历史的网页常开着,但是每天来上班电脑开机还需要专门打开他,时间久了好像有点机械化了,所以就想了写一个python脚本每天上午定时发邮件,把未恢复报警统计到邮箱,这样不就很轻松了吗

   # -*- encoding: UTF-8 -*- 
1
import json 2 import requests 3 import time 4 from requests.auth import HTTPBasicAuth 5 6 7 8 user=root 9 password=你的密码 10 now_time=time.strftime(%Y-%m-%d %H:%M:%S,time.localtime(time.time())) 11 12 13 14 def get_n9e_event(): 15   #我这里只查24小时内的,也就86400秒 16   url=http://n9e.xxx.com/api/portal/event/cur?limit=1000&nodepath={0}&p=1&stime={1}&etime={2}.format(cop,int(time.time())-86400,int(time.time())) 17   result=requests.get(url=url,auth=HTTPBasicAuth(user,password)) 18   event_list=json.loads(result.text)[dat][list] 19 20    21 22   list1=截至:{0} \n.format(now_time) 23   list1=list1 + 目前list1告警列表: \n\n 24   list2=截至:{0} \n.format(now_time) 25   list2=list2 + 目前list2告警列表: \n\n 26 27   for event in event_list: 28     if event[sid] ==5 or event[sid] ==6 : #sid是你的告警策略的sid,这里我只想统计5和6策略的告警,我把他放到list2里面 29       alarm_time=format_time(format_time=event[created],type_time=o) 30       if event[event_type] == alert: 31         event[event_type] =PROBLEM 32       list2=list2 +主机名: +event[endpoint]+\n告警项: +event[info]+\n告警tag: +event[tags]+\n告警数据:+event[value]+\n告警注释: +event[sname]+\n目前状态: +event[event_type]+\n告警产生时间: +alarm_time+\n------------------------------------------------------\n 33     elif event[sid] ==73 or event[sid] ==52 or event[sid] ==118 or event[sid] ==119: #此类告警跳过不统计,你可以把你不想统计的sid加进来 34         continue 35     else: #除了上面的sid,剩下所有的告警都统计到list1里面 36       alarm_time=format_time(format_time=event[created],type_time=o) 37       if event[event_type] == alert: 38         event[event_type] =PROBLEM 39       list1=list1 +主机名: +event[endpoint]+\n告警项: +event[info]+\n告警tag: +event[tags]+\n告警数据:+event[value]+\n告警注释: +event[sname]+\n目前状态: +event[event_type]+\n告警产生时间: +alarm_time+\n------------------------------------------------------\n 40 return list1,list2 41 42 def send_mail(tos,subject,content): 43 url=http://127.0.0.1:4000/sender/mail #我这里用到了open-falcon的mail-provider插件,用来发送邮件 44 postdata={tos: tos,subject: subject, content: content} 45 #参数格式 46 #postdata={‘tos‘:‘xxx@xxx.com,xxx@xxx.com‘,‘subject‘: ‘未恢复告警统计‘, ‘content‘: list1} 47 result_res=requests.post(url=url,data=postdata) 48 return result_res.text 49 50 51 def main(): 52 list1,list2=get_n9e_event() 53 send_result1=send_mail(tos=xxx@xxx.com,xxx@xxx.com,subject=生产list1告警统计,content=list1) 54 send_result2=send_mail(tos=xxx@xxx.com,xxx@xxx.com,subject=生产list2告警统计,content=list2) 55 print(send_result1) 56 print(send_result12) 57 58 if __name__ == __main__: 59 main()

 这样每天早上看邮件,就可以知道有什么告警没有恢复了

技术分享图片

 

发送邮件统计夜莺系统nightingale的当前未恢复报警

原文:https://www.cnblogs.com/opsdemo/p/14208067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!