2

问题

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

背景

添加对 kubeadm 登录的支持一样,kubeadm 安装的 K8S 的默认日志驱动程序是 journald。

社区正在集体从磁盘上的文件转移到所有可能的地方,不幸的是,这将是一个倒退。...

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

但是,如果我理解正确的话, K8S EFK 插件Fluentd K8STectonic 中的聚合日志仍然希望在主机的 /var/log/containers 中查找文件。

它看起来替代 fluentd docker 图像被设计为 fluentd-es-image 的替代品,看起来正在采用 journald 驱动程序。但是无法使其运行 pod。

4

1 回答 1

1

docker log 驱动程序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:

并且 envFLUENTD_SYSTEMD_CONF值不应该是disable

于 2021-04-13T05:53:38.313 回答