【问题标题】:Automating the installation of CloudWatch agent自动安装 CloudWatch 代理
【发布时间】:2020-08-29 16:55:21
【问题描述】:

我只是想知道是否有其他方法可以解决这个问题:

我有一个 AWS 多账户设置。 EC2 将对所有帐户进行监控,当通过 sns 触发警报时,将发送一封邮件。对于所有装有 Windows Server 2016 及更高版本、Amazon Linux 和 Ubuntu 16.04 和 18.04 的 EC2,SSM 代理都已预装。这样我就可以通过 System Manager Run Command 将 CloudWatch 代理推送到 EC2 的每个 AWS 账户。

我想知道是否有一种更简单的方法可以强制在 AWS 账户中部署的每个新 EC2 上安装 CloudWatch 代理,而无需在实例上手动安装代理或通过运行命令安装代理?

我正在考虑使用标签,例如:“IsMonitored”,并作为值 true 或 false。例如,每天 17 点,Lambda 函数将遍历该帐户中的所有实例并搜索 IsMonitored = false,获取该实例 ID 并使用(boto3?)脚本推送该实例上的代理。这似乎很复杂,所以我想检查是否有其他简单的解决方案可以做到这一点。

提前致谢,

伊曼

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-lambda amazon-cloudwatch aws-systems-manager


    【解决方案1】:

    一种更简单的方法是使用预烘焙的 AMI。首先,使用您使用的普通 AMI 启动 EC2。接下来,安装 CloudWatch 代理并创建映像。从现在开始,您可以使用预装了 CloudWatch 代理的新 AMI 启动 EC2。

    如果预烘焙的 AMI 不适合您,我建议使用像 Ansible 这样的基础架构即代码 (IaC) 工具来自动化安装过程。

    【讨论】:

    • 亚马逊倾向于经常更新他们的标准 AMI,使用这种方法我还需要更新我的 AMI,这会导致大量的手动工作。我希望 Amazon 有一种内置方式来强制在每个实例上安装 CloudWatch 代理。
    • @Iman.A 另一种方法是在启动时将用户数据 sn-p 添加到 EC2。
    • 我只是在想这个,但我遇到的问题是:创建这些 EC2 的人大多是开发人员或研究人员,如果你理解我的话,他们是牛仔,这就是我尝试创建的原因我不依赖他们的行动的解决方案。使用 userdata,创建 EC2 的人必须在创建时提供该数据,我 100% 确定他们会忘记或其他什么。
    【解决方案2】:

    要在每个实例特定区域安装cloudwatch 代理,您可以通过 shell 脚本实现。

    方法是:

    • 手动工作是在参数存储中为实例 a 的类型创建一些默认配置文件。对于窗户 b。基于 linux 的

    在 shell 脚本中
    针对特定地区

    1. 获取ec2实例id列表的总数
    2. 检查使用基于 Windows 或 Linux 的机器类型的平台
    3. 如果平台是 Windows,则从参数存储中添加 Windows 类型的配置文件,否则添加 Linux 配置文件

    获取平台名称:

    platform=$(aws ec2 describe-instances --instance-ids <instance id> --query 'Reservations[*].Instances[*].[Platform]' --output text)
    

    安装包:

    aws ssm send-command --instance-ids <instance id> --document-name "AWS-ConfigureAWSPackage" --parameters "name=AmazonCloudWatchAgent,action=Install,installationType=Uninstall and reinstall"  --comment "Install CloudWatch Agent on EC2 Windows/Linux machine" 
    

    开始CWagent

    aws ssm send-command  --instance-ids $one_instance --document-name "AmazonCloudWatch-ManageAgent" --parameters "mode=ec2,optionalRestart=yes,optionalConfigurationSource=ssm,action=configure,optionalConfigurationLocation=AmazonLinuxCloudWatchAgentConfig"  --comment "Configure CloudWatch Agent on EC2 Linux machine"
    

    如需更多参考,您可以使用this link

    【讨论】:

      猜你喜欢
      • 2021-06-08
      • 2021-11-25
      • 1970-01-01
      • 2020-09-07
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多