一、配置本机使用的IAM Role
创建一个IAM Role,绑定2个IAM Policy,分别选中AWS managed Policy
即系统内置的AmazonSSMManagedInstanceCore
用于Session Manager,然后选择CloudWatch上传日志的Policy叫做CloudWatchAgentAdminPolicy
。
将这个IAM Role绑定到EC2上。绑定后需要一段时间才可以生效。如果不想等待这段时间,可以重启EC2则立刻生效。如果您不掌握如何创建EC2使用的IAM Role,当前EC2也没有使用IAM Role,那么请参考本篇创建IAM Role并绑定到EC2。
二、部署并配置
如果是新创建EC2,则在创建过程中选择高级,然后为EC2绑定上文创建的IAM Role,并在Userdata
位置输入如下脚本:
#! /bin/bash
yum update -y
yum install amazon-cloudwatch-agent -y
curl -O /opt/aws/amazon-cloudwatch-agent/bin/config.json https://blogimg.bitipcman.com/workshop/cloudwatch/config1.json
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
配置完成。无须手工设置开机自动启动,因为CloudWatch Agent已经将随机启动配置到/etc/init/amazon-cloudwatch-agent.conf
,因此重启EC2时候,CloudWatch Agent将会自动启动。
三、验证工作正常
运行如下命令查看是否运行成功:
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a status
返回如下结果表示正常。
{
"status": "running",
"starttime": "2023-07-26T15:11:42+00:00",
"configstatus": "configured",
"version": "1.247358.0"
}
现在进入CloudWatch,点击左侧的Metrics
指标菜单,点击All metrics
全部指标,从右侧Browse
浏览标签页中找到Custom namespaces
自定义命名空间,从其中可看到如下:
- 在
CWAgent
下可找到device, fstype, host, path
,在其中deivce
为nvme0n1p1
、path
为/
、Metric name
名称叫做disk_used_percent
的数据,就是文件系统使用率 - 在
host
下可找到Metric name
名称为mem_used_percent
的数据,这一项就是内存使用率
至此配置监控完成。如下截图。
四、生成配置文件的参考(可选)
注:不需要修改监控项的话本章节可跳过。
1、启动配置向导重新生成配置文件
执行如下命令启动配置向导:
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
2、自动生成的配置文件
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "cwagent"
},
"metrics": {
"aggregation_dimensions": [
[
"InstanceId"
]
],
"metrics_collected": {
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
}
}
}
}
五、参考文档
运行 CloudWatch 代理配置向导
使用命令行启动 CloudWatch 代理