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
自己提供的 DaemonSet
:https://github.com/fluent/fluentd-kubernetes-daemonset
此转换已被证明是成功的,systemd
单元的搜索在 EFK 堆栈内部进行。
我正在使用 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
自己提供的 DaemonSet
:https://github.com/fluent/fluentd-kubernetes-daemonset
此转换已被证明是成功的,systemd
单元的搜索在 EFK 堆栈内部进行。