自动安装Windows上的Cloudwatch Agent、CLI等工具

一、背景

安装EC2 Windows上的Cloudwatch费时费力,需要一种自动化部署方式,本文使用EC2创建时候的Userdata完成快速配置,且自动安装awscli、可在纯powershell下编辑配置的vim、Sysinternal系列工具。

二、创建并挂载IAM Role

进入IAM,点击左侧角色,点击右侧新建角色。

在界面上选择AWS Service,从下方选择使用本角色的服务是EC2,点击下一步继续。

从策略界面中,搜索如下两个策略:

  • AmazonSSMManagedInstanceCore
  • CloudWatchAgentServerPolicy

选中后点击下一步,在可选的标签页可不输入信息跳过,在Review页面输入这个角色的名称,例如为EC2-Windows-CWagent,并保存。记录下这个名称。

三、使用Userdata创建EC2

在创建EC2向导的第三步,在IAM Role下拉框中,选择刚才创建的角色EC2-Windows-CWagent。

在监控位置,打开启用增强监控的选项,选中之。

向下滚动到页面最下方,选择userdata版本是V1,类型是text,然后输入如下userdata。

<powershell>
Invoke-WebRequest https://lxy-sa-software.s3.cn-north-1.amazonaws.com.cn/vim.exe -O C:\Windows\system32\vim.exe
Invoke-WebRequest https://lxy-sa-software.s3.cn-north-1.amazonaws.com.cn/AWSCLIV2.msi -O C:\Users\Administrator\Downloads\AWSCLIV2.msi
msiexec /i C:\Users\Administrator\Downloads\AWSCLIV2.msi
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Program Files\Amazon\awscliv2", [EnvironmentVariableTarget]::Machine)
Invoke-WebRequest https://lxy-sa-software.s3.cn-north-1.amazonaws.com.cn/amazon-cloudwatch-agent.msi -O C:\Users\Administrator\Downloads\amazon-cloudwatch-agent.msi
Invoke-WebRequest https://lxy-sa-software.s3.cn-north-1.amazonaws.com.cn/cloudwatch-windows-config.json -O 'C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json'
Start-Process C:\Users\Administrator\Downloads\amazon-cloudwatch-agent.msi
& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"
Invoke-WebRequest https://lxy-sa-software.s3.cn-north-1.amazonaws.com.cn/SysinternalsSuite-Nano.zip -O C:\Users\Administrator\Downloads\SysinternalsSuite-Nano.zip
Expand-Archive -Path C:\Users\Administrator\Downloads\SysinternalsSuite-Nano.zip -DestinationPath C:\Windows\system32\
</powershell>

接着一路继续,完成创建。

四、测试使用Session Manager登陆EC2

进入EC2界面,选中要登陆的Windows EC2,点击页面上方的“连接”按钮。

在页面上方连接方式的位置,选择Session Manager,点击连接。即可打开Powershell控制台。执行 aws configure 命令,即可发现CLI已经安装好。

五、检查CloudWatch数据

当EC2启动完成大约5分钟后,访问Cloudwatch,即可看到Cloudwatch Windows Agent返回的内存使用情况数据。

六、附加工具

如果需要运行Sysinternal系列管理工具,可执行 pslist64 -accepteula 即可跳过用户授权的弹框,完全在powershell下执行命令。

如果需要在powershell纯字符界面下编辑文件,可使用vim命令,本文的userdata已经下载了GVIM 8.3的CLI纯CLI版本,可方便直接调用。

七、参考资料

Cloudwatch Agent安装说明:

https://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html

Sysinternals Suite for Nano Server 工具包:

https://docs.microsoft.com/en-us/sysinternals/downloads/

完。