使用Kubernetes / Google Container Engine(GKE)上的Stackdriver API进行日志记录

时间:2017-07-10 22:32:52

标签: go google-cloud-platform kubernetes google-kubernetes-engine stackdriver

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

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

检查后,它与minikube配合使用(我的有效负载显示在我的日志查看器的Global类别中),我在Google容器引擎(GKE)上部署应用程序。

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

我的群集只启用了Stackdriver日志记录API,默认服务帐户是编辑器(甚至尝试使用所有者),我也尝试使用专用服务帐户(使用env GOOGLE_APPLICATION_CREDENTIALS)和日志编写器甚至所有者访问权限,我看不到日志,也没有从客户端库报告错误。

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

谢谢,

1 个答案:

答案 0 :(得分:4)

所以结果是日志在那里但不是我期望的那些。

使用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: ...

注意typegce_instance