Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 云日志记录不';t在运行容器的容器优化操作系统上工作_Docker_Google Cloud Platform_Google Compute Engine_Google Container Optimized Os - Fatal编程技术网

Docker 云日志记录不';t在运行容器的容器优化操作系统上工作

Docker 云日志记录不';t在运行容器的容器优化操作系统上工作,docker,google-cloud-platform,google-compute-engine,google-container-optimized-os,Docker,Google Cloud Platform,Google Compute Engine,Google Container Optimized Os,我正在容器优化操作系统下的GCE实例上运行Docker容器。我遵循此手册,添加了googlelogging enabled元数据值,以允许将容器日志发送到云日志: 但它不起作用。我在云日志中看不到容器的日志: 虽然我实际上有很多容器日志: 如何使其工作并真正将容器日志发送到云日志 更新 日志过滤器是默认的:(resource.type=“gce\u instance”和resource.labels.instance\u id=“***”)或(resource.type=“global”和

我正在容器优化操作系统下的GCE实例上运行Docker容器。我遵循此手册,添加了
googlelogging enabled
元数据值,以允许将容器日志发送到云日志:

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

虽然我实际上有很多容器日志:

如何使其工作并真正将容器日志发送到云日志

更新
日志过滤器是默认的:
(resource.type=“gce\u instance”和resource.labels.instance\u id=“***”)或(resource.type=“global”和jsonPayload.instance.id=“***”)
这意味着应该显示来自当前实例的所有类型的日志。

我的问题是,我与该实例关联的服务帐户没有
日志编写器的权限。我发现,通过运行
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问题中找到了答案

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


现在我拥有了云日志记录中需要的所有日志。

使用此过滤器“resource.type=“gce\u instance”和resource.labels.instance\u id=“xxxxxxxxx”和logName=projects/xxxxxxxxxxxxx/logs/cos\u containers”cos的日志记录级别设置较低。这意味着更高级别的日志不会发送到Stackdriver。我对此做了一些研究,但从未找到改变日志级别的永久解决方案。我认为只有错误和警告被传递给Stackdriver。我在这篇帖子上的回答有很多细节:@johnhanley,云日志和Stackdriver之间有什么关系?据我所知,它们是两种不同的服务?Stackdriver是
操作的旧名称:云日志记录。出于习惯,我仍然使用Stackdriver这个术语。我最喜欢的服务之一。我评论中的答案链接包括诊断此问题的步骤。是的,您也提到了此角色名称。但我在阅读时不知怎么错过了它。。。