一、背景
安装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安装说明:
Sysinternals Suite for Nano Server 工具包:
https://docs.microsoft.com/en-us/sysinternals/downloads/
完。