在GKE上启用Stackdriver结构化日志记录

时间:2019-03-15 23:55:12

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

我在GKE上的k8s集群默认情况下具有fluentd吊舱设置(当前命名为fluentd-gcp-v3.1.0-....),但是所有日志都是非结构化的,它们被塞在单个textPayload字段中。以jsonPayload格式显示我的nginx(和所有其他)日志会更好。

如果您要手动安装代理,Structured Logging文档中有很多信息,但是在fluend上启用GKE上启用结构化日志记录方面似乎没有任何信息。默认情况下安装在幕后。

装入这些fluentd容器之一中,我看到以下文件,这些文件不是结构化日志中列出的默认配置(nginx / syslog / apache上面的文档。

/etc/google-fluentd/config.d

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

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

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

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

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

  

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