gpt4 book ai didi

java - Filebeat 与 Java 日志记录附加程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:53 24 4
gpt4 key购买 nike

我们将开始在 AWS elasticbeanstalk 上使用 docker 部署我们的 java 应用程序,我们需要集中式日志记录并将使用 ELK 堆栈。

我想为每个容器保留一个进程,因此避免使用 filebeat,但为了做到这一点,我们将不得不使用不同的附加程序,例如 syslog,甚至是 tcp 附加程序。

我们不能承受丢失日志的后果。

Filebeat 提供开箱即用的重试逻辑,但将其引入组合中会增加部署复杂性,需要确保 filebeat 在容器终止时收到 SIGTERM,确保它已预烘焙到容器镜像或 Dockerfile 中,等等。

如果我们沿着使用 tcp 或 syslog appender 的路径前进,重试取决于我们,我们也希望避免代码的复杂性。

除了我所指出的之外,每种方法的优缺点是什么?

我们的日志库是 logback。

最佳答案

我和你有同样的担忧。最安全的记录方式是本地文件(假设您有足够的空间)。因为要保证另一个进程或网络端点的可用性要困难得多。

查看 Logback 邮件列表中的讨论:orig/MarkLogic mirror/Nabble mirror尤其是重播:

If you absolutely want to be sure that logs are recorded, to the extent that a failure to log should mean the transaction should be retried then log back is not he right choice of API.

https://github.com/internetitem/logback-elasticsearch-appender该项目为高可用 ElastichSearch 集群提供了一个附加程序,如果所有节点都关闭,则直接将日志事件缓冲到内存中。

另一种方法是写入高可用性中间件以进行缓存和交付保证。如 Kafka、Redis、Fluentd、Logstash 等。

关于java - Filebeat 与 Java 日志记录附加程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35511972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com