Docker 如何将日志从Kubernetes发送到每个pod的GELF UDP端点

Docker 如何将日志从Kubernetes发送到每个pod的GELF UDP端点,docker,kubernetes,gelf,Docker,Kubernetes,Gelf,我最近开始使用kubernetes,现在正在研究如何配置集中式日志记录。对于大多数POD,应用程序本身直接记录到GELF端点(logstash),但是我也需要从许多“管理”POD获取日志 以前,当我使用Docker Swarm时,我只需将日志驱动程序(以及相关配置)添加到。然而,在库伯内特斯似乎没有这种选择 我考虑过使用Fluentd直接从/var/log/containers读取日志,但在这里遇到了几个问题: 似乎没有任何简单的方法来指定要登录到logstash的pod;我知道你可以创建过滤器

我最近开始使用kubernetes,现在正在研究如何配置集中式日志记录。对于大多数POD,应用程序本身直接记录到GELF端点(logstash),但是我也需要从许多“管理”POD获取日志

以前,当我使用Docker Swarm时,我只需将日志驱动程序(以及相关配置)添加到。然而,在库伯内特斯似乎没有这种选择

我考虑过使用Fluentd直接从/var/log/containers读取日志,但在这里遇到了几个问题:

  • 似乎没有任何简单的方法来指定要登录到logstash的pod;我知道你可以创建过滤器等,但这似乎不太容易维护,在单个pod上使用注释似乎更明智

  • /var/log/containers中的日志是json文件日志格式,而不是GELF


  • 在kubernetes中,是否有任何方法可以使用内置的Docker日志驱动程序(基于每个pod)轻松登录到GELF端点?

    尝试使用fluentd和提取本地json文件Docker日志并发送到Graylog2


    tag\u to\u kubernetes\u name\u regexp
    -用于从当前fluentd标记提取kubernetes元数据(pod名称、容器名称、命名空间)的正则表达式。

    您最终解决了这个问题吗?