lbr*_*uun 11 linux amazon-web-services docker amazon-elastic-beanstalk
我想知道如何在新的 Elastic Beanstalk 平台(基于 Amazon Linux 2 的平台)中进行日志任务自定义。具体来说,我正在比较:
(我的问题实际上与 Docker 无关,我推测任何新的 Elastic Beanstalk 平台都存在问题)。
以前我可以按照亚马逊的配方,意思是把一个文件放进/opt/elasticbeanstalk/tasks/bundlelogs.d/去,然后它就会被采取行动。这不再是事实。
这有改变吗?我找不到它的文档。有人在较新的 Elastic Beanstalk 平台上成功地进行了日志任务定制吗?如果是这样,如何?
我创建了一个最小的工作示例并部署在两个平台上。
Dockerfile:
FROM ubuntu
COPY daemon-run.sh /daemon-run.sh
RUN chmod +x /daemon-run.sh
EXPOSE 80
ENTRYPOINT ["/daemon-run.sh"]
Run Code Online (Sandbox Code Playgroud)
Dockerrun.aws.json:
{
"AWSEBDockerrunVersion": "1",
"Logging": "/var/mydaemon"
}
Run Code Online (Sandbox Code Playgroud)
daemon-run.sh:
#!/bin/bash
echo "Starting daemon" # output to stdout
mkdir -p /var/mydaemon/deeperlogs
while true; do
echo "$(date '+%Y-%m-%dT%H:%M:%S%:z') Hello World" >> /var/mydaemon/deeperlogs/app_$$.log
sleep 5
done
Run Code Online (Sandbox Code Playgroud)
.ebextensions/mydaemon-logfiles.config:
files:
"/opt/elasticbeanstalk/tasks/bundlelogs.d/mydaemon-logs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/log/eb-docker/containers/eb-current-app/deeperlogs/*.log
Run Code Online (Sandbox Code Playgroud)
如果我做旧的平台上“全日志”行动我会得到我的一个ZIPdeeperlogs包括里面var/log/eb-docker/containers/eb-current-app。在新平台上我没有。
如果您查看磁盘,您会发现新的 Elastic Beanstalk 根本没有/opt/elasticbeanstalk/tasks文件夹,与旧的不同。唔。
Amazon 已在2020 年 8 月 4 日发布的Elastic Beanstalk AL2 平台版本中修复了此问题。
它已得到修复,因此基于 AL2 的平台上的日志任务自定义现在可以按照其一贯的方式工作(即在预生成的 AL2018 平台上),因此您可以按照官方文档来实现这一点。
已成功测试平台“Docker running on 64bit Amazon Linux 2/3.1.0”。如果您(仍然)使用“在 64 位 Amazon Linux 2/3.0.x 上运行的 Docker” ,那么您必须使用Marcin 的答案中描述的未记录的解决方法,但升级平台版本可能会更好。
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |