AWS Personal Health Dashboard,AWS资源/服务的运行状况尽在您掌握

今天我们讨论的主题是AWS Personal Health Dashboard,AWS Personal Health Dashboard可在AWS遇到可能会影响您的事件时提供提醒和修正指导。

Service Health Dashboard

相信很多人都接触过AWS的Service Health Dashboard页面,这个页面发布最新的AWS的服务的可用性信息。

我们要知道AWS不可能保证所有的后端和提供的服务都能永远保证100%的可用性,而在本人多年使用AWS过程中,也确实有多次是由于AWS后端或底层的服务问题导致了我的生成环境的业务出现问题。

所以当我们的线上业务出现问题时,建议首先需要确认的是,导致问题的原因是AWS的问题,还是我们业务环境自身的问题。

最简单直接的方法,就是通过Service Health Dashboard页面,地址为:https://status.aws.amazon.com,这个页面提供了按照AWS的区域,截止到当前时间,各个AWS区域内不同服务的当前状态(正常?异常)。

如下面的截图中,可以看到当前时间在东京区域的其中一个可用区出现网络问题,对应的Details也有此次时间的详细时间点,和对应的问题描述和AWS处理的情况。

AWS服务对应正常的状况会在Details中内容为“Service is operating normally”,可以通过这个页面非常直观的查询AWS全球各个区域提供的服务的情况。

Service Health Dashboard 是一个AWS提供的全球的,所有提供服务的状态更高层次的仪表盘,它反映的是全球的服务整体的状态。如果我们想更清晰的获得和自己使用服务相关的一个仪表盘,或者想要定制一些通知等功能,在出现问题的时候推送到SNS通知或者lambda进行后续处理,那么就需要使用AWS Personal Health Dashboard—我们接下来讨论的内容。

AWS Personal Health Dashboard 

AWS Personal Health Dashboard ,列出会对您当前使用账号中用到的AWS资源或者使用的服务造成影响或者潜在影响的异常事件。

我们现在登录下AWS控制台,可以看到控制台右上方的铃铛处有橙色的圆点,表示目前账号使用的资源或服务有事件通知,点击铃铛看到提醒包括:未解决问题(Open issues),计划更改(Scheduled changes),以及其他通知(Other notifications) 。

点击“查看所有提醒”后,进入 Personal Health Dashboard 页面。发现当前有两个Open issues,如上所述表示目前账号使用的资源或服务有2个AWS事件通知,且当前仍未解决。当当前账号环境相关出现问题时,它会在这些选项卡中提供一个事件列表,我们看到目前AWS账号下目前的2个open issues一个是RDS相关,一个是EC2相关。

AWS Personal Health Dashboard 会提供影响账户的 AWS 运行状况 事件的相关信息。信息会以两种方式显示:显示按类别组织的最近和未来事件的控制面板(包括Open issues,Scheduled changes,Other notifications),以及显示过去 90 天内所有事件的完整事件日志(Event log) 。

Personal Health Dashboard 会分三组管理问题:未处理问题(Open issues)、已计划更改(Scheduled changes)和其他通知(Other notifications)。默认情况下,未处理问题和其他通知仅限于开始时间在过去 7 天内的问题,已计划更改组包含正在进行或即将进行的项目。

Personal Health Dashboard 的最左侧的事件日志(Event log)页面会显示适用于您的账户的所有 AWS 运行状况 事件。点击单个时间后会显示所有关于该事件的详细信息,包括时间名称,状态,区域,起止时间等等,右边Details选项卡中包括此事件处理的详细时间点和信息,以及AWS提供给用户的针对此次事件的操作建议。

旁边的Affected resources选项卡,会显示受事件影响的任何 AWS 资源的相关信息。可以看到通过PHD,当我们生产环境出现异常时,可以非常方便的定位问题,以及影响到我们的AWS资源。

所以当我们的业务出现问题时,如果我们没有办法判断是由于我们自身的业务环境还是AWS服务或资源出问题的时候,我的建议是第一步先到Personal Health Dashboard页面,在open issues中查看是否有对应业务出现问题时现象的AWS事件,优先排除AWS的问题。

那么有没有什么方式可以监控AWS运行状况,当运行状况改变的时候自动做出对应响应呢?一些AWS的计划维护任务(Scheduled changes),如果没及时关注到可能会因为AWS的计划维护任务影响到生产环境可用性,有什么方式可以及时收到这些计划任务信息呢?这些就需要下面的Amazon CloudWatch Events内容来实现。

通过 Amazon CloudWatch Events 监控 AWS 运行状况 事件

可以通过Amazon CloudWatch Events检测AWS运行状况事件状态的变更并对其进行响应,在Amazon CloudWatch Events中您可以创建规则,在事件与您在规则指定的值匹配时调用一个或多个目标操作。

可以选择以下类型的目标:

  • AWS Lambda 函数
  • Kinesis 流
  • Amazon SQS 队列
  • 内置目标(CloudWatch 警报操作)
  • Amazon SNS 主题 

我们可以创建多个规则,针对不同的规则调用不同的目标进行响应,比如,可以创建health的IAM服务的状态事件,将IAM相关的事件调用SNS,推送给您企业的负责安全相关的同事;在创建一个RDS服务的状态事件,通过SNS将RDS事件邮件推送给负责数据库的同事,通过这种方式,将相应的事件通知邮件推送给相关的同事,让他们关注并及时的进行响应。

当然也可以针对匹配的事件选择调用lambda事件,通过lambda事件中的脚本逻辑响应,比如当EC2出现health问题时关闭并启动EC2,通过此方式将我们的EC2从故障的宿主机自动迁移出去,正常恢复我们的业务。

接下来我们操作下如何创建规则,以及针对规则配置调用的目标。

第一步,在Personal Health Dashboard页面点击右上角的Set up notifications with CloudWatch Events 。

然后会进入到CloudWatch的规则-创建规则页面。

比如我们要创建一个EC2的health响应,实现EC2出现AWS运行状况事件状态的变更时通过SNS通知我们。

我们在创建规则页面选择“事件模式”,选择事件(按服务),服务名称选择“health”;事件类型选择“特定运行状况事件”,然后选择特定服务-EC2;

然后在页面右侧选择添加目标,我们本例选择SNS主题,然后选择对应的主题后输入规则的名称,完成创建,这样当EC2服务有health事件时,就会SNS邮件推送具体的信息给主题订阅者,让我们在第一时间可以知晓AWS运行状况事件,并对此快速响应保障我们的业务可用性。

以上就是今天的内容,生命不息,学习不止,下次见。

0 responses on "AWS Personal Health Dashboard,AWS资源/服务的运行状况尽在您掌握"

Leave a Message

error: Content is protected !!