本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用亚马逊监控Amazon Health事件 EventBridge
您可以使用 Amazon 检测 EventBridge 并响应对Amazon Health事件。随后,当您在规则中指定的值匹配时,会根据您创建的规则, EventBridge 调用一个或多个目标操作。根据事件的类型,您可以捕获事件信息、启动其他事件、发送通知、采取纠正措施或执行其他操作。例如,如果您有计划更新的Amazon资源,例如 Amazon Elastic Compute Cloud (Amazon EC2) 实例Amazon Web Services 账户,您能使用Amazon Health 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 函数在Amazon Health事件发生时将通知传入 Slack 通道。或者,您可以使用 Lambda 并在 EventBridge Amazon Health事件发生时通过 Amazon SNS 发送自定义文本或 SMS 通知。
主题
关于我们Amazon Web Services 区域Amazon Health
您必须为要针对其接收Amazon Health事件通知的每个区域创建 EventBridge 规则。如果您不创建规则,则不会收到事件。例如,要接收来自中国(北京)区域的事件,您必须为此区域创建规则。
有些Amazon Health活动不是特定地区的。不特定于某个区域的事件称为全球事件。其中包括发送给Amazon Identity and Access Management (IAM) 的事件。要接收全球事件,您必须为中国(宁夏)区域创建规则。
关于的公共活动Amazon Health
只有特定于您的账户Amazon Health的事件才会发送到 EventBridge。这可能包括事件,例如 Amazon EC2 实例的必要更新或其他可能影响您的账户和资源的预定变更事件。
目前,您无法使用从Serv ic EventBridge e Health Das
相反,您可以使用Amazon Health控制台和DescribeEventDetails操作。您可以使用任一选项返回有关事件的信息,然后确定该事件是Service Health Dashboard 中的公共事件还是特定于您的事件Amazon Web Services 账户。
您可以使用以下选项来确定活动是公共活动还是特定于账户:
-
在Amazon Health控制板中,为事件选择 “受影响资源” 选项卡。具有资源的事件特定于您的账户。没有资源的事件是公开的,并不是特定于您的账户。有关更多信息,请参阅开始使用您的初始使用Amazon Health控制面板 — 您的账户状况:
-
使用 Amazon Health API 返回
eventScopeCode
参数。事件可以具有PUBLIC
、ACCOUNT_SPECIFIC
或NONE
值。有关更多信息,请参阅 Amazon HealthAPI 参考中的DescribeEventDetails操作。
您还可以使用ServAmazon Health ice Health Dashboard 通知工具来获取有关公共事件的通知。有关更多信息,请参阅aws-health-tools
的事件处理器Amazon Health
如果您为账户使用Amazon事件检测和响应,则可以创建AWSServiceRoleForHealth_EventProcessor服务相关角色。
该角色信任event-processor.health.amazonaws.com
服务委托人来代入该角色。与该角色关联的是AWSHealth_EventProcessorServiceRolePolicy
Amazon托管策略。此策略列出了该角色可以执行的权限,例如Amazon Web Services为您呼叫其他人。
然后,此角色会在您的账户中创建亚马逊 EventBridge 托管规则。该规则被命名为AWSHealthEventProcessor-DO-NOT-DELETE
。此规则是您的账户所需的基础架构,因此 EventBridge 可以将警报状态更改信息从您的账户传送到Amazon Health。
相关信息
要了解更多信息,请参阅以下主题:
为创建 EventBridge 规则Amazon Health
您可以创建 EventBridge 规则,以针对账户中的Amazon Health事件获得通知。在为创建事件规则之前Amazon Health,请执行以下操作:
-
熟悉中的事件、规则和目标 EventBridge。有关更多信息,请参阅什么是 Amazon EventBridge? 在《亚马逊 EventBridge 用户指南》和《新 EventBridge 增》中 — 跟踪和响应您的Amazon资源变更
。 -
创建要在您的事件规则中使用的目标。
为创建 EventBridge 规则Amazon Health
通过 https://console.aws.amazon.com/events/
打开亚马逊 EventBridge 控制台。 -
要更改 Amazon Web Services 区域,请使用页面右上角的 Region selector (区域选择器)。请选择要在其中跟踪Amazon Health事件的区域。
-
在导航窗格中,选择 Rules (规则)。
-
选择 Create rule (创建规则)。
-
在 Define rule detail(定义规则详细信息)页面上,输入规则名称和描述。
-
对于 Event bus(事件总线)和 Rule type(规则类型),保留默认值,然后选择 Next(下一步)。
-
在生成事件模式页面上,为事件源选择Amazon事件和 EventBridge 合作伙伴事件。
-
在 “事件模式” 下,对于 “事件源”,选择Amazon Web Services。
-
在 “事件模式” 下,选择 “Health”。Amazon Web Service
-
对于 Event type (事件类型),请选择下列选项之一。
-
特定Health 滥用事件-为Amazon Health事件类型名称
Abuse
中包含单词的事件创建规则。 -
特定Health 事件 — 为特定Amazon Web Service事件(例如 Amazon EC2)创建规则。
-
-
您可以选择任何服务或特定服务。如果您选择特定服务,请选择下列选项之一:
-
选择任何事件类型类别以创建适用于所有事件类型类别的规则。
-
选择特定事件类型类别,然后从列表中选择一个值,例如问题、账户通知或Ss cheduledCh ange ange。
提示 -
要监视特定服务的所有Amazon Health事件,我们建议您选择任何事件类型类别和任何资源。这样可以确保您的规则监视指定服务的任何Amazon Health事件,包括任何新的事件类型代码。有关示例规则,请参阅所有 Amazon EC2 事件。
-
您可以创建规则来监视多个服务或事件类型类别。为此,您必须手动更新规则的事件模式。有关更多信息,请参阅为多个服务和类别创建规则:
-
-
如果您选择了特定的服务和事件类型类别,请为事件类型代码选择以下选项之一。
-
选择任何事件类型代码以创建适用于所有事件类型代码的规则。
-
选择 Specific event t ype code (s)(特定事件类型代码),然后从列表中选择一个或多个值。这将创建一条仅适用于特定事件类型代码的规则。例如,如果您选择
AWS_EC2_INSTANCE_STOP_SCHEDULED
和AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
,则您的规则仅适用于您的账户中发生的这些事件。
-
-
为受影响的资源选择以下选项之一。
-
选择 An y resource(任何资源)来创建适用于所有资源的规则。
-
选择特定资源,然后输入一个或多个资源的 ID。例如,您可以指定 Amazon EC2 实例 ID,
例如 i-examplea1b2c3De4
,以监控仅影响此资源的事件。
-
-
选择 Next(下一步)。
-
在 Select target (s)(选择目标)页面上,选择您为此规则创建的目标类型,然后配置该类型所需的任何其他选项。例如,您可以将事件发送到 Amazon SQS 队列或 Amazon SNS 主题。
-
选择 Next(下一步)。
-
(可选)在 Configure tags(配置标签)页面上,添加任意标签,然后选择 Next(下一步)。
-
在 Review and create(审查并创建)页面上,审查您的规则设置并确保其符合您的事件监控要求。
-
选择 Create rule(创建规则)。
例 : 针对特定 Amazon EC2 事件的规则
以下示例创建规则以 EventBridge 监控以下内容:
-
Amazon EC2 服务
-
Ss cheduledChang e ge 事件类型类别
-
AWS_EC2_INSTANCE_TERMINATION_SCHEDULED
和的事件类型代码AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
-
带有 ID 的实例
i-EXAMPLEa1b2c3de4
为多个服务和类别创建规则
前面过程中的示例向您展示了如何为单个服务和事件类型类别创建规则。您还可以为多个服务和事件类型类别创建规则。这意味着您不必为要监控的每个服务和类别创建单独的规则。为此,您必须编辑事件模式,然后手动输入您的更改。
您可以使用以下任一选项。
为现有规则添加服务和类别
-
在 EventBridge 控制台的规则页面上,选择规则名称。
-
在右上角,选择 Edit (编辑)。
-
选择 Next(下一步)。
-
对于事件模式,选择编辑模式,然后在文本字段中输入您的更改。
-
选择 “下一步”,直到到达 “查看和更新” 页面。
-
选择 Update rupe(更新规则)以保存您的
为新规则添加服务和类别
-
按照步骤 9 中的步骤为创建 EventBridge 规则Amazon Health进行操作。
-
对于事件模式,请选择 “编辑模式”,而不是从列表中选择单个服务或类别。
-
在文本字段中输入您的更改。请参阅以下示例模式作为创建自己的事件模式的模型。
-
查看您的事件模式,然后按照中的其余为创建 EventBridge 规则Amazon Health步骤创建规则。
使用 API 或Amazon Command Line Interface (Amazon CLI)
对于新规则或现有规则,请使用 PutRuleAPI 操作或aws events put-rule
命令更新事件模式。有关Amazon CLI命令示例,请参阅《Amazon CLI命令参考》中的 put- rule。
例 示例:多个服务和事件类型类别
以下事件模式创建了一条规则,用于监控三项Amazon服务issue
、和scheduledChange
事件类型类别的事件:Amazon EC2accountNotification
、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
您可以直接在聊天客户端(例如 Slack 和 Amazon Chime)中接收Amazon Health事件。您可以使用此事件来识别最近可能影响您的Amazon应用程序和基础架构的Amazon服务问题。然后,您可以登录Amazon Health控制面板AWS_EC2_INSTANCE_STOP_SCHEDULED
事件类型,则该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
-
按照步骤 13 中的为创建 EventBridge 规则Amazon Health步骤进行操作。
-
在步骤 14 中选择目标时,选择一个 SNS 主题。您将在Amazon Chatbot控制台中使用相同的 SNS 主题。
-
完成创建规则的剩余过程。
-
-
导航到 Amazon Chatbot 控制台
。 -
选择您的聊天客户端,例如您的 Slack 频道名称,然后选择 “编辑”。
-
在 “通知-可选” 部分的 “主题” 中,选择您在步骤 1 中指定的相同 SNS 主题。
-
选择 Save(保存)。
当Amazon Health向发送符合您的规则的事件时,该Amazon Health事件将出现在您的聊天客户端中。 EventBridge
-
选择事件名称可在Amazon Health控制面板中查看更多信息。
Amazon EC2 实例操作自动化
您可以自动执行响应 Amazon EC2 实例的计划事件的操作。当Amazon Health向您的Amazon账户发送事件时,您的 EventBridge 规则随后可以调用目标,例如Amazon Systems Manager自动化文档,以代表您自动执行操作。
例如,当为 Amazon Elastic Block Store (Amazon EBS) 支持的 EC2 实例安排 Amazon EC2 停用事件时,该AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
事件类型Amazon Health将被发送到 DAmazon Health ased Block Store (Amazon EBS)) 当您的规则检测到此事件类型时,您可以自动停止和启动实例。这样,您无需手动执行这些操作。
要为您的 Amazon EC2 实例自动执行操作,实例必须由 Systems Manager 托管。
有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南 EventBridge中的使用 Amazon EC2 自动化操作。
先决条件
在创建规则之前,您必须创建Amazon Identity and Access Management (IAM) 策略、创建 IAM 角色并更新该角色的信任策略。
按照此步骤为您的角色创建客户管理型策略。该策略代表您向角色提供执行操作的工作流程权限。此过程使用 IAM 控制台中的 JSON 策略编辑器。
创建 IAM 策略
登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 Policies (策略)。
-
选择创建策略。
-
请选择 JSON 选项卡。
-
复制以下 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
" } ] }-
在
Resource
参数中,对于 Amazon 资源名称 (ARN),输入您的Amazon账户 ID。 -
您也可以替换角色名称或使用默认名称。此示例使用
AutomationeVrole
。
-
-
请选择下一步:标签。
-
(可选)您可以使用标签作为键值对将元数据添加到策略。
-
选择 Next: Review(下一步: 审核)。
-
在查看政策页面上,输入名称,例如 A
utomationEVRolePolicy
和可选的描述。 -
查看 Su mmary(摘要)页面以查看策略允许的权限。如果您对策略满意,请选择 Create policy (创建策略)。
此策略定义角色可以执行的操作。有关更多信息,请参阅《IAM 用户指南》中的创建 IAM policy(控制台)。
创建策略后,您必须创建 IAM 角色,并将策略附加到此角色。
为Amazon服务创建角色
登录Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色,然后选择创建角色。
-
对于Select type of trusted entity(选择受信任实体的类型),选择 Amazon service(服务)。
-
为要允许其承担此角色的服务选择 EC2。
-
选择Next: Permissions(下一步: 权限)。
-
输入您创建的策略名称(例如
AutomationEV
)RolePolicy,然后选中策略旁边的复选框。 -
请选择下一步:标签。
-
(可选)您可以使用标签作为键值对将元数据添加到角色。
-
选择 Next: Review(下一步: 审核)。
-
在角色名称中,输入
AutomationeVrole
。此名称必须与您创建的 IAM policy ARN 中显示的名称相同。 -
(可选)对于 Role description(角色描述),输入角色的描述。
-
检查角色,然后选择 Create role。
有关更多信息,请参阅《IAM 用户指南》中的创建用于 Amazon 服务的角色。
最后,您可以更新所创建角色的信任策略。您必须完成此过程才能在 EventBridge 控制台中选择此角色。
更新角色的信任策略
登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择角色。
-
在您的Amazon账户的角色列表中,请选择您创建的角色的名称(例如
AutomationeVrole
)。 -
选择 Trust relationships (信任关系) 选项卡,然后选择 Edit trust relationship (编辑信任关系)。
-
对于策略文档,复制以下 JSON,删除默认策略,然后将复制的 JSON 粘贴到原处。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ssm.amazonaws.com", "events.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
选择 Update Trust Policy(更新信任策略)。
有关更多信息,请参阅《IAM 用户指南》中修改角色信任策略(控制台)。
为创建规则 EventBridge
按照此过程在 EventBridge 控制台中创建规则,这样您就可以自动停止和启动计划停用的 EC2 实例。
为Systems EventBridge Manager 自动操作创建规则
通过 https://console.aws.amazon.com/events/
打开亚马逊 EventBridge 控制台。 -
在导航窗格中的事件下,选择规则。
-
在创建规则页面上,输入规则的名称和描述。
-
在 Define pattern(定义模式)下,选择 Event pattern(事件模式),然后选择 Pre-defined pattern by service(按服务预定义的模式)。
-
对于 Service provider(服务提供商),选择 Amazon。
-
对于服务名称,选择 Health。
-
对于事件类型,选择特定Health 事件。
-
选择特定服务,然后选择 EC2。
-
选择 Speci fic event type category (s) s chedu ledChang e(s)(
-
选择特定事件类型代码,然后选择事件类型代码。
例如,对于由 Amazon EC2 EBS 支持的实例,请选择
。对于 Amazon EC2 实例存储支持的实例,请选择AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
。AWS_EC2_INSTANCE_RETIREMENT_SCHEDULED
-
选择 Any resource(任何资源)。
您的事件模式类似于以下示例:
{ "source": [ "aws.health" ], "detail-type": [ "AWS Health Event" ], "detail": { "service": [ "EC2" ], "eventTypeCategory": [ "scheduledChange" ], "eventTypeCode": [ "AWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED" ] } }
-
添加Systems Manager 自动化文档目标。在 “选择目标” 下的 “目标” 中,选择 SSM 自动化。
-
对于文档,选择
Amazon-RestartEC2Instance
。 -
展开 “配置自动化参数”,然后选择 “输入变压器”。
-
在 “输入路径” 字段中,输入
。{"Instances":"$.resources"}
-
对于第二个字段,输入
。{"InstanceId": <Instances>}
-
选择使用现有角色,然后选择您创建的 IAM 角色,例如 A
utomationeVRole
。注意 如果您没有具有所需的 EC2 和Systems Manager 权限以及可信关系的现有 IAM 角色,则您的角色将不会出现在列表中。有关更多信息,请参阅先决条件:
-
选择 Create(创建)。
如果您的账户中发生与您的规则相匹配的事件,则 EventBridge 会将该事件发送到您的指定目标。