【发布时间】:2020-08-19 21:11:10
【问题描述】:
我正在尝试流式传输我的应用程序写入的日志文件。我使用https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/instance-configuration/logs-streamtocloudwatch-linux.config 作为起点。不幸的是,/etc/awslogs 似乎不再是添加额外 CloudWatch 配置的正确路径。
我发现我可以将文件放在/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/my.json 中以使其工作。但我无法创建此文件并让 CloudWatch 使用 .ebextensions 解析它。我尝试使用具有以下内容的文件来执行此操作。部署后文件不存在。如果我使用 awsdocs 建议的文件名,则该文件已创建。
.ebextensions/02-logs-streamtocloudwatch.config:
files:
"/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/my.json" :
mode: "000644"
owner: root
group: root
content: |
{
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/eb-docker/containers/eb-current-app/my.log",
"log_group_name": "/aws/elasticbeanstalk/my-env/var/log/eb-docker/containers/eb-current-app/my.log",
"log_stream_name": "{instance_id}"
}
]
}
}
}
}
另外,我的日志文件现在应该有666 权限(我知道这不是想法)。使用.ebextensions 在/opt/elasticbeanstalk/hooks/appdeploy/post/99_permissions.sh 中创建包含以下内容的文件似乎也不起作用。
.ebextensions/04-permissions.config:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_dbg_permissions.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
chmod 666 /var/log/eb-docker/containers/eb-current-app/dbg.log
关于如何在 Beanstalk 中使用 .ebextensions 和/或 CloudWatch 配置,我缺少什么?
我不仅想解决这个问题,还想了解问题(何时/如何创建/修改文件)。感谢您的帮助...
【问题讨论】:
-
"。但我无法创建此文件并让 CloudWatch 使用 .ebextensions 对其进行解析。"为什么?你是如何尝试这样做的?你得到什么错误?
-
@Marcin:我在帖子中添加了我使用的文件。我的问题的很大一部分是我不明白为什么我似乎能够在某些位置创建文件和更改权限,但不能在任何地方。我猜我遇到了某种时间问题(使用错误的钩子),也许..?
标签: amazon-web-services amazon-elastic-beanstalk