gpt4 book ai didi

linux - Elastic Beanstalk : log task customization on Amazon Linux 2 platforms

转载 作者:行者123 更新时间:2023-12-02 09:37:26 24 4
gpt4 key购买 nike

我想知道怎么办log task customization在新的 Elastic Beanstalk 平台(基于 Amazon Linux 2 的平台)中。具体来说,我正在比较:

  • :在 64 位 Amazon Linux/2.14.3 上运行的单容器 Docker
  • 新品 :在 64 位 Amazon Linux 2/3.0.0 上运行的单容器 Docker

  • (我的问题实际上与 Docker 无关,我推测任何新的 Elastic Beanstalk 平台都存在问题)。

    以前我可以按照亚马逊的配方,意思是把一个文件放入 /opt/elasticbeanstalk/tasks/bundlelogs.d/然后将对其采取行动。这不再是事实。

    这有改变吗?我找不到 documented .有人在较新的 Elastic Beanstalk 平台上成功地进行了日志任务定制吗?如果是这样,如何?

    最小工作示例

    我创建了一个最小的工作示例并部署在两个平台上。
    Dockerfile :

    FROM ubuntu
    COPY daemon-run.sh /daemon-run.sh
    RUN chmod +x /daemon-run.sh
    EXPOSE 80
    ENTRYPOINT ["/daemon-run.sh"]
    Dockerrun.aws.json :

    {
    "AWSEBDockerrunVersion": "1",
    "Logging": "/var/mydaemon"
    }
    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
    .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

    如果我在旧平台上执行“完整日志”操作,我将获得带有 deeperlogs 的 ZIP。包括
    var/log/eb-docker/containers/eb-current-app .在新平台上我没有。

    调查

    如果您查看磁盘,您会看到新的 Elastic Beanstalk 没有 /opt/elasticbeanstalk/tasks文件夹,不像旧的。唔。

    最佳答案

    在 Amazon Linux 2 上,文件夹是:

    /opt/elasticbeanstalk/config/private/logtasks/bundle
    .ebextensions/mydaemon-logfiles.config应该:
    files: 
    "/opt/elasticbeanstalk/config/private/logtasks/bundle/mydaemon-logs.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
    /var/mydaemon/deeperlogs/*.log

    container_commands:
    append_deeperlogs_to_applogs:
    command: echo -e "\n/var/log/eb-docker/containers/eb-current-app/deeperlogs/*" >> /opt/elasticbeanstalk/config/private/logtasks/bundle/applogs
    mydaemon-logfiles.config还添加了 deeperlogs进入 applogs文件。没有它 deeperlogs将不会包含在下载日志 zip 包中。这很有趣,因为文件夹将位于正确的位置,即 /var/log/eb-docker/containers/eb-current-app/deeperlogs/ .但没有在 applogs 中明确列出, 生成 zip 包时将跳过它。

    我使用单个 docker 环境(3.0.1)对其进行了测试。

    完整日志包成功包含 deeperlogs使用正确的日志数据:

    enter image description here

    enter image description here

    希望这会有所帮助。我还没有找到任何引用资料。 AWS 文档没有记录这一点,因为它主要基于 Amazon Linux 1,而不是 Amazon Linux 2。

    关于linux - Elastic Beanstalk : log task customization on Amazon Linux 2 platforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61201006/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com