我在 Windows 实例上使用 CloudWatch 代理(不是 CloudWatch Logs 代理)。配置文件 amazon-cloudwatch-agent.toml 包含一个硬编码的实例 ID。如果我为自动缩放组创建 AMI,则启动的每个实例都使用相同的过时实例 ID 用于日志流。它们都写入同一个流。
我希望每个实例都使用自己的 instance_id 写入流。这似乎是您几乎一直想要的。这怎么可能?
最佳答案
来自 documentation :
所以最简单的做法是根本不定义 log_stream_name。
代理使用 .toml 文件作为其配置而不是 json 文件并且 toml 生成仅在安装时完成,这很奇怪。也许您可以使用以下方法强制 toml 再生:
$/opt/aws/amazon-cloudwatch-agent/bin/config-translator \
--input /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json \
--output /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml \
--mode ec2 \
--config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml
您甚至可以将其粘贴到 userdata 脚本中。代理也可能需要重新启动。关于amazon-web-services - CloudWatch 代理每个实例流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50122324/