前言
场景说明
客户有多台EC2实例,分布在新加披、香港、东京区域,各服务都需要监控到内存、磁盘使用情况,因此手动一台一台执行安装命令可能会花费大量的实践。所以需要使用Systems Manager服务来做批量命令的执行,达到每台EC2实例CloudWatch都能监控到内存和磁盘的指标
环境准备
- 海外AWS Root账户或者IAM账户(IAM用户需具有相关权限)
- EC2实例需要绑定角色(角色拥有的策略AmazonSSMFullAccess、CloudWatchAgentServerPolicy)
- 默认使用AWS AM镜像,或者EC2实例已安装SSM Agent
SSM Agent安装步骤
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent sudo systemctl status amazon-ssm-agent sudo status amazon-ssm-agent sudo start amazon-ssm-agent sudo status amazon-ssm-agent
实践步骤
一、运行命令
1、Systems Manager控制台
找到“节点管理”,点击“运行命令”,再点击页面右上角的“运行命令”
2、AWS-RunShellScript使用
搜索“AWS-RunShellScript”,下拉到“命令参数”
#!/bin/bash
wget https://s3.amazonaws.com/amazoncloudwatch-agent/amazon_linux/amd64/latest/amazon-cloudwatch-agent.rpm
sudo rpm -U ./amazon-cloudwatch-agent.rpm
sudo touch /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
sudo sh -c 'echo "{
\"agent\": {
\"metrics_collection_interval\": 60,
\"run_as_user\": \"cwagent\"
},
\"metrics\": {
\"append_dimensions\": {
\"InstanceId\": \"\${aws:InstanceId}\"
},
\"metrics_collected\": {
\"disk\": {
\"measurement\": [
\"used_percent\"
],
\"metrics_collection_interval\": 60,
\"resources\": [
\"*\"
]
},
\"mem\": {
\"measurement\": [
\"mem_used_percent\"
],
\"metrics_collection_interval\": 60
}
}
}
}" > /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json'
sudo systemctl enable amazon-cloudwatch-agent.service
sudo systemctl start amazon-cloudwatch-agent.service
sudo systemctl status amazon-cloudwatch-agent.service
在“目标”中选择“手动选择实例”,勾选需要执行命令的EC2实例
在“速率控制”里,可以控制并发执行命令的EC2实例数量,默认为“50”,可以修改成“5”,不让并发数量太高,可能会报错
在“输出选项”中,可以根据自己的需求选择将处理信息到“启用S3存储桶写入”或者“CloudWatch输出”,如果选择“CloudWatch输出”,需要指定日志组的名称
其余选项可以根据自身需求勾选填写,最后点击“运行”
最后需要等等几分钟时间即可执行完成,可以点击右上角的圈圈进行刷新
二、CloudWatch查看指标
1、查看CloudWatch指标
查看是否有“CWAgent”指标
可以根据自己执行的EC2实例数量,来确定是否已生效到这里,如果执行的EC2实例数量过多,在“InstanceId”更新可能会有延迟,需要等待几分钟
参考链接
从控制台运行命令:https://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/running-commands-console.html
自我判定
# | 判定描述 | 自我判定(是/否) |
|---|---|---|
| 1 | 在各搜索引擎中是否能找到知识信息(包括但不限于Google、百度、Bing) | 是 |
| 2 | 是否需要代码集成开发 | 否 |









