AWS Elastic Beanstalk S3 日志存档和实例终止/重新创建

AWS Elastic Beanstalk S3 日志存档和实例终止/重新创建

我最近将一个应用程序移至 Elastic Beanstalk。我目前正在设置要存档的日志文件。业务需求之一是X日志保留天数,这当然非常合理。由于日志文件存储在实例上,并且终止/重新创建实例时实例数据不会保留,因此需要将日志存储在其他地方。

Elastic Beanstalk 提供了“S3 日志存储”选项,它似乎可以将轮换的日志文件上传到 S3,这可以满足我的大部分需求。唯一的例外是实例终止/重新创建时:我如何才能轻松确保在终止之前将尚未轮换的日志文件上传到 S3?

答案1

Elastic Beanstalk日志备份到 S3 时不时地作为批量上传正如logrotate您正确指出的那样,当实例终止时,最新日志可能不在 S3 中。

您可以创建一个关机脚本(例如这里)将在实例被优雅地关闭。如果实例突然崩溃或失败,则可能无法执行,但这种情况非常罕见。


然而Elastic Beanstalk支持CloudWatch 日志流它会在日志生成后立即将日志实时提供给 CloudWatch Logs。这意味着,即使在关闭的情况下,您仍然可以在 CloudWatch Logs 中拥有代理awslogs终止前的最新日志。

看一看这里如何设置。

搜索 CloudWatch Logs 也比搜索 S3 日志更容易,您可以监视特定的关键字(例如“错误”)并对其执行操作(例如发送电子邮件或运行 Lambda 函数)等。


你或许可以已启用 S3 和 CloudWatch Logs在您的 Elastic Beanstalk 应用程序中。

希望有帮助:)

相关内容