【发布时间】:2017-06-18 04:15:17
【问题描述】:
我在 Elastic Beanstalk 上使用其 Single Container Docker Configuration 运行单个 Docker 容器,并尝试使用 awslogs logging driver 将应用程序标准输出发送到 CloudWatch。
EB 为容器的配置寻找 Dockerrun.aws.json 文件,但据我所知,没有选项可以使用 awslogs 作为容器的日志记录驱动程序(或将任何其他标志添加到 @ 987654324@ 命令)。
我尝试使用here 提供的答案入侵docker run 命令,方法是添加一个文件.ebextensions/01-commands.config 内容:
commands:
add_awslogs:
command: 'sudo sed -i "s/docker run -d/docker run --log-driver=awslogs --log-opt awslogs-region=eu-west-2 --log-opt awslogs-group=dockerContainerLogs -d/" /opt/elasticbeanstalk/hooks/appdeploy/enact/00run.sh'
这很有效,因为它修改了运行脚本,并且日志显示在 CloudWatch 中。
但是 EB 应用程序死掉了。容器已启动,但未响应请求。
我在容器日志中发现以下错误:
“logs”命令仅支持“json-file”和“journald”日志记录 驱动程序(获得:awslogs)
我找到了与 ECS(不是 EB)相关的类似问题的答案,建议将 ECS_AVAILABLE_LOGGING_DRIVERS 附加到 awslogs。但是我在EB中没有找到这个配置设置。
有什么想法吗?
【问题讨论】:
标签: amazon-web-services logging docker amazon-elastic-beanstalk