存储桶中的 GCP stackdriver 日志记录格式从每个容器的文件夹更改为 stdout\stderr

GCP stackdriver logging logs format changed in bucket from folder per container to stdout\stderr

我有一个问题,与此处描述的类似:

在旧版本的 Stackdriver 中,我有 1 个带过滤器的接收器,如下所示:

resource.type=container,
resource.namespace_id=[NAMESPACE_NAME] 
resource.pod_id=[POD_NAME]

并且日志很好地存储在存储桶中,如下所示:

logName=projects/[PROJECT-NAME]/logs/[CONTAINER-NAME]

...所以我有每个容器的日志文件夹。

但现在我将我的 stackdriver logging+monitoring 更新到最新版本,现在我有 2 个文件夹 stdout\stderr,其中包含所有容器的所有日志!

logName=projects/[PROJECT-NAME]/logs/stdout
logName=projects/[PROJECT-NAME]/logs/stderr

来自许多容器的所有日志都存储在这个文件夹中!这很不舒服 =(

我在文档中读到过:https://cloud.google.com/monitoring/kubernetes-engine/migration#changes_in_log_entry_contents

The logName field might change. Stackdriver Kubernetes Engine Monitoring log entries use stdout or stderr in their log names whereas Legacy Stackdriver used a wider variety of names, including the container name. The container name is still available as a resource label.

...但我找不到解决方案!请帮助我,如何为每个文件夹创建容器日志记录,就像在旧版本的 stackdriver 中一样?

这是建议的解决方法:

  1. 为您过滤的每个容器创建不同的接收器 resource.labels.container_name
  2. 将每个接收器导出到不同的 桶

注意:如果将每个单独的接收器配置到同一个存储桶,日志将被合并。

更多详情请见 Google Issue Tracker