我建立了一个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
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
有人可以告诉我我做错了什么,所有这些反斜杠来自哪里吗?
答案 0 :(得分:0)
您应该检查/尝试的事情很少:
检查模式的配置方式(例如:td-agent.conf
,fluent.conf
)。
使用Fluentular测试您的格式正则表达式是否匹配,以查看是否存在潜在的错误。
有关解决类似的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 变量中。