我在kubernetes集群中使用filebeat收集容器的日志,现在收集的日志显示此错误:

2020-06-10T09:26:35.831Z ERROR [kubernetes] add_kubernetes_metadata/matchers.go:91 Error extracting container id - source value does not contain matcher's logs_path '/var/lib/docker/containers/'.

这是完整的日志输出:

kubernetes - 提取容器ID时出错-源值不包​​含匹配器的logs_path  '/var/lib/docker/containers/'-LMLPHP

我发现filebeat正在侦听的是节点meowk8sslave2,并登录到该节点后发现路径存在。为什么会发生错误?这是我的文件拍配置:
{
    "filebeat.yml": "filebeat.inputs:
        - type: container
          paths:
            - /var/log/containers/*.log
          processors:
          - add_kubernetes_metadata:
              host: ${NODE_NAME}
              matchers:
              - logs_path:
                  logs_path: \"/var/log/containers/\"

        output.elasticsearch:
          host: '${NODE_NAME}'
          hosts: '${ELASTICSEARCH_HOSTS:elasticsearch-master:9200}'
        "
}

最佳答案

查看您的filebeat Pane 内,确切显示了可用的日志。
我正在Minikube上测试ELK堆栈。
就我而言,它位于/var/lib/docker/containers/*/*.log
所以这个对我有用。

filebeatConfig:
  filebeat.yml: |
    filebeat.inputs:
    - type: container
      paths:
        - /var/lib/docker/containers/*/*.log
      processors:
      - add_kubernetes_metadata:
          host: ${NODE_NAME}
          matchers:
          - logs_path:
              logs_path: "/var/lib/docker/containers/"
    output.elasticsearch:
      host: '${NODE_NAME}'
      hosts: '${ELASTICSEARCH_HOSTS:elasticsearch-master:9200}'

关于kubernetes - 提取容器ID时出错-源值不包​​含匹配器的logs_path '/var/lib/docker/containers/',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62302527/

10-12 22:40