相关疑难解决方法(0)

如何将特定的日志文件从多容器Docker Elastic Beanstalk流到CloudWatch?

我将一个Web服务部署到运行Docker Multi-Container堆栈的Elastic Beanstalk环境中。我已在该环境上启用了到CloudWatch的日志流,因此Cloudwatch中显示了大约五个不同的日志组,因此,当我从Beanstalk中单击“请求日志”时,它将加载一个网页,向我显示所有日志文件,一个接一个。我注意到该网页上的某些日志在CloudWatch中没有显示为日志组,而这些是我真正关心的日志。我的问题是如何使它们显示为CloudWatch Log Groups?

特别地,Elastic Beanstalk自动为我创建的五个日志组是:

  • /aws/elasticbeanstalk/my-web-service/var/log/docker-events.log
  • /aws/elasticbeanstalk/my-web-service/var/log/eb-activity.log
  • /aws/elasticbeanstalk/my-web-service/var/log/eb-ecs-mgr.log
  • /aws/elasticbeanstalk/my-web-service/var/log/ecs/ecs-agent.log
  • /aws/elasticbeanstalk/my-web-service/var/log/ecs/ecs-init.log

当我查看“请求日志”时生成的文件时,那五个确实存在。但是这些其他日志文件也表示为:

  • /aws/elasticbeanstalk/my-web-service/var/log/awslogs.log
  • / aws / elasticbeanstalk / my-web-service / var / log / docker
  • /aws/elasticbeanstalk/my-web-service/var/log/docker-ps.log
  • /aws/elasticbeanstalk/my-web-service/var/log/eb-commandprocessor.log
  • /aws/elasticbeanstalk/my-web-service/var/log/containers/my-svc-8edcf9cec583-stdouterr.log

我真正感兴趣的是最后一个,以stdouterr.log结尾的那个。那是我的容器化应用程序将所有日志消息写入的地方。我想看到的是CloudWatch中的一个日志组,它对应于该stdouterr.log文件。据我所知,日志文件名中的12位ID是安装在主机上的Docker映像的ID,并且每次重新启动服务器时都会更改。所以我想我可能需要在Dockerrun.aws.json配置中挂载一个卷或类似的卷?此外,我猜想我是否需要手动将日志组添加到CloudWatch?如何显示此文件?

logging amazon-web-services amazon-cloudwatch docker amazon-elastic-beanstalk

7
推荐指数
1
解决办法
1308
查看次数

如何使用非默认运行参数在AWS Elastic Beanstalk中运行Docker容器?

我有一个Docker容器,可以在我的本地开发机器上运行.我想将其移至AWS Elastic Beanstalk,但我遇到了一些麻烦.

我正试图S3通过使用将一个桶装到我的容器中s3fs.我有Dockerfile:

FROM tomcat:7.0
MAINTAINER me@example.com

RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential libfuse-dev libcurl4-openssl-dev libxml++2.6-dev libssl-dev mime-support automake libtool wget tar 

# Add the java source
ADD . /path/to/tomcat/webapps/
ADD run_docker.sh /root/run_docker.sh
WORKDIR $CATALINA_HOME

EXPOSE 8080

CMD ["/root/run_docker.sh"]
Run Code Online (Sandbox Code Playgroud)

我通过运行以下命令安装s3fs,装载S3存储桶并在创建映像后运行Tomcat服务器run_docker.sh:

#!/bin/bash
#run_docker.sh

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/master.zip -O /usr/src/master.zip;
cd /usr/src/;
unzip /usr/src/master.zip;
cd /usr/src/s3fs-fuse-master;
autoreconf --install;
CPPFLAGS=-I/usr/include/libxml2/ /usr/src/s3fs-fuse-master/configure;
make;
make install;
cd …
Run Code Online (Sandbox Code Playgroud)

linux amazon-s3 amazon-web-services docker amazon-elastic-beanstalk

6
推荐指数
2
解决办法
2764
查看次数