【问题标题】:Enabling Stackdriver Structured Logging on GKE在 GKE 上启用 Stackdriver 结构化日志记录
【发布时间】:2019-08-07 02:13:10
【问题描述】:

我在 GKE 上的 k8s 集群默认设置了一个 fluentd pod(当前名为 fluentd-gcp-v3.1.0-....),但是所有的日志都以非结构化的形式出现在一个 textPayload 字段中。让我的 nginx(和所有其他)日志以 jsonPayload 格式输出会更好。

Structured Logging 文档有很多信息,如果您要自己手动安装代理,但似乎没有任何关于在 GKE 上启用结构化日志记录的信息,其中 fluend 安装在默认场景。

Shelling 到其中一个 fluentd 容器中我看到了以下文件,这些文件不是上面结构化日志记录文档中列出的默认配置 (nginx/syslog/apache)。

/etc/google-fluentd/config.d

containers.input.conf
monitoring.conf
output.conf
system.input.conf

所以基本上,我在 GKE/Stackdriver 上有非结构化的 nginx 日志。如何将它们转换为结构化?

【问题讨论】:

    标签: google-kubernetes-engine fluentd google-cloud-stackdriver


    【解决方案1】:

    【讨论】:

    • 这是一篇不错的帖子,也链接了很多好的资源!我从中收集到的是,没有简单的方法可以开始在具有 kube-system 命名空间但没有 stackdriver-agents 命名空间的现有集群上使用结构化日志记录
    • 我认为一些命名空间信息已经过时了。关键是您可以简单地使用 fluentd 的现有部署来拉取其配置,对其进行更新,然后重新部署到默认或 stackdriver-agents 中。
    【解决方案2】:

    这[现在]不需要任何自定义;根据 Stackdriver/GKE 文档,容器 STDOUT/STDERR 中的单行 JSON 日志将被解析为结构化数据。

    https://cloud.google.com/monitoring/kubernetes-engine/legacy-stackdriver/logging#best_practices

    写入标准输出或标准错误的单行 JSON 字符串将作为结构化日志条目读入 Stackdriver。

    【讨论】:

      猜你喜欢
      • 2018-12-18
      • 2019-05-16
      • 2019-03-24
      • 1970-01-01
      • 2017-12-14
      • 2019-12-01
      • 1970-01-01
      • 2018-03-24
      • 2019-09-01
      相关资源
      最近更新 更多