我在k8s和fluentd(守护程序集)中都有Java应用程序。在流利的conf中:
*`<source>
@type forward
port 24224
</source>
<match **>
@type stdout
</match>`*
我有点困惑。 我需要使用fluentd-logger-java lib吗?我在文档中读到,我需要添加remotehost以使流利,但是这里我一般不使用服务。 应用程序如何将日志发送到流利的Pod?
谢谢!
答案 0 :(得分:1)
鉴于您的Java应用程序可以登录到stdout
和stderr
,您将使用fluentd读取该日志,并且在大多数情况下,将这些日志发送到可以聚合日志的系统。 / p>
这张图片来自official docs,显示了在Kubernetes中使用例如以下命令配置节点级日志记录的常见模式。通过Poemon与DaemonSet一起部署时很流畅:
在上图中,logging-agent
将流利,my-pod
将是您的Pod,其中包含一个运行Java应用程序的容器。从流畅的配置角度来看,Logging Backend
是可选的,但强烈建议使用。基本上,您可以选择通过流利的stdout
输出日志。
要使此功能正常运行,需要对容器日志进行读取访问,这可以通过安装日志目录来实现,例如/var/lib/docker/containers
放入流利的容器中。
我们已成功使用this fluentd example ConfigMap,并进行了一些修改以从节点读取日志并将其发送到Elasticsearch。请查看该ConfigMap的containers.input.conf
部分,以获取有关容器日志及其摘要的更多信息。
请注意,尽管您可以将fluentd-logger-java
库用作Java应用程序中的另一种类型的记录器,但您无需使用它就可以开始使用fluentd。开箱即用,您应该应该可以让Java将所有内容记录到stdout
和stderr
并流畅地阅读日志。
答案 1 :(得分:0)