0

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

实例元数据截图

但它不起作用。我在 Cloud Logging 中看不到容器的日志:

云日志截图

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

容器日志截图

如何使其正常工作并将容器的日志真正发送到 Cloud Logging?

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

4

1 回答 1

1

我的问题是我与实例关联的服务帐户没有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中找到了答案

以下答案也帮助我诊断了问题:https ://stackoverflow.com/a/65768214/8016720

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

于 2021-03-05T02:52:29.150 回答