Google Stackdriver Logging无法在Google Cloud Shell和GKE中使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Stackdriver Logging无法在Google Cloud Shell和GKE中使用相关的知识,希望对你有一定的参考价值。
我为GKE构建了一个docker镜像,并希望使用Google Stackdriver Logging。
目前我只是在服务启动时尝试记录Service started
。
虽然在我的主机上运行容器运行良好(在Google Cloud Console
> Logs Viewer
> Global
,我可以在预期时看到Service started
),在Google Cloud Shell上以完全相同的方式运行容器不会记录任何内容。部署到GKE完全相同的行为,没有错误,但我找不到所谓的创建日志。
以下是我的群集的范围:cloud-platform,compute-rw,datastore,default,storage-full,logging-write,service-control,service-management
。
请注意,日志客户端已成功创建:
client, err := logging.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create the logging client: %v", err)
} else {
fmt.Println("Logging client created")
}
app.Logger = client.Logger(logName)
text := "Started service !"
app.Logger.Log(logging.Entry{
Payload: text,
})
每次在我的群集日志中或在Google Cloud Shell中手动运行容器时,我都会“记录客户端已创建”。但我得到“开始服务!”只有在我自己的机器上运行容器时。
我运行了gcloud logging
命令:
gcloud logging read "logName=projects/${PROJECT_ID}/logs/${LOG_NAME}"
我发现了type: gce_instance
而不是预期的type: global
。
感谢https://stackoverflow.com/a/45085569/7046455我在GCE VM Instance
下找到了我的日志。
令人惊讶的是,不能简单地通过Google云端控制台上的日志名称获取所有日志,而在CLI上则可以...
编辑:这些实际上是来自Google Cloud Shell的日志,而不是来自我的容器!我还没有找到为什么我的群集中没有创建日志...
以上是关于Google Stackdriver Logging无法在Google Cloud Shell和GKE中使用的主要内容,如果未能解决你的问题,请参考以下文章
如何清除 Google Cloud Platform 中的 Stackdriver 日志?
Stackdriver Trace 与 Google Cloud Run
Google StackDriver:如何将其他日志与跟踪日志关联(和嵌套)?
google cloud Stackdriver Metrics 以扩展管理实例组 - 区域