【问题标题】:Logging using Stackdriver API on Kubernetes / Google Container Engine (GKE)在 Kubernetes / Google Container Engine (GKE) 上使用 Stackdriver API 进行日志记录
【发布时间】:2017-12-14 19:32:08
【问题描述】:

我有一个利用 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 日志记录 API/只写,默认服务帐户是编辑器(甚至尝试使用所有者),我还尝试使用具有日志写入器甚至所有者访问权限的专用服务帐户(使用 env GOOGLE_APPLICATION_CREDENTIALS) ,我看不到日志,客户端库也没有报错。

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

谢谢,

【问题讨论】:

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


    【解决方案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: ...
    

    注意typegce_instance

    【讨论】:

    • 你是怎么解决这个问题的?
    • 有什么要解决的?我只是没找对地方。
    • 如何获取标签以匹配从标准输出发出的日志的标签?
    猜你喜欢
    • 2020-07-19
    • 2018-08-23
    • 2023-03-16
    • 2018-06-13
    • 1970-01-01
    • 2019-08-07
    • 2018-12-25
    • 2019-05-16
    • 1970-01-01
    相关资源
    最近更新 更多