跳至内容

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

1 分钟阅读
0

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

简述

默认情况下,Amazon EC2 在 AWS/EC2 命名空间中向 CloudWatch 提供一组与您的实例相关的指标。这包括 CPU 利用率以及一组 NetworkInNetworkOut 指标。

Amazon EC2 不提供与操作系统 (OS) 级内存使用率或磁盘使用率指标相关的指标。要查找这些指标并将其作为自定义指标发送给 CloudWatch,请安装统一的 CloudWatch 代理。然后,在代理配置文件中定义这些指标。

**注意:**AWS 会根据自定义指标的存储和 API 使用情况对其进行收费。

解决方法

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

使用 AWS CLI 手动下载并安装 CloudWatch 代理。或者,将 CloudWatch 代理与 AWS Systems Manager Agent (SSM Agent) 集成。

**注意:**CloudWatch 代理在 Windows 和 Linux 系统上都受支持。

要安装 CloudWatch 代理,请完成以下步骤:

  1. 创建 AWS Identity and Access Management (IAM) 角色或用户,以向从服务器收集指标的代理授予权限。您也可以与 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 监控您的实例