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

使用 AWS CloudFormation 在新实例上安装 CloudWatch 代理

Amazon 已将若干 AWS CloudFormation 模板上传到 GitHub,以帮助您安装和更新 CloudWatch 代理。有关使用 AWS CloudFormation 的更多信息,请参阅什么是 AWS CloudFormation?

模板位置为使用 AWS CloudFormation 将 CloudWatch 代理部署到 EC2 实例。此位置同时包括 inlinessm 目录。其中每个目录包含同时适用于 Linux 和 Windows 实例的模板。

  • inline 目录中的模板已将 CloudWatch 代理配置嵌入到 AWS CloudFormation 模板中。默认情况下,Linux 模板收集指标 mem_used_percentswap_used_percent,而 Windows 模板收集 Memory % Committed Bytes In UsePaging File % Usage

    您可以修改这些模板,以通过修改模板的以下部分收集不同的指标。下面的示例来自 Linux 服务器的模板。按照代理配置文件的格式和语法来进行这些更改。有关更多信息,请参阅 手动创建或编辑 CloudWatch 代理配置文件

    { "metrics": { "append_dimensions": { "AutoScalingGroupName": "${!aws:AutoScalingGroupName}", "ImageId": "${!aws:ImageId}", "InstanceId": "${!aws:InstanceId}", "InstanceType": "${!aws:InstanceType}" }, "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ] }, "swap": { "measurement": [ "swap_used_percent" ] } } }

    注意

    在内联模板中,所有占位符变量必须具有感叹号 (!),然后才能将它们作为一个转义字符。您可以在上述示例模板中看到此内容。如果您添加其他占位符变量,请务必在名称前添加一个感叹号。

  • ssm 目录中的模板从 Parameter Store 加载代理配置文件。要使用这些模板,您必须先创建配置文件并将其上传到 Parameter Store。然后,您可以提供模板中的文件的 Parameter Store 名称。您可以手动或使用向导来创建配置文件。有关更多信息,请参阅 创建 CloudWatch 代理配置文件

您可以使用这两种类型的模板安装 CloudWatch 代理和更新代理配置。

教程:使用 AWS CloudFormation 内联模板安装和更新 CloudWatch 代理

本教程将演练如何使用 AWS CloudFormation 在新的 Amazon EC2 实例上安装 CloudWatch 代理。本教程使用内联模板在运行 Amazon Linux 2 的新实例上进行安装,不要求使用 Parameter Store。内联模板在模板中包含代理配置。在本教程中,您将使用模板中包含的默认代理配置。

在介绍安装代理的过程之后,该教程继续说明如何更新代理。

使用 AWS CloudFormation 在新实例上安装 CloudWatch 代理

  1. 从 GitHub 下载模板。在本教程中,下载 Amazon Linux 2 的内联模板:

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/inline/amazon_linux.template
  2. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  3. 选择创建堆栈

  4. 对于选择一个模板,选择将模板上传到 Amazon S3,选择下载的模板,然后选择下一步

  5. 指定详细信息页面上,填写以下参数,然后选择下一步

    • 堆栈名称:为 AWS CloudFormation 堆栈选择堆栈名称。

    • IAMRole:选择一个 IAM 角色,该角色有权写入 CloudWatch 指标和日志。有关更多信息,请参阅 创建 IAM 角色以用于 Amazon EC2 实例上的 CloudWatch 代理

    • InstanceAMI:选择在您将要启动堆栈的区域中有效的 AMI。

    • InstanceType:选择有效的实例类型。

    • KeyName:要对新实例启用 SSH 访问,请选择一个现有 Amazon EC2 密钥对。如果还没有 Amazon EC2 密钥对,可以在 AWS 管理控制台中创建一个。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 密钥对

    • SSHLocation:指定可用于通过 SSH 连接到实例的 IP 地址范围。默认情况下,允许从任何 IP 地址进行访问。

  6. Options (选项) 页面上,您可以选择为堆栈资源添加标签。选择 Next

  7. 审核页面上,审核您的信息,确认堆栈可创建 IAM 资源,然后选择创建

    如果您刷新控制台,您将看到新堆栈具有 CREATE_IN_PROGRESS 状态。

  8. 创建实例时,您可以在 Amazon EC2 控制台中看到它。(可选)然后,您可以连接到主机并检查进度。

    使用以下命令确认代理已安装:

    rpm -qa amazon-cloudwatch-agent

    使用以下命令确认代理正在运行:

    ps aux |grep amazon-cloudwatch-agent

以下过程演示使用 AWS CloudFormation 通过内联模板更新 CloudWatch 代理。默认内联模板收集 mem_used_percent 指标。在本教程中,您将更改代理配置以停止收集该指标。

使用 AWS CloudFormation 更新 CloudWatch 代理

  1. 在上一个过程中下载的模板中,删除以下行,然后保存该模板:

    "mem": { "measurement": [ "mem_used_percent" ] },
  2. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  3. 在 AWS CloudFormation 控制面板中,选择您创建的堆栈,然后选择更新堆栈

  4. 对于选择模板,选择将模板上传到 Amazon S3,选择修改的模板,然后选择下一步

  5. 选项页面上,依次选择下一步下一步

  6. 审核页面上,审核您的信息,然后选择更新

    经过一段时间后,您会看到 UPDATE_COMPLETE

教程:使用 AWS CloudFormation 和 Parameter Store 安装 CloudWatch 代理

本教程将演练如何使用 AWS CloudFormation 在新的 Amazon EC2 实例上安装 CloudWatch 代理。本教程使用您在 Parameter Store 中创建并保存的代理配置文件,在运行 Amazon Linux 2 的新实例上进行安装。

在介绍安装代理的过程之后,该教程继续说明如何更新代理。

使用 Parameter Store 中的配置通过 AWS CloudFormation 在新实例上安装 CloudWatch 代理

  1. 创建代理配置文件并将其保存在 Parameter Store 中。有关更多信息,请参阅 创建 CloudWatch 代理配置文件

  2. 从 GitHub 下载模板:

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
  3. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  4. 选择创建堆栈

  5. 对于选择一个模板,选择将模板上传到 Amazon S3,选择您下载的模板,然后选择下一步

  6. Specify Details (指定详细信息) 页面上,相应填写以下参数,然后选择 Next (下一步)

    • 堆栈名称:为 AWS CloudFormation 堆栈选择堆栈名称。

    • IAMRole:选择一个 IAM 角色,该角色有权写入 CloudWatch 指标和日志。有关更多信息,请参阅 创建 IAM 角色以用于 Amazon EC2 实例上的 CloudWatch 代理

    • InstanceAMI:选择在您将要启动堆栈的区域中有效的 AMI。

    • InstanceType:选择有效的实例类型。

    • KeyName:要对新实例启用 SSH 访问,请选择一个现有 Amazon EC2 密钥对。如果还没有 Amazon EC2 密钥对,可以在 AWS 管理控制台中创建一个。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的 Amazon EC2 密钥对

    • SSHLocation:指定可用于通过 SSH 连接到实例的 IP 地址范围。默认情况下,允许从任何 IP 地址进行访问。

    • SSMKey:指定在 Parameter Store 中创建并保存的代理配置文件。

  7. Options (选项) 页面上,您可以选择为堆栈资源添加标签。选择 Next

  8. 审核页面上,审核您的信息,确认堆栈可创建 IAM 资源,然后选择创建

    如果您刷新控制台,您将看到新堆栈具有 CREATE_IN_PROGRESS 状态。

  9. 创建实例时,您可以在 Amazon EC2 控制台中看到它。(可选)然后,您可以连接到主机并检查进度。

    使用以下命令确认代理已安装:

    rpm -qa amazon-cloudwatch-agent

    使用以下命令确认代理正在运行:

    ps aux |grep amazon-cloudwatch-agent

以下过程演示如何使用 AWS CloudFormation,通过您在 Parameter Store 中保存的代理配置更新 CloudWatch 代理。

使用 AWS CloudFormation 通过 Parameter Store 中的配置更新 CloudWatch 代理

  1. 将存储在 Parameter Store 中的代理配置文件更改为所需的新配置。

  2. 在您于教程:使用 AWS CloudFormation 和 Parameter Store 安装 CloudWatch 代理主题中下载的 AWS CloudFormation 模板中更改版本号。例如,您可能将 VERSION=1.0 更改为 VERSION=2.0

  3. 通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation

  4. 在 AWS CloudFormation 控制面板中,选择您创建的堆栈,然后选择更新堆栈

  5. 对于选择模板,选择将模板上传到 Amazon S3,选择您刚刚修改的模板,然后选择下一步

  6. 选项页面上,依次选择下一步下一步

  7. 审核页面上,审核您的信息,然后选择更新

    经过一段时间后,您会看到 UPDATE_COMPLETE

排查通过 AWS CloudFormation 使用 CloudWatch 代理时出现的问题

本节帮助您排查使用 AWS CloudFormation 安装和更新 CloudWatch 代理时出现的问题。

检测何时更新失败

如果您使用 AWS CloudFormation 更新您的 CloudWatch 代理配置并使用无效的配置,代理将停止向 CloudWatch 发送任何指标。检查代理配置更新是否成功的快速方法是查看 cfn-init-cmd.log 文件。在 Linux 服务器上,此文件位于 /var/log/cfn-init-cmd.log。在 Windows 实例上,此文件位于 C:\cfn\log\cfn-init-cmd.log

指标缺失

如果您在安装或更新代理后没有看到预期会看到的指标,请确认代理配置为收集该指标。要执行此操作,请检查 amazon-cloudwatch-agent.json 文件,以确保该指标已列出,并且您可以在正确的指标命名空间中看到它。有关更多信息,请参阅 CloudWatch 代理文件和位置