我在k8s和fluentd中有java应用程序。在fluentd conf中:
*`<source>
@type forward
port 24224
</source>
<match **>
@type stdout
</match>`*我有点困惑。我需要使用fluentd-logger-java lib吗?我在文档中读到,我需要为fluentd添加remotehost,但在这里我通常不使用服务。app如何将日志发送到fluentd pod?
提前感谢!
发布于 2019-10-09 14:07:20
鉴于您的Java应用程序可以将日志记录到stdout和stderr,您将使用fluentd读取该日志,并且在大多数情况下,将这些日志发送到可以聚合日志的系统。
这张来自official docs的图片显示了在Kubernetes中配置节点级日志的常见模式,例如使用DaemonSet部署的fluentd as Pod:

在上图中,logging-agent将是fluentd,而my-pod将是您的Pod,其中包含一个运行您的Java应用程序的容器。从fluentd配置的角度来看,Logging Backend是可选的,但当然强烈推荐它。基本上你可以选择通过fluentd stdout输出你的日志。
为使其正常工作,fluentd将需要对容器日志的读取访问权限,这是通过将日志目录(例如/var/lib/docker/containers )挂载到fluentd容器中来实现的。
我们已经成功地使用了this fluentd example ConfigMap,通过一些修改从节点读取日志并将它们发送到Elasticsearch。查看该ConfigMap的containers.input.conf部分,了解有关容器日志以及如何对其进行摘要的更多信息。
请注意,开始使用fluentd时不需要使用fluentd库,尽管可以在fluentd-logger-java应用程序中将其用作另一种类型的记录器。开箱即用,您应该能够让Java将所有内容记录到stdout和stderr中,并使用fluentd读取日志。
发布于 2019-10-09 14:20:31
如果您只关心实时日志,那么您可以尝试基于fluent、Elastic search和kibana构建的产品;您可以获得https://logdna.com。
只需添加一个标记并部署demonset。
你可以试试它的免费试用几天
https://stackoverflow.com/questions/58294087
复制相似问题