一尘不染

在Kubernetes / Google容器引擎(GKE)上使用Stackdriver API进行日志记录

go

我有一个利用Google Cloud Logging API的go应用程序。

相关代码与他们的文档中的该示例相同:https :
//github.com/GoogleCloudPlatform/golang-
samples/blob/master/logging/logging_quickstart/main.go

检查它是否可与minikube配合使用(我的有效负载出现在Global日志查看器的类别中)后,我将应用部署在Google Container
Engine(GKE)上。

部署到那里后,我将不再看到应用程序通过日志记录API发送的日志。写入std的日志显示在GKE container类别中,但是没有跟踪使用API​​发送的条目。

我的集群启用了Stackdriver Logging
API(启用/仅写入),默认服务帐户是Editor(甚至与Owner一起尝试过),我还尝试了GOOGLE_APPLICATION_CREDENTIALS具有日志写入器甚至所有者访问权的专用服务帐户(使用env
),我看不到客户端库报告了日志并且没有错误。

可能是什么原因,或者在哪里可以开始调试此类问题?

谢谢,


阅读 209

收藏
2020-07-02

共1个答案

一尘不染

因此,事实证明日志在那儿,但不在我期望的地方。

使用gcloud CLI,我可以看到那些日志具有资源类型gce_instance,因此出现在GCE VM Instance类别中

要弄清楚这一点:

  $ gcloud beta logging logs list
  projects/<PROJECT>/logs/<LOG_NAME>
  ...

然后

$ gcloud beta logging read projects/<PROJECT>/logs/<LOG_NAME>
---
insertId: ...
jsonPayload:
   ...
logName: ...
receiveTimestamp: ...
resource:
  labels:
    instance_id: ...
    project_id: ...
    zone: ...
  type: gce_instance
timestamp: ...

type福祉gce_instance

2020-07-02