gpt4 book ai didi

kubernetes - 如何从java应用程序(k8s)收集日志到fluentd(k8s)

转载 作者:行者123 更新时间:2023-12-02 12:02:57 26 4
gpt4 key购买 nike

我在 k8s 和 fluentd (daemonset) 中有 java 应用程序。在 fluentd conf 中:

 *`<source>
@type forward
port 24224
</source>
<match **>
@type stdout
</match>`*

我有点困惑。
我需要使用 fluentd-logger-java 库吗?我在文档中读到,我需要为 fluentd 添加远程主机,但在这里我一般不使用服务。
应用程序如何将日志发送到 fluentd pods?

提前致谢!

最佳答案

鉴于您的 Java 应用程序可以登录到 stdoutstderr您将使用 fluentd 读取该日志,并且在大多数情况下,将这些日志发送到可以聚合日志的系统。

此图,来自 official docs ,显示了在 Kubernetes 中配置节点级日志记录的常见模式,例如fluentd 作为使用 DaemonSet 部署的 Pod:

enter image description here

在上图中,logging-agent会流利和my-pod将是带有运行 Java 应用程序的容器的 Pod。 Logging Backend ,从流畅的配置角度来看,是可选的,但当然强烈推荐。基本上你可以选择通过 fluentd stdout 输出你的日志.

为此,fluentd 需要对容器日志进行读取访问才能正常运行,这是通过挂载日志目录来实现的,例如/var/lib/docker/containers进入流利的容器。

我们已经成功使用 this fluentd example ConfigMap ,进行一些修改以从节点读取日志并将它们发送到 Elasticsearch。查看 containers.input.conf有关容器日志以及如何消化它们的更多信息,请参阅该 ConfigMap 的一部分。

请注意,您不需要使用 fluentd-logger-java库以开始使用 fluentd,尽管您可以在 Java 应用程序中将其用作另一种类型的记录器。开箱即用,您应该能够让 Java 将所有内容记录到 stdoutstderr并用fluentd阅读日志。

关于kubernetes - 如何从java应用程序(k8s)收集日志到fluentd(k8s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58294087/

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