4

我已经为 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 中手动运行容器时,我都会收到“已创建日志记录客户端”。但我得到“开始服务!” 仅在我自己的机器上运行容器时。

4

1 回答 1

1

我运行了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 Console 上简单地按日志名称获取所有日志,这是相当令人惊讶的,而在 CLI 上却可以......

编辑:这些实际上是来自 Google Cloud Shell 的日志,而不是来自我的容器!我仍然没有发现为什么我的日志没有在我的集群中创建......

于 2017-12-11T21:07:40.247 回答