监控Amazon Health与 Amazon EventBridge 合作的事件 - Amazon Health
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

监控Amazon Health与 Amazon EventBridge 合作的事件

你可以使用亚马逊 EventBridge 检测和响应Amazon Health事件. 然后,根据你创建的规则, EventBridge 在事件与在规则中指定的值匹配时,调用一个或多个目标操作。根据事件类型,您可以捕获事件信息、启动其他事件、发送通知、采取纠正措施或执行其他操作。例如,您可以使用Amazon Health接收电子邮件通知(如果有)Amazon您的资源Amazon Web Services 账户计划更新,例如 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

注意
  • Amazon Health在尽最大努力基础。并不总是能保证将事件传送到 EventBridge。

  • 任何 EventBridge 你创建的规则只能接收你的通知Amazon Web Services 账户. 您无法在自己的内部接收其他账户的组织活动Amazon Organizations. 有关更多信息,请参阅 使用组织视图跨账户聚合 Amazon Health 事件

您可以在多个目标类型之间进行选择 EventBridge 作为你的一部分Amazon Health工作流程,包括:

  • Amazon Lambda 函数

  • Amazon Kinesis Data Streams

  • Amazon Simple Queue Service (Amazon SQS) 队列

  • 内置目标(例如 CloudWatch 告警操作)

  • Amazon Simple Notification Service (Amazon SNS) 主题

例如,您可以使用 Lambda 函数在以下情况下将通知传入 Slack 通道。Amazon Health事件发生。或者,您可以使用 Lambda 和 EventBridge 使用 Amazon SNS 发送自定义文本或短信通知,Amazon Health事件发生。

关于Amazon Web Services 区域为了Amazon Health

您必须创建 EventBridge 针对要接收其通知的每个区域的规则Amazon Health事件. 如果你不创建规则,你将不会收到事件。例如,要接收来自中国(北京)区域的活动,必须为此区域创建规则。

一段时间Amazon Health事件不是特定于区域的。不特定于某个区域的事件称为全球事件。其中包括发送的活动Amazon Identity and Access Management(IAM)。要接收全球事件,您必须为中国(宁夏)区域创建一个规则。

关于用于的公共活动Amazon Health

仅限Amazon Health特定于账户的事件将传入 EventBridge。这可能包括诸如 Amazon EC2 实例的必需更新或其他可能影响您的账户和资源的计划更改事件等事件。

目前,您无法使用 EventBridge 返回公众来自的事件服务运行状况控制面板. 服务运行状况控制面板的事件则会提供有关服务的区域可用性的公有信息。这些事件不是特定于Amazon Web Services 账户,因此它们不会发送到 EventBridge。

相反,您可以使用Amazon Health控制台和DescribeEventDetailsoperation. 您可以使用任一选项返回有关事件的信息,然后确定该事件是 Service Health Dashboard 中的公开活动还是特定于您的事件Amazon Web Services 账户.

您可以使用以下选项确定事件是公有事件还是特定于账户的事件:

  • 在Amazon Health在控制面板中,选择受影响资源活动的选项卡。具有资源的事件特定于您的账户。没有资源的事件是公开的,并不是特定于您的账户。有关更多信息,请参阅 开始使用Amazon Health控制面板 — 你的账户状况

  • 使用 Amazon Health API 返回 eventScopeCode 参数。事件可以具有 PUBLICACCOUNT_SPECIFICNONE 值。有关更多信息,请参阅 。DescribeEventDetails在中的操作Amazon HealthAPI 参考.

您也可以使用Amazon HealthService Health Dashboard 通知器工具,用于获取公共事件通知 有关更多信息,请参阅 。aws 健康工具在 GitHub 网站。

创建 EventBridge 规则Amazon Health

您可以创建 EventBridge 要获得通知的规则Amazon Health您账户中的事件。在为创建事件规则之前Amazon Health中,执行以下操作:

创建 EventBridge 规则Amazon Health

  1. 打开 Amazon EventBridge 控制台https://console.aws.amazon.com/events/.

  2. 要更改 Amazon Web Services 区域,请使用页面右上角的 Region selector (区域选择器)。选择要在其中跟踪的区域Amazon Health事件.

  3. 在导航窗格中,选择 Rules (规则)

  4. 选择 Create rule (创建规则)

  5. 在存储库的定义规则细节页面上,输入规则的名称和描述。

  6. 保留默认值事件总线Rule type,然后选择下一步.

  7. 在存储库的构建事件模式页面,事件源,选择Amazon事件和 EventBridge 伙伴事件.

  8. 事件模式,对于Amazon Web Service,选择运行状况.

  9. 适用于Event type,请选择以下选项之一。

    • 具体的 Health 滥用事件-为创建规则Amazon Health有这个词的事件Abuse在事件类型名称中。

    • 特定 Health 事件— 创建特定事件的规则Amazon Web Service,例如 Amazon EC2。

  10. 您可以选择任何服务要么特定服务. 如果您选择特定服务,请选择以下选项之一:

    • 选择任何活动类型类别创建适用于所有事件类别的规则。

    • 选择特定事件类型类别然后从列表中选择一个值,例如签发账户通知,或者scheduledChange.

    提示
    • 监控所有Amazon Health针对特定服务的事件,建议您选择任何活动类型类别任何资源. 这可以确保你的规则监控任何Amazon Health针对指定服务的事件,包括任何新的事件类型代码。有关示例规则,请参阅所有 Amazon EC2 事件.

    • 您可以创建一个规则来监控多个服务或事件类型类别。为此,您必须手动更新规则的事件模式。有关更多信息,请参阅 为多个服务和类别创建规则

  11. 如果您选择了特定的服务和事件类型类别,请为事件类型代码选择以下选项之一。

    • 选择任何事件类型代码创建适用于所有事件类型代码的规则。

    • 选择特定事件类型代码然后从列表中选择一个或多个值。这将创建一个仅适用于特定事件类型代码的规则。例如,如果您选择AWS_EC2_INSTANCE_STOP_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED,您的规则仅适用于这些事件发生在您的账户中时。

  12. 为受影响的资源选择以下选项之一。

    • 选择任何资源创建适用于所有资源的规则。

    • 选择特定资源然后输入一个或多个资源的 ID。例如,您可以指定 Amazon EC2 实例 ID,例如我的例子 1b2c3de4,以监视仅影响此资源的事件。

  13. 审查您的规则设置以使其符合事件监控要求。

  14. 请选择 Next (下一步)

  15. 在存储库的选择目标页面中,选择您为此规则创建的目标类型,然后配置该类型所需的任何其他选项。例如,您可以将事件发送到 Amazon SQS 队列或 Amazon SNS 主题。

  16. 请选择 Next (下一步)

  17. (可选)在配置标签页面,添加任何标签然后选择下一步.

  18. 在存储库的审核和创建页面上,审查您的规则设置并确保其符合事件监控要求。

  19. 请选择 Create rule (创建规则)

例 :特定 Amazon EC2 事件的规则

以下示例创建一个规则,以使 EventBridge 监控以下内容:

  • Amazon EC2 服务

  • 这些区域有:scheduledChange事件类型类别

  • 为事件类型代码AWS_EC2_INSTANCE_TERMINATION_SCHEDULEDAWS_EC2_INSTANCE_RETIREMENT_SCHEDULED

  • 具有 ID 的实例i-EXAMPLEa1b2c3de4

为多个服务和类别创建规则

上一过程中的示例向您展示了如何为单个服务和事件类型类别创建规则。您还可以为多个服务和事件类型类别创建规则。这意味着,您不必为要监控的每个服务和类别创建单独的规则。为此,您必须编辑事件模式,然后手动输入更改。

您可以使用以下任一选项。

为现有规则添加服务和类别

  1. 在 EventBridge 在控制台上Rule页面中,选择规则名称。

  2. 在右上角,选择 Edit (编辑)

  3. 请选择 Next (下一步)

  4. 适用于事件模式,选择编辑模式,然后在文本字段中输入您的更改。

  5. 选择下一步直到你到达检查和更新页.

  6. 选择更新规则保存您的更改。

为新规则添加服务和类别

  1. 按照中过程操作创建 EventBridge 规则Amazon Health步骤 9.

  2. 而不是从列表中选择单个服务或类别,事件模式,选择编辑模式.

  3. 在文本字段中输入您的更改。请参阅以下信息示例模式作为创建自己的事件模式的模式。

  4. 查看你的活动模式,然后按照中的其余步骤进行操作创建 EventBridge 规则Amazon Health创建您的规则。

使用 API 或Amazon Command Line Interface(Amazon CLI)

对于新规则或现有规则,请使用PutRuleAPI 操作或aws events put-rule命令来更新事件模式。例如Amazon CLI命令,请参阅放置规则中的Amazon CLI命令参考.

例如:多种服务和活动类型类别

以下事件模式创建了一条规则来监控issueaccountNotification, 和scheduledChange三种活动类型类别Amazon服务:Amazon EC2、Amazon EC2 Auto Scaling 和 Amazon VPC。

{ "detail": { "eventTypeCategory": [ "issue", "accountNotification", "scheduledChange" ], "service": [ "AUTOSCALING", "VPC", "EC2" ] }, "detail-type": [ "AWS Health Event" ], "source": [ "aws.health" ] }

接收Amazon Health活动Amazon Chatbot

你可以收到Amazon Health直接在聊天客户端中进行的活动,例如 Slack 和 Amazon Chime。你可以使用此事件来识别最近的Amazon可能影响您的服务问题Amazon应用和基础架构。然后,您可以登录Amazon Health控制面板以了解有关更新的更多信息。例如,如果您正在监控AWS_EC2_INSTANCE_STOP_SCHEDULED您的事件类型Amazon账户,Amazon Health事件可以直接显示在你的 Slack 频道中。

先决条件

在开始之前,您必须具有以下内容:

  • 配置了聊天客户端Amazon Chatbot. 您可以配置 Amazon Chime 和 Slack。有关更多信息,请参阅 。开始使用Amazon Chatbot中的Amazon Chatbot管理员指南.

  • 您创建并订阅的 Amazon SNS 主题。如果您已有 SNS 主题,则可以使用现有主题。有关更多信息,请参阅 Amazon Simple Notification Service 开发人员指南中的 Amazon SNS 入门

要接收Amazon Health活动Amazon Chatbot

  1. 按照中过程操作创建 EventBridge 规则Amazon Health通过步骤 13。

    1. 当你在中选择目标时步骤 14中,选择 SNS 主题。你将在Amazon Chatbot控制台。

    2. 完成剩余程序以创建规则。

  2. 导航到 Amazon Chatbot 控制台

  3. 选择聊天客户端,例如 Slack 频道名称,然后选择编辑.

  4. 通知-可选部分,主题中,选择您在步骤 1 中指定的相同 SNS 主题。

  5. 选择 Save(保存)。

    何时Amazon Health将事件发送到 EventBridge 符合你的规则,Amazon Health事件将显示在您的聊天客户端中。

  6. 选择活动名称以查看更多信息Amazon Health控制面板。

针对 Amazon EC2 实例实现自动化操作

您可以自动化操作,以响应 Amazon EC2 实例的计划事件。何时Amazon Health将活动发送给你的Amazon您的账户, EventBridge 然后,规则可以调用目标,例如Amazon Systems Manager自动化文档,以代表您自动化操作。

例如,在为 Amazon Elastic Block Store (Amazon EBS) 支持的 EC2 实例计划 Amazon EC2 实例停用事件时,Amazon Health将发送AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED事件类型Amazon Health控制面板。当您的规则检测到此事件类型时,您可以自动停止和启动实例。这样,您无需手动执行这些操作。

注意

要自动完成 Amazon EC2 实例的操作,实例必须由 Systems Manager 托管。

有关更多信息,请参阅 。使用 EventBridge 自动化 Amazon EC2中的适用于 Linux 实例的 Amazon EC2 用户指南.

先决条件

您必须创建Amazon Identity and Access Management(IAM) 策略、创建 IAM 角色并在创建规则之前更新角色的信任策略。

按照此程序为您的角色创建客户托管策略。此策略向角色提供代表您执行操作的权限。此程序使用 IAM 控制台中的 JSON 策略编辑器。

创建 IAM 策略

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies (策略)

  3. 选择创建策略

  4. 请选择 JSON 选项卡。

  5. 复制以下 JSON,然后替换编辑器中的默认 JSON。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:StartInstances", "ec2:StopInstances", "ec2:DescribeInstanceStatus" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": [ "arn:aws:sns:*:*:Automation*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::123456789012:role/AutomationEVRole" } ] }
    1. Resource参数,在 Amazon 资源名称 (ARN) 中,输入您的Amazon账户 ID。

    2. 您也可以替换角色名称或使用默认名称。此示例使用自动化 evRole.

  6. 选择 Next:。标签

  7. (可选)您可以使用标签作为键值对来向策略添加元数据。

  8. 选择 Next:。审核

  9. 在存储库的审核策略页面中,输入名称之外的压缩算法(例如自动化电子角色策略和一个可选的说明.

  10. 查看摘要页面以查看策略允许的权限。如果您对保单满意,请选择创建策略.

此策略定义该角色可以执行的操作。有关更多信息,请参阅 。创建 IAM 策略(控制台)中的IAM 用户指南.

创建策略后,您必须创建一个 IAM 角色,然后将策略附加到该角色。

为创建角色Amazon服务

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色,然后选择创建角色

  3. 对于选择受信任实体的类型,选择 Amazon 服务

  4. 选择EC2对于您希望允许其承担此角色的服务。

  5. 选择 Next:。Permissions (下一步:权限)

  6. 输入您创建的策略名称,例如自动化电子角色策略,然后选中策略旁的复选框。

  7. 选择 Next:。标签

  8. (可选)您可以使用标签作为键值对来向角色添加元数据。

  9. 选择 Next:。审核

  10. 适用于Role name (角色名称)输入、自动化 evRole. 此名称必须与您创建的 IAM 策略的 ARN 中显示的名称相同。

  11. (可选)对于角色描述中,输入角色的描述。

  12. 检查角色,然后选择 Create role

有关更多信息,请参阅 。为创建角色Amazon服务中的IAM 用户指南.

最后,您可以为您创建的角色更新信任策略。您必须完成此过程,才能在 EventBridge 控制台。

更新角色的信任策略

  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择角色

  3. 在您的角色列表中Amazon账户中,选择您创建的角色的名称,例如自动化 evRole.

  4. 选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)

  5. 适用于策略文档,复制以下 JSON,删除默认策略,然后将复制的 JSON 粘贴到其位置。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. 选择 Update Trust Policy

有关更多信息,请参阅 。修改角色信任策略(控制台)中的IAM 用户指南.

为 EventBridge 创建规则

按照此程序在 EventBridge 控制台,您可以自动完成计划停用的 EC2 实例的停止和启动。

为创建规则 EventBridge 对于 Systems Manager 自动操作

  1. 打开 Amazon EventBridge 控制台https://console.aws.amazon.com/events/.

  2. 在导航窗格中的事件下,选择规则

  3. 在存储库的创建规则页面中,输入名称说明为您的规则。

  4. Define pattern(定义模式)下,选择 Event pattern(事件模式),然后选择 Pre-defined pattern by service(按服务预定义的模式)。

  5. 对于 Service provider(服务提供商),选择 Amazon

  6. 适用于Service name (服务名称),选择运行状况.

  7. 适用于Event type,选择特定 Health 事件.

  8. 选择特定服务然后选择EC2.

  9. 选择特定事件类型类别然后选择scheduledChange.

  10. 选择特定事件类型代码然后选择事件类型代码。

    例如,对于 Amazon EC2 EBS 支持的实例,请选择AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED. 对于 Amazon EC2 实例存储支持的实例,请选择AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED.

  11. 选择 Any resource(任何资源)

    您的事件模式类似以下示例。

    { "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
  12. 添加 Systems Manager Automation 文档目标。在选择目标,对于目标,选择SSM 自动化.

  13. 对于文档,选择 Amazon-RestartEC2Instance

  14. 展开配置自动化参数然后选择输入转换器.

  15. 对于输入路径输入字段,{"Instances":"$.resources"}.

  16. 对于第二个字段,输入{"InstanceId": <Instances>}.

  17. 选择使用现有角色,然后选择您创建的 IAM 角色,例如自动化 evRole.

    注意

    如果您没有具备所需 EC2 和 Systems Manager 权限和可信关系的现有 IAM 角色,则您的角色将不会显示在列表中。有关更多信息,请参阅 先决条件

  18. 选择 Create(创建)。

    如果您的账户中发生的事件与您的规则匹配, EventBridge 将把事件发送到你指定的目标。