流利的日志中充满了反斜杠,并且kibana不显示k8s pod日志

时间:2019-08-05 15:33:37

标签: elasticsearch logging kubernetes kibana fluentd

我建立了一个EFK堆栈,用于基于Microk8s单节点集群上的this tutorial收集我不同的k8s pod日志。一切正常,我可以将kibanna连接到elasticsearch并查看索引,但是在kibana的发现部分中,没有与我的吊舱相关的日志,并且有kubelete日志。

当我检查流利的日志时,发现里面充满了反斜杠:

2019-08-05 15:23:17 +0000 [warn]: #0 [in_tail_container_logs] pattern not match: "2019-08-05T17:23:10.167379794+02:00 stdout P 2019-08-05 15:23:10 +0000 [warn]: #0 [in_tail_container_logs] pattern not match: \"2019-08-05T17:23:07.09726655+02:00 stdout P 2019-08-05 15:23:07 +0000 [warn]: #0 [in_tail_container_logs] pattern not match: \\\"2019-08-05T17:23:04.433817307+02:00 stdout P 2019-08-05 15:23:04 +0000 [warn]: #0 [in_tail_container_logs] pattern not match: \\\\\\\"2019-08-05T17:22:52.546188522+02:00 stdout P 2019-08-05 15:22:52 +0000 [warn]: #0 [in_tail_container_logs] pattern not match: \\\\\\\\\\\\\\\"2019-08-05T17:22:46.694679863+02:00 stdout F 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

有人可以告诉我我做错了什么,所有这些反斜杠来自哪里吗?

2 个答案:

答案 0 :(得分:0)

您应该检查/尝试的事情很少:

  1. 检查模式的配置方式(例如:td-agent.conffluent.conf)。

  2. 使用Fluentular测试您的格式正则表达式是否匹配,以查看是否存在潜在的错误。

  3. 考虑使用fluent-plugin-multi-format-parser

  4. 有关解决类似的pattern not match问题的更多信息,请参见this answer

请让我知道以上方法是否有帮助。

答案 1 :(得分:0)

为了后代,我将提供 this solution,这似乎比我发现的其他任何东西都直接:

env:
    - name: FLUENT_CONTAINER_TAIL_PARSER_TYPE
      value: /^(?<time>.+) (?<stream>stdout|stderr) [^ ]* (?<log>.*)$/

只需将其放在 fluentd YAML 配置下的 env 变量中。