【问题标题】:How do I send logs to GELF UDP endpoint from Kubernetes on a per-pod basis如何按 pod 将日志从 Kubernetes 发送到 GELF UDP 端点
【发布时间】:2018-07-23 09:55:48
【问题描述】:

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

以前当我使用 Docker Swarm 时,我只需将日志驱动程序(和相关配置)添加到 compose file 中。但是 Kubernetes 中似乎没有这个选项。

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

  1. 似乎没有任何简单的方法可以指定将哪些 pod 记录到 logstash;我知道您可以创建过滤器等,但这似乎不太容易维护,在单个 pod 上使用注释似乎更明智。

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

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

【问题讨论】:

  • 你最终解决了这个问题吗?

标签: docker kubernetes gelf


【解决方案1】:

尝试使用 fluentdKubernetes metadata plugin 提取本地 json 文件 docker 日志并发送到 Graylog2。

tag_to_kubernetes_name_regexp - 用于从当前 fluentd 标签中提取 Kubernetes 元数据(pod 名称、容器名称、命名空间)的正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 2017-02-19
    • 2019-04-13
    • 2020-01-18
    • 1970-01-01
    • 1970-01-01
    • 2017-11-26
    • 2022-01-17
    相关资源
    最近更新 更多