首页 > 解决方案 > Kubernetes,Fluentd:匹配“stdout”日志

问题描述

DaemonSet我在我的 Kubernetes 集群中运行了一个 Fluentd 。多个应用程序以微服务的形式部署在集群上,跨命名空间,名称与微服务名称相同。

微服务(按名称payments)将日志输出到stdout. 我想解析该微服务日志并将其放到 Fluentd 中的某个目的地。问题是我payments只想要特定的微服务日志。如果我使用:

<source>
  @type tail
  @id in_tail_container_logs
  path /var/log/containers/*.log
  pos_file /var/log/fluentd-containers.log.pos
  tag kubernetes.*
  read_from_head true
  ....
</source>

它将扫描所有向我输出日志的 pod,stdout我想过滤特定的微服务日志。有没有办法在 Fluentd 中做到这一点?谢谢

标签: kubernetesmicroservicesfluentd

解决方案


每个 Pod 在容器目录中创建一个日志文件/var/lib/docker/containers

它应该在容器文件夹中有一个匹配的日志文件,例如,如果您的部署以 name 开头payments,我们可以通过提供来捕获该特定服务的日志

path /var/log/containers/payments*.log

<source>
  ....
  path /var/log/containers/payments*.log
  ....
</source>

推荐阅读