我有一个容器,该容器通常通过标准Docker驱动程序进行日志记录。现在,我已经通过gcloud compute instances create-with-container
命令在GCP上运行了该容器,我想查看Stackdriver中的日志。目前,它们没有出现。
据我所知,结合here和here的建议,我必须启动主机实例,通过编辑docker的daemon.json将默认日志记录驱动程序设置为GCP,然后重新启动主机实例。
这真的是使这些容器登录到常规标准Google云日志记录解决方案的最简单方法吗?我认为gcloud compute instances create-with-container
应该默认执行此操作,并且我丢失了一些内容。
答案 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 以验证您的设置。