订阅RDS事件
关于RDS状态的监控,除了常规的CloudWatch Metric以外。RDS还有一个事件机制,能够将RDS的事件通知到SNS。
RDS Event简介
RDS Event - Source type
RDS的事件类型分为如下六大类:
- 数据库实例(DB instance)
- 数据库集群(DB cluster)
- 数据库快照(DB snapshot)
- 数据库集群快照(DB cluster snapshot)
- 数据库安全组(DB security group)
- 数据库参数组(DB parameter group)
RDS Event - Event Categories
每个事件大类下还有不同类别的事件类型,各个事件类型下的类别如下:
- 数据库实例(DB instance)的Event Categories
- 数据库集群(DB cluster)的Event Categories
- 数据库快照(DB snapshot)的Event Categories
- 数据库集群快照(DB cluster snapshot)的Event Categories
- 数据库安全组(DB security group)的Event Categories
- 数据库参数组(DB parameter group)的Event Categories
RDS Event - Event ID
每个Event Category下还有多个Event,太多了,没法一一罗列了。详情可以参见AWS官网文档
RDS Event和CloudWatch Metric比较
RDS的CloudWatch Metric主要针对的是RDS实例内在运行情况的监控,比如CPU利用率,DB连接,剩余磁盘空间,剩余内存,写和读的IOPS等。
而RDS的Event是对RDS的配置组以及Instance实例的状态变更的监控。比如Instance的创建,删除,备份和是否可用等;参数组是否修改了;快照的创建,删除等。
创建RDS Event
RDS的Console正在改版,虽然设置原理都是一样的,但是在界面和操作的交互上,新Console和老Console还是有所区别的。
老Console中设置RDS Event
进入RDS Console,左侧栏中选中“Event Subscriptions”,在展开的页面中点击“Create Event Subscription”来创建Event Subscription
在“Create Event Subscription”页面中,填入对应的内容
- Name一栏填入要设置的Event的名字,此处设为rds-mydb-instance-event
- Send notifications to一栏选择要发送的SNS Topic,如果没有,可以点击旁边的create topic按钮新建一个SNS Topic
- Source Type一栏,根据实际需要选择要监控的Event类型,此处选择Instances
- Enabled一栏,可以设置是否将这个Subscription设为开启状态
- Event Categories一栏,选上要监控的Event类别, 此处可以多选。在Mac下,按住Command键后再点击鼠标就能够选取多个。图中选择了availability,deletion,failover,failure,low storage和recovery这六个Event Categories。
- Instances一栏,可以选择只对某些RDS Instance监控,或者对全部RDS Instance进行监控
点击Create建立Subscription
在Console中就能够看到Subscription正在创建中,等待一小段时间后,就会显示Subscription创建成功了。
当有监控的事件发生时,AWS就会发送通知到设置的SNS Topic中。SNS再以Email,SMS或者HTTP Endpoint的形式发送给Topic的订阅者。设置完后,在SNS中订阅的邮件地址马上就收到了一封主题为“RDS Notification Message”的邮件。提示将会收到来自SNS的通知,如果不需要,可以退订。
新Console中设置RDS Event
进入RDS Console,左侧栏中选中“Event Subscriptions”,在展开的页面中点击“Create Event Subscription”来创建Event Subscription
在“Create Event Subscription”页面中,填入对应的内容
- Name一栏填入要设置的Event的名字,此处设为rds-mydb-instance-event
- Enabled一栏,可以设置是否将这个Subscription设为开启状态
- Target一栏,选择已有的SNS Topic或者新建一个Topic
再往下翻,设置Event。
3.1 初始画面,只有Source Type可选。
3.2 Source Type选择Instances,出现Instances to include和Event categories to include的页面。
3.3 在Instances to include中选择Select specific instances, 出现Specific instances的下拉菜单,在菜单中选择要监控的RDS
3.4 在Event categories to include中选择Select specific event categories, 出现Specific event下拉菜单,在菜单中选取availability,deletion,failover,failure,low storage和recovery这六个Event Categories。不得不吐槽的是,目前操作界面中每次只能选一个,要选六个Event category就需要打开下拉菜单六次,再点击对应的event category名字。
点击Create建立Subscription
在Console中就能够看到Subscription正在创建中,等待一小段时间后,就会显示Subscription创建成功了。
当有监控的事件发生时,AWS就会发送通知到设置的SNS Topic中。SNS再以Email,SMS或者HTTP Endpoint的形式发送给Topic的订阅者。设置完后,在SNS中订阅的邮件地址马上就收到了一封主题为“RDS Notification Message”的邮件。提示将会收到来自SNS的通知,如果不需要,可以退订。
接收通知
设置好RDS Subscription后,一旦有对应的Event出现,RDS就会发送消息到设置的SNS Topic中,订阅此Topic的人员就可以立马收到通知,从而可以及时处理情况。
新老Console比较
在RDS Event设置这个Feature上,新Console并没有添加新的功能,只是在UI界面和交互方式上做了调整。但个人感觉,新Console还不如老Console的交互来得人性化。
先来一张旧版Console和新版Console的对比图。
谈谈个人对新Console的看法:
- 界面不太紧凑,新建一个Event Subscription,页面上需要滚动两屏才能设置完。设计风格应该是借鉴了新版的S3 Console。
- 设置Event Source的界面时,交互太过于强调分层。以设置Instance的Event为例,必须先设置好Source type为Instance,才能看到”Instance to include”和”Event Categories to include”。个人还是比较喜欢旧版中,将所有可选的内容直观的显示在页面上给用户选取这样的交互方式。
- 设置event categories时的下拉菜单的交互称不上是用户友好的。设置每一个event categories,都需要经历两步操作: 1.点开下拉菜单。2. 选择event category。如果要设置六个event category,那就需要12次点击操作,其中选取event category这6次点击是无法避免的,可是需要用户点开6次下拉菜单,这个设定不太友好。或许有办法可以点开下拉菜单一次,选取多个event category,只是我没试出来而已。
- 还有“All instances”和“All event categories”的选项,选取后在界面上没有像旧版Console那样,显示“All instances”和“All event categories”都包含了哪些具体内容。新版console的设计者应该是认为选了这两个选项,就代表你已经明确知道目前系统中有哪几个Instance和这个Source type下的所有Event Categories是什么了。在这个操作上,潜在要求了Console的使用者需要和像使用AWS CLI那样,预先了解资源,这种设计对新手不够友好。