我想将内存和磁盘指标从我的 Amazon Elastic Compute Cloud(Amazon EC2)实例发送到 Amazon CloudWatch Metrics。我该如何操作?
简述
默认情况下,Amazon EC2 在 AWS/EC2 命名空间中向 CloudWatch 提供一组与您的实例相关的指标。这包括 CPU 利用率以及一组 NetworkIn 和 NetworkOut 指标。
**注意:**EC2 不提供与操作系统级别内存使用率或磁盘使用率指标相关的指标。
要查找这些指标并将其作为自定义指标提供给 CloudWatch,请安装统一的 CloudWatch 代理。然后,在代理配置文件中定义这些指标。
**重要信息:**自定义指标根据其存储和 API 使用收费。
解决方案
**注意:**如果您在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请参阅排查 AWS CLI 错误。此外,确保您使用的是最新版本的 AWS CLI。
您可以使用 AWS CLI 手动下载和安装 CloudWatch 代理,也可以将其与 AWS Systems Manager Agent(SSM Agent)集成。
**注意:**CloudWatch 代理在 Windows 和 Linux 系统上都受支持。
使用下列步骤来安装 CloudWatch 代理:
-
创建 IAM 角色或用户,以激活从服务器收集指标的代理。(可选)与 AWS Systems Manager 集成。将此 IAM 角色附加到要在其上安装代理的 EC2 实例。
-
下载代理包,然后安装代理包。
-
创建 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}"
}
}
}
-
在您的 EC2 实例上启动代理。
默认情况下,活动代理会向 CloudWatch 中的 CWAgent 命名空间报告您的实例中的指标。如果遇到问题,请参阅 CloudWatch 代理故障排除。
相关信息
使用 CloudWatch 监控您的实例