用于docker journald日志记录驱动程序的K8S EFK(特别是Fluentd)守护程序

时间:2018-01-07 06:37:45

标签: kubernetes fluentd efk

问题

journald docker logging驱动程序是否已知可用的Fluentd守护程序,以便我可以将K8S pod日志发送到Elasticsearch?

背景

add support to log in kubeadm一样,kubeadm安装的K8S的默认日志记录驱动程序是journald。

  社区一般会在每个可能的地方集中远离磁盘上的文件,不幸的是,这将倒退一步。 ...

     

您可以编辑/etc/docker/daemon.json将其默认日志设置为json文件,并设置最大大小和最大文件以处理日志轮换。之后,日志将不会写入日志,您将能够将日志文件发送到ES。

但是,如果我理解正确的话,K8S EFK addonFluentd K8SAggregated Logging in Tectonic仍然希望在主机的/ var / log / containers中查找文件。

看起来Alternative fluentd docker image designed as a drop-in replacement for the fluentd-es-image看起来采用了日记驱动程序。但无法让它运行pod。

1 个答案:

答案 0 :(得分:1)

docker log driver journald 将 docker 日志发送到 systemd-journald.service

因此,我们需要将 systemd-journald 持久保存到 /var/log/journal

编辑/etc/systemd/journald.conf

...
[Journal]
Storage=persistent
#Compress=yes
...

然后重新启动以应用更改:

systemctl restart systemd-journald
ls -l /var/log/journal

由于 /var/log 已安装到 fluentd pod 中,一切都完成了,重新启动 fluentd pod 它对我有用@202104。

顺便说一下,我正在使用来自以下内容的 fluentd yaml:

并且 env FLUENTD_SYSTEMD_CONF 值不应为 disable