Cloud Logging 不适用于 Container-optimized OS 运行 容器

Cloud Logging doesn't work on a Container-optimized OS running a container

我是 运行 容器优化 OS 下 GCE 实例上的一个 Docker 容器。我已遵循本手册 https://cloud.google.com/container-optimized-os/docs/how-to/logging 并添加了 google-logging-enabled 元数据值以允许将容器的日志发送到 Cloud Logging:

instance metadata screenshot

但是没用。我在 Cloud Logging 中看不到容器的日志:

cloud logging screenshot

虽然我在现实中有很多容器日志:

container logs screenshot

如何让它工作并真正将容器的日志发送到 Cloud Logging?

更新 日志过滤器是默认过滤器:(resource.type="gce_instance" AND resource.labels.instance_id="***") OR (resource.type="global" AND jsonPayload.instance.id="***") 这意味着应显示当前实例的所有类型的日志。

我的问题是与实例关联的我的服务帐户没有 Logs Writer 权限。我发现通过 运行 sudo systemctl status stackdriver-logging 命令显示如下:

● stackdriver-logging.service - Fluentd container for Stackdriver Logging
   Loaded: loaded (/usr/lib/systemd/system/stackdriver-logging.service; static; vendor preset: disabled)
   Active: active (running) since Fri 2021-03-05 01:18:55 UTC; 1h 12min ago
 Main PID: 385 (docker)
    Tasks: 9 (limit: 2382)
   Memory: 31.9M
      CPU: 751ms
   CGroup: /system.slice/stackdriver-logging.service
           └─385 /usr/bin/docker run --rm --name=stackdriver-logging-agent -v /etc/stackdriver/logging.config.d/:/etc/google-fluentd/config.d/ -v /var/log:/var/log -v /var/lib/docker/containers/:/v

Mar 05 02:30:11 jwp-gitlab-runner-m3l0 docker[385]: 2021-03-05 02:30:11 +0000 [warn]: #0 Dropping 1 log message(s) error="User unauthorized to access *** for resource ***

通过谷歌搜索错误消息,我在 GitHub 问题 https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud/issues/295

中找到了答案

以下答案也帮助我诊断了问题:

现在我在 Cloud Logging 中拥有了我想要的所有日志。