我有一个问题,类似于此处的描述:GKE kubernetes container stdout logs format changed
在旧版本的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中一样?
最佳答案
建议采取以下解决方法:
resource.labels.container_name
斗
注意:如果将每个单独的接收器配置为同一存储桶,则将合并日志。
Google Issue Tracker上的更多详细信息
关于kubernetes - 存储桶中的GCP堆栈驱动程序日志记录日志格式已从每个容器的文件夹更改为stdout\stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60177065/