背景:AWS在遇到系统升级、系统故障等问题的时候,会在其官方论坛发布通知,并同步到RSS数据库
前言:咱们在项目中遇到几回AWS的RDS出现故障致使系统受影响,当系统故障时,咱们的监控系统会发送一堆告警出来,提示数据库异常。运维
正常来说,AWS的RDS不多出现问题,因此咱们排查问题的重心就在咱们本身的系统中,结果也没有找到问题,最后在AWS中开启技术支持才知道是RDS的问题。jsp
其实,当RDS出现技术性故障的时候,AWS会在论坛发布通知。做为运维,咱们不但愿天天都去刷论坛查看是否有新的公告,若是有一种方式,当论坛发布通知时,自动提醒咱们就行了。为此,咱们研究了一种办法,即订阅AWS论坛的RSS,当论坛有新的通知时,RSS订阅会更新,咱们的程序定时去获取RSS最新信息便可。spa
有了这套程序,当数据库异常时,咱们就能够判断时AWS的RDS异常致使的,仍是咱们本身的程序致使的。code
实现代码以下:blog
注意:RSS中的时间为UTC时间,故脚本中获取当前时间使用的是datetime.datetime.utcnow()事件
#auther by zls #_*_coding:utf-8_*_ import feedparser import datetime #获取RDS论坛的通知 d = feedparser.parse('https://forums.aws.amazon.com/rss/rssannounce.jspa?forumID=60') #解析通知 for item in d.entries: #获取论坛通知的发布事件 rss_day = item.jf_date #获取本地事件 local_day = datetime.datetime.utcnow().strftime('%b %d, %Y') #判断该通知是否为今天发布的 if rss_day == local_day: #若是是今天发布的,能够定义您本身的通知方式,这里只是打印出来 print "公告标题:%s" %(item.title) print "公告连接:%s" %(item.link) print "公告简介:%s" %(item.description) print "公告时间:%s" %(item.jf_date)