首页 > 解决方案 > 使用 FluentD 将访问日志与应用程序日志分开

问题描述

我的 k8s 集群中有一个 Kong 容器,它将所有日志输出到标准输出,所以我在标准输出中混合了所有日志。有没有办法根据正则表达式标记访问日志而不排除其他日志?

我用过:

<match kubernetes.var.log.containers.kong**>
  @type rewrite_tag_filter
  <rule>
    key log
    pattern /.*HTTP.*/
    tag access.log
  </rule>
</match>

但这似乎排除了其中没有 HTTP 的任何日志,这让我没有我的应用程序日志。我也想保留这些。

标签: dockerloggingkubernetesfluentd

解决方案


找到了!保留其他的方法是有一个额外的规则来捕捉它们,就像这样:

<match kubernetes.var.log.containers.kong**>
  @type rewrite_tag_filter
  <rule>
    key log
    pattern /HTTP/
    tag access.log
  </rule>
  <rule>
    key log
    pattern /.*/
    tag app.log
  </rule>
</match>

推荐阅读