【问题标题】:GCP & Fluentd: Enhance container logs with env varsGCP 和 Fluentd:使用 env var 增强容器日志
【发布时间】:2018-04-19 13:38:08
【问题描述】:

我已经用谷歌搜索了一整天,似乎我不知道要谷歌什么;)

所以我想做的是增强在谷歌云中运行的容器的日志记录。 fluentd 正在收集日志。

我的特定 yaml 如下所示:

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - env:
        - name: TEST
          value: "test123"
        name: nginx
        image: nginx:1.8 
        ports:
        - containerPort: 80

如您所见,我有一个名为“TEST”的环境变量,其值为“test123”。

我现在想要做的是,fluentd 将这个键/值对附加到每个日志行......这很难还是我什至无法做到这一点?

任何帮助或链接将不胜感激。

提前致谢:)

【问题讨论】:

    标签: logging kubernetes google-cloud-platform fluentd google-kubernetes-engine


    【解决方案1】:

    据我所知,我认为没有一种简单的方法(或任何方法,真的)让 FluentD 将在 pod 的容器中定义的环境变量添加到这些容器发送的日志消息中。

    最好的办法是实际更改该 pod 容器的 Syslog 配置,以便将这些环境变量添加到日志消息中。然后,您可以通过新的 ConfigMap 轻松过滤这些消息,以便在 Google Cloud 上托管的 Kubernetes 集群上默认运行的默认 FluentD DaemonSet 如果您想对它们进行任何类型的额外处理。

    过滤器是指根据消息的内容实际过滤消息。默认的 FluentD 部署使用不包含 fluent-plugin-kubernetes_metadata_filter 的容器,因此您无法按 AFAIK 的 pod 名称进行过滤。

    【讨论】:

      【解决方案2】:

      如果您使用 fluentd Kubernetes 元数据附带的来自 fluentd 的示例 fluentd,则不要将其单独添加到 env 中,而是将其添加为标签。从那里 fluentd 默认会在每个日志上添加 kube 元数据。

      【讨论】:

        猜你喜欢
        • 2019-06-09
        • 1970-01-01
        • 2023-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 2016-07-09
        相关资源
        最近更新 更多