我想将内存和磁盘指标从我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例发送到 Amazon CloudWatch Metrics。
简述
默认情况下,Amazon EC2 在 AWS/EC2 命名空间中向 CloudWatch 提供一组与您的实例相关的指标。这包括 CPU 利用率以及一组 NetworkIn 和 NetworkOut 指标。
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 代理,请完成以下步骤:
-
创建 AWS Identity and Access Management (IAM) 角色或用户,以向从服务器收集指标的代理授予权限。您也可以与 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 监控您的实例