首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从java app (k8s)采集日志到fluentd(k8s)

如何从java app (k8s)采集日志到fluentd(k8s)
EN

Stack Overflow用户
提问于 2019-10-09 05:06:40
回答 2查看 1.4K关注 0票数 1

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

代码语言:javascript
复制
 *`<source>
     @type forward
     port 24224
  </source>
  <match **>
  @type stdout
  </match>`*

我有点困惑。我需要使用fluentd-logger-java lib吗?我在文档中读到,我需要为fluentd添加remotehost,但在这里我通常不使用服务。app如何将日志发送到fluentd pod?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-09 14:07:20

鉴于您的Java应用程序可以将日志记录到stdoutstderr,您将使用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将所有内容记录到stdoutstderr中,并使用fluentd读取日志。

票数 4
EN

Stack Overflow用户

发布于 2019-10-09 14:20:31

如果您只关心实时日志,那么您可以尝试基于fluent、Elastic search和kibana构建的产品;您可以获得https://logdna.com

只需添加一个标记并部署demonset。

你可以试试它的免费试用几天

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58294087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档