EFK Kubernetes 堆栈中不存在主机日志记录

Host journal logs no present in EFK Kubernetes stack

我正在使用 kube-fluentd-operator 将使用 fluentd 的日志聚合到 Elasticsearch 中并在 Kibana 中查询它们。

我可以在集群中看到我的应用程序 (pods) 日志。 但是我看不到集群内主机的日志(systemd 单元、kubelet 等)。

fluentd 的 pods 日志中没有明显的消息,堆栈适用于来自应用程序的日志。 在 fluentd 容器内,我可以访问 /var/log/journal 目录 (drwxr-sr-x 3 root 101 4096 May 21 12:37 journal)。 接下来我应该在哪里查看我的 EFK 堆栈中的 journald 日志?

这是附加到 kube-system 命名空间的 kube-system.conf 文件:

<match systemd.** kube.kube-system.** k8s.** docker>
  # all k8s-internal and OS-level logs

  @type elasticsearch
  host "logs-es-http.logs"
  port "9200"
  scheme "https"
  ssl_verify false
  user "u1"
  password "password"
  logstash_format true
  #with_transporter_log true
  #@log_level debug
  validate_client_version true
  ssl_version TLSv1_2
</match>

最小,简单,根据文档。

有没有可能是我的搜索词有误? 我应该搜索什么才能获取日志?

在尝试了所有可能的解决方案之后(从启用 log_level debug,到仅监控 kube-system 命名空间,再到将 runAsGroup: 101 添加到容器),我剩下的就是改变我用于日志聚合的内容并决定从该运算符切换到 fluent 自己提供的 DaemonSethttps://github.com/fluent/fluentd-kubernetes-daemonset

此转换已被证明是成功的,systemd 单元的搜索在 EFK 堆栈内部进行。