如何将内存和磁盘指标从 EC2 实例发送到 CloudWatch?

1 分钟阅读
0

我想将内存和磁盘指标从我的 Amazon Elastic Compute Cloud(Amazon EC2)实例发送到 Amazon CloudWatch Metrics。我该如何操作?

简述

默认情况下,Amazon EC2 在 AWS/EC2 命名空间中向 CloudWatch 提供一组与您的实例相关的指标。这包括 CPU 利用率以及一组 NetworkInNetworkOut 指标。
**注意:**EC2 不提供与操作系统级别内存使用率或磁盘使用率指标相关的指标。

要查找这些指标并将其作为自定义指标提供给 CloudWatch,请安装统一的 CloudWatch 代理。然后,在代理配置文件中定义这些指标。

**重要信息:**自定义指标根据其存储和 API 使用收费。

解决方案

**注意:**如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI

您可以使用 AWS CLI 手动下载和安装 CloudWatch 代理,也可以将其与 AWS Systems Manager Agent(SSM Agent)集成。
**注意:**CloudWatch 代理在 Windows 和 Linux 系统上都受支持。

使用下列步骤来安装 CloudWatch 代理:

  1. 创建 IAM 角色或用户,以激活从服务器收集指标的代理。(可选)与 AWS Systems Manager 集成。将此 IAM 角色附加到要在其上安装代理的 EC2 实例。

  2. 下载代理包,然后安装代理包。

  3. 创建 CloudWatch 代理配置文件,然后指定您想要收集的指标。

    此代码示例显示了一个基本代理配置文件,该文件报告了 Linux 系统上的内存使用率和磁盘使用率指标:

    {
      "metrics": {
        "metrics_collected": {
          "mem": {
            "measurement": [
              "mem_used_percent"
            ]
          },
          "disk": {
            "measurement": [
              "used_percent"
            ],
            "resources": [
              "*"
            ]
          }
        },
        "append_dimensions": {
          "InstanceId": "${aws:InstanceId}"
        }
      }
    }

    此代码示例显示 Windows 系统的基本代理配置文件:

    {
      "metrics": {
        "metrics_collected": {
          "LogicalDisk": {
            "measurement": [
              "% Free Space"
            ],
            "resources": [
              "*"
            ]
          },
          "Memory": {
            "measurement": [
              "% Committed Bytes In Use"
            ]
          }
        },
        "append_dimensions": {
          "InstanceId": "${aws:InstanceId}"
        }
      }
    }
  4. 在您的 EC2 实例上启动代理

默认情况下,活动代理会向 CloudWatch 中的 CWAgent 命名空间报告您的实例中的指标。如果遇到问题,请参阅 CloudWatch 代理故障排除

相关信息

使用 CloudWatch 监控您的实例

AWS 官方
AWS 官方已更新 5 个月前