问题描述
我有一个问题,与这里描述的类似: GKE kubernetes容器标准输出日志格式已更改
i have a question, similar as describe here: GKE kubernetes container stdout logs format changed
在旧版本的stackdriver中,我有1个带有过滤器的接收器,如下所示:
in old version of stackdriver i had 1 sink with filter like this:
resource.type=container,
resource.namespace_id=[NAMESPACE_NAME]
resource.pod_id=[POD_NAME]
并且日志很好地存储在存储桶中,就像这样:
and logs was stored in bucket pretty well, like this:
logName=projects/[PROJECT-NAME]/logs/[CONTAINER-NAME]
...所以我有每个容器的日志文件.
...so i had folders whith logs for each container.
但是现在我将我的stackdriver logging + monitoring更新到了最新版本,现在我有2个文件夹stdout \ stderr,其中包含所有容器的所有日志!
But now i updated my stackdriver logging+monitoring to last version and now i have 2 folders stdout\stderr which contains all logs for all containers!
logName=projects/[PROJECT-NAME]/logs/stdout
logName=projects/[PROJECT-NAME]/logs/stderr
所有来自多个容器的日志都存储在此单个文件夹中!这很不舒服=(
All logs from many containers stored in this single folders! This is pretty uncomfortable =(
我已经在文档中阅读了以下内容: https://cloud. google.com/monitoring/kubernetes-engine/migration#changes_in_log_entry_contents
I'v read about this in docs: https://cloud.google.com/monitoring/kubernetes-engine/migration#changes_in_log_entry_contents
...但是我找不到解决方案!请帮助我,如何像以前的stackdriver版本那样按文件夹记录容器?
...but i can't find solution! Please, help me, how to make container per folder logging, like it was in old version of stackdriver?
推荐答案
以下是建议的解决方法:
Here is a workaround that has been suggested:
- 为每个由过滤的容器创建一个不同的接收器resource.labels.container_name
- 将每个接收器导出到不同的位置桶
- Create a different sink for each of your containers filtered byresource.labels.container_name
- Export each sink to a differentbucket
注意:如果将每个单独的接收器配置为同一存储桶,则将合并日志.
Note: If you configure each separate sink to the same bucket the logs will be combined.
更多详细信息,请参见 Google问题跟踪器
More details at Google Issue Tracker
这篇关于存储桶中的GCP Stackdriver Logging日志格式从每个容器的文件夹更改为stdout \ stderr的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!