前言

场景说明

客户有多台EC2实例,分布在新加披、香港、东京区域,各服务都需要监控到内存、磁盘使用情况,因此手动一台一台执行安装命令可能会花费大量的实践。所以需要使用Systems Manager服务来做批量命令的执行,达到每台EC2实例CloudWatch都能监控到内存和磁盘的指标

环境准备

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是否需要代码集成开发