gcloud计算实例容器创建未记录到堆栈驱动程序

时间:2019-12-05 04:59:30

标签: docker google-cloud-platform google-compute-engine gcloud google-cloud-sdk

我有一个容器,该容器通常通过标准Docker驱动程序进行日志记录。现在,我已经通过gcloud compute instances create-with-container命令在GCP上运行了该容器,我想查看Stackdriver中的日志。目前,它们没有出现。

据我所知,结合herehere的建议,我必须启动主机实例,通过编辑docker的daemon.json将默认日志记录驱动程序设置为GCP,然后重新启动主机实例。

这真的是使这些容器登录到常规标准Google云日志记录解决方案的最简单方法吗?我认为gcloud compute instances create-with-container应该默认执行此操作,并且我丢失了一些内容。

3 个答案:

答案 0 :(得分:1)

您的VM在Compute Engine上运行,因此它不包含Stackdriver Logging服务,因为它默认情况下仅包含在"VMs are running in Google Kubernetes Engine or App Engine"中。

我完全同意@JohnHanley。您必须根据准则here在您的实例上手动安装Stackdriver Logging服务。首先,建议您检查supported VM list,以确保日志记录服务将在您的实例上正常运行,然后按照其余instructions进行操作。如果您在安装日志记录服务后遇到任何麻烦,请遵循troubleshooting。如果您无法通过这种方式解决问题,请提供有关您的步骤的其他信息。

更新以澄清我的答案。默认情况下,Stackdriver只能从实例(list)收集有限的日志。因此,如果您想从VM中获取更多日志,则其他配置为required

答案 1 :(得分:1)

好吧,事实证明,在使用gcloud compute instances create-with-container时,默认情况下Stackdriver记录器运行良好,因此您的日志应自动显示。

他们不是为我服务的,因为f1-micro实例似乎没有精力去启动一个容器,该容器甚至可以在Docker开销之外进行少量工作-切换到{ {1}}解决了这个问题。

答案 2 :(得分:0)

对我来说,问题在于权限。经典。

我使用 --service-account 参数创建具有自定义服务帐户的容器,但它没有记录写入和监控写入权限。我虽然使用 --scopes=default 就足够了,但没有。

FWIW,我正在使用 f1-micro 运行一个小型 node.js 后台应用程序(没有 HTTP 服务器)并且日志记录工作没有问题。

对于以后访问此网站的任何人,请查看 this checklist 以验证您的设置。