繁体   English   中英

记录到 Amazon S3

[英]Logging to Amazon S3

有没有人构建过,或者有人知道如何构建一个将日志文件存放在 Amazon S3 上的日志记录框架?

我们正在构建一个 SaaS 应用程序,自然地,我们计划拥有无数的服务器和客户。 我想简化整个日志记录结构。 目前,我们使用 SLF4j 进行日志记录,并使用 Logback 作为实际的日志记录实现。

我在想我们可以放弃另一个实现,它会在 memory 中累积日志消息,压缩它们,然后将它们上传到 S3。 如果 S3 连接断开或变慢,实施会将文件排队到磁盘上。 有点像 Facebook 的抄写员。

我的猜测是我需要四五天的时间来编写和测试它。 如果那里有另一种实现,我很想知道它。

fluentd 有一个插件,可以将文件存储到 s3。 (Fluentd 是一个不错的“日志文件收集器”)

在此处阅读更多信息: https://docs.fluentd.org/output/s3

如果 s3 连接断开或变慢,它将为您缓冲 output。

8年后的答案。 没有必要为此编写一个完整的框架。 相反,您可以尝试为 logback 或 log4j2 编写自定义“附加程序”,并在相应的配置中使用此附加程序。 这样,您不必编写整个日志框架,而只需编写您需要的部分并使用工作框架中的 rest。

在 github 上也有一些:这是我在谷歌上搜索https 时弹出的第一个://github.com/shuwada/logback-s3

我正在寻找类似的东西。 我已经在使用 winston.js 进行日志记录,但我发现这个插件可以让您将日志保存到 AWS S3。 ( Winston-S3 ) 我还没有尝试过,但我会尽快尝试。

在某些管理页面中显示这些日志应该不难。

您可以登录到Datadog ,然后配置日志归档 例如,您可以将容器 output 作为 JSON 记录到标准输出,然后让 Datadog 代理或 fluentd/fluentbit forward 将这些日志记录到 Datadog。 Datadog 会自动解析和索引日志以进行快速搜索。 如果您编写自己的解析规则,则不同的日志记录格式也适用。 在保留期结束时,如果您设置了日志存档,它将自动为您将它们上传到 S3。

缺点是被锁定在 Datadog 和价格上。 优点是您可以轻松地将日志重新水合到 Datadog 中以进行快速搜索,并且您不必担心维护自托管解决方案。

如果你想要一个开源的替代品,你可以试试Loki 它有一个 S3 存储后端。

我在谷歌搜索同样的问题。 但显然我的情况稍微好一些。 我知道如何登录到 S3。 没有开箱即用的解决方案。

我建议使用 s3 之类的 fuse 来安装您的系统日志: https://github.com/s3fs-fuse/s3fs-fuse

现在您所需要的只是将它也安装在您的日志解析器系统中,该系统可以是任何可以从目录读取日志的现成系统。

这就是我想出的。

在实施之前我仍在寻找的是这种日志记录到 S3 的性能问题,因为 AWS 有它自己的问题。 讨论了设置块/文件大小以提高性能和降低读/写成本。 希望它可以帮助另一个迷失的灵魂。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM