Amazon CloudWatch
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 CloudWatch 代理的常见方案

以下几节简要说明在使用 CloudWatch 代理时如何完成一些常见的配置和自定义任务。

将自定义维度添加到 CloudWatch 代理收集的指标

要将自定义维度 (如标签) 添加到该代理收集的指标中,请将 append_dimensions 字段添加到代理配置文件中列出这些指标的部分。

例如,以下示例配置文件部分将一个名为 stackName 且值为 Prod 的自定义维度添加到该代理收集的 cpudisk 指标中。

"cpu":{ "resources":[ "*" ], "measurement":[ "cpu_usage_guest", "cpu_usage_nice", "cpu_usage_idle" ], "totalcpu":false, "append_dimensions":{ "stackName":"Prod" } }, "disk":{ "resources":[ "/", "/tmp" ], "measurement":[ "total", "used" ], "append_dimensions":{ "stackName":"Prod" } }

切记,每次更改代理配置文件时,您必须重新启动该代理以使更改生效。

汇总或累积 CloudWatch 代理收集的指标

要汇总或“累积”该代理收集的指标,请将 aggregation_dimensions 字段添加到代理配置文件中与该指标对应的部分。

例如,以下配置文件片段累积 AutoScalingGroupName 维度上的指标。每个 Auto Scaling 组的所有实例中的指标将进行汇总,可以将这些指标作为一个整体进行查看。

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [["AutoScalingGroupName"]] }

除了累积 Auto Scaling 组名称以外,如果还希望累积各个 InstanceIdInstanceType 维度的组合,请添加以下内容:

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [["AutoScalingGroupName"], ["InstanceId", "InstanceType"]] }

要将指标累积到一个集合中,请使用 []

"metrics": { "cpu":{...} "disk":{...} "aggregation_dimensions" : [[]] }

切记,每次更改代理配置文件时,您必须重新启动该代理以使更改生效。

使用 CloudWatch 代理收集高精度指标

metrics_collection_interval 字段指定收集的指标的时间间隔 (以秒为单位)。如果为该字段指定小于 60 的值,则将指标作为高精度指标进行收集。

例如,如果所有指标均应为高精度指标并且每 10 秒收集一次,请在 agent 部分中指定 10 作为 metrics_collection_interval 的值,以用作全局指标收集间隔:

"agent": { "metrics_collection_interval": 10 }

或者,以下示例将 cpu 指标设置为每秒收集一次,而将所有其他指标设置为每分钟收集一次。

"agent":{ "metrics_collection_interval": 60 }, "metrics":{ "metrics_collected":{ "cpu":{ "resources":[ "*" ], "measurement":[ "cpu_usage_guest" ], "totalcpu":false, "metrics_collection_interval": 1 }, "disk":{ "resources":[ "/", "/tmp" ], "measurement":[ "total", "used" ] } } }

切记,每次更改代理配置文件时,您必须重新启动该代理以使更改生效。

向不同 AWS 账户发送指标和日志

要让 CloudWatch 代理将指标和/或日志发送到其他 AWS 账户,请在发送服务器上的代理配置文件中指定 role_arn 参数。role_arn 值指定在将数据发送到目标账户时代理使用的发送账户中的 IAM 角色。在指标或日志传递到目标账户时,此角色使发送账户能够在目标账户中担任相应的角色。

您还可以在代理配置文件中指定两个单独的 role_arn 字符串:一个用于发送指标,另一个用于发送日志。

以下配置文件的 agent 部分示例将代理设置为在将指标和日志发送到其他 AWS 账户时使用 CrossAccountAgentRole

{ "agent": { "credentials": { "role_arn": "CrossAccountAgentRole" } }, ..... }

或者,以下示例为发送账户设置不同的角色,以用于发送指标和日志:

"metrics": { "credentials": { "role_arn": "RoleToSendMetrics" }, "metrics_collected": {....
"logs": { "credentials": { "role_arn": "RoleToSendLogs" }, ....

必需策略

在代理配置文件中指定 role_arn 时,还必须确保发送和目标账户的 IAM 角色具有某些策略。发送账户和目标账户中的角色应具有 CloudWatchAgentServerPolicy。有关将此策略分配给角色的详细信息,请参阅创建 IAM 角色以用于 Amazon EC2 实例上的 CloudWatch 代理

发送账户中的角色还必须包含以下策略。在编辑角色时,可以在 IAM 控制台的 Permissions (权限) 选项卡中添加此策略。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::target-account-ID:role/agent-role-in-target-account" ] } ] }

目标账户中的角色必须包含以下策略,以便它识别发送账户使用的 IAM 角色。在编辑角色时,可以在 IAM 控制台的 Trust relationships (信任关系) 选项卡中添加此策略。您添加此策略的目标账户中的角色是您在 创建 IAM 角色以用于 Amazon EC2 实例上的 CloudWatch 代理 中创建的角色。此角色是在发送账户使用的策略的 agent-role-in-target-account 中指定的角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::sending-account-ID:role/role-specified-in-role_arn" ] }, "Action": "sts:AssumeRole" } ] }