【问题标题】:Fluentd logs is full of backslash and kibana doesn't show k8s pods logsFluentd 日志充满了反斜杠,而 kibana 不显示 k8s pods 日志
【发布时间】:2019-12-13 03:58:16
【问题描述】:

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

当我查看 fluentd 的日志时,我发现它充满了反斜杠:

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 
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

谁能告诉我我做错了什么以及所有这些反斜杠是从哪里来的?

【问题讨论】:

    标签: elasticsearch logging kubernetes kibana fluentd


    【解决方案1】:

    您应该检查/尝试几件事:

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

    2. 测试与Fluentular 匹配的格式正则表达式,看看是否有任何潜在错误。

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

    4. 有关解决类似pattern not match 问题的更多信息,您可以查看this answer

    如果以上任何方法有帮助,请告诉我。

    【讨论】:

      【解决方案2】:

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

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

      只需将其放在 fluentd YAML 配置下方的环境变量中即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-12
        • 2017-12-06
        • 1970-01-01
        • 2018-10-21
        相关资源
        最近更新 更多