背景:AWS在遇到系统升级、系统故障等问题的时候,会在其官方论坛发布通知,并同步到RSS
前言:我们在项目中遇到几次AWS的RDS出现故障导致系统受影响,当系统故障时,我们的监控系统会发送一堆告警出来,提示数据库异常。
正常来讲,AWS的RDS很少出现问题,所以我们排查问题的重心就在我们自己的系统中,结果也没有找到问题,最后在AWS中开启技术支持才知道是RDS的问题。
其实,当RDS出现技术性故障的时候,AWS会在论坛发布通知。作为运维,我们不希望每天都去刷论坛查看是否有新的公告,如果有一种方式,当论坛发布通知时,自动提醒我们就好了。为此,我们研究了一种办法,即订阅AWS论坛的RSS,当论坛有新的通知时,RSS订阅会更新,我们的程序定时去获取RSS最新信息即可。
有了这套程序,当数据库异常时,我们就可以判断时AWS的RDS异常导致的,还是我们自己的程序导致的。
实现代码如下:
注意: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)