我已经为GKE构建了一个docker镜像,并希望使用Google Stackdriver日志记录。
目前,我只是尝试在服务启动时记录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中手动运行容器时,我都会得到"Logging client created“。但我得到的是“开始服务!”仅当在我自己的机器上运行容器时。
发布于 2017-12-12 05:07:40
我运行了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 Cloud控制台上不能简单地按日志名称获取所有日志,这是相当令人惊讶的,而在CLI上是可能的……
编辑:这些实际上是来自Google Cloud Shell的日志,而不是我的容器!我仍然没有找到为什么我的日志没有在我的集群中创建...
https://stackoverflow.com/questions/47757419
复制相似问题