GCP&流利:使用env vars增强容器日志

时间:2018-04-19 13:38:09

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

我整天都用Google搜索,似乎我不知道要google什么;)

所以我想要做的是增强在google云中运行的容器的日志记录。 日志正在流利地收集。

我的具体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'。

我现在要做的是,流利的人将这个键/值对添加到每个日志行......这是如此困难还是我甚至无法做到这一点?

真的很感激任何帮助或链接。

提前致谢:)

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

如果您使用的是从kubernetes流出的样本,其中包含流利的kubernetes元数据,那么不要将其添加到env中,而是将其添加为标签。从那里流利的默认情况下会在每个日志上添加kube元数据。