我最近开始使用 kubernetes,现在正在研究如何配置集中式日志记录。对于大多数 pod,应用程序本身直接记录到 GELF 端点(logstash),但是有许多“管理”pod,我也需要从中获取日志。
以前当我使用 Docker Swarm 时,我只需将日志驱动程序(和相关配置)添加到compose 文件中。但是 Kubernetes 中似乎没有这个选项。
我查看了使用 Fluentd 直接从 /var/log/containers 读取日志,但在这里遇到了几个问题:
似乎没有任何简单的方法可以指定将哪些 pod 记录到 logstash。我知道您可以创建过滤器等,但这似乎不太容易维护,在单个 pod 上使用注释似乎更明智。
/var/log/containers 中的日志是 json 文件日志格式,而不是 GELF。
kubernetes 中是否有任何方法可以基于每个 pod 使用内置的 Docker 日志驱动程序来轻松登录到 GELF 端点?