在关闭之前将 docker 日志从 ec2 实例上传到 S3

Posted

技术标签:

【中文标题】在关闭之前将 docker 日志从 ec2 实例上传到 S3【英文标题】:Uploading docker logs from ec2 instance to S3 before shutdown 【发布时间】:2019-08-16 08:20:19 【问题描述】:

目前在 AWS 上使用 Auto Scaling Group (ASG),有时在 EC2 实例中运行的 docker 容器由于某些模糊的原因而退出,并且该实例可能会从 ASG 中删除。这使得调试故障变得困难,因为 ASG 终止了实例,因此删除了所有出错的证据。 那么,有没有办法在退出之前将 docker 日志写入 S3。

【问题讨论】:

【参考方案1】:

如果需要,您可以将日志发送到 cloudwatch 并导出到 s3。

下面是流程,

将您的凭据添加到,

/etc/init/docker.override

与,

env AWS_ACCESS_KEY_ID=
env AWS_SECRET_ACCESS_KEY=

并重新启动您的 docker 服务。

docker run -it --log-driver="awslogs" --log-opt awslogs-region="us-east-1" --log-opt awslogs-group="log-group" --log-opt awslogs-stream="log-stream" ubuntu:14.04 bash

这样 docker 会将所有日志发送到 cloudwatch。

希望对您有所帮助[s.

【讨论】:

以上是关于在关闭之前将 docker 日志从 ec2 实例上传到 S3的主要内容,如果未能解决你的问题,请参考以下文章

docker - 如何将 mysql 数据从本地迁移到 ec2 实例

如何在 AWS 实例上显示维护页面,

在自动扩展组中的 EC2 启动和关闭时运行命令

如何将文件从我的 Windows 7 计算机传输到 Amazon EC2 实例? [关闭]

如何从 EC2 下载文件 [关闭]

在关闭之前检查 Auto Scaling 组中的 EC2 实例是不是有任何用户在使用它