我使用kube fluentd运算符将使用fluentd
的日志聚合到Elasticsearch
中,并在Kibana
中查询它们。
我可以在集群中看到我的应用程序(pod(日志。但是,我看不到集群内主机的日志(systemd单元、kubelet等(。
fluentd的pods日志中没有明显的消息,堆栈适用于来自应用程序的日志。在fluentd
容器中,我可以访问/var/log/journal
目录(drwxr-sr-x 3 root 101 4096 May 21 12:37 journal
(。我下一步应该在哪里获取EFK堆栈中的日志?
以下是附加到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
该切换已被证明是成功的,并且从EFK堆栈内部搜索systemd
单元。