如何将本地日志与 GCP stackdriver 集成

How to integrate on premise logs with GCP stackdriver

我正在评估 GCP 的 stackdriver,用于跨多个微服务进行日志记录。 其中一些服务部署在本地,一些服务部署在 AWS/GCP 上。 我们的服务是基于 .NET 或 nodejs 的应用程序,我们投资于 winston for nodejs 和 nlog in .net。

我正在寻找@将我们的本地 nodejs 应用程序与 stackdriver 日志记录集成。查看@ https://cloud.google.com/logging/docs/setup/nodejs 文档似乎我们需要为除 google 计算实例之外的任何 machine 安装代理。这是正确的吗?

如果我们需要安装代理,那么有什么方法可以在我的开发过程中测试日志记录吗?开发环境是 windows 10/mac.

对于 node.js,您可以从任何地方(本地、AWS、GCP 等)使用 @google-cloud/logging-winston and @google-cloud/logging-bunyan 模块。如果未在 GCP 上 运行ning,您将需要手动提供 projectId 和身份验证凭据。有关如何设置这些的说明,请参阅链接页面。

当 运行在 GCP 上运行时,我们会自动找出确切的环境(App Engine、Compute Engine 等),并且日志应该在日志 UI 中的那些资源下。如果您要使用开发机器中的模块,我们将默认报告针对 'global' 资源的日志。您可以 passing a specific resource descriptor 自己自定义。

如果您运行遇到任何麻烦,请告诉我们。

我尝试在本地 k8s 集群上进行设置。按照这个:https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/

但是我无法让它工作,fluentd-gcp-v2.0-qhqzt 不断崩溃。

此外,该页面提到,如果您不在 google GKE 上使用它,stackdriver 日志记录会存在多个问题。看截图。

我认为 google 试图将您锁定在 GKE 中。

有一个使用 Stackdriver 提取日志(和指标)的新选项,因为大多数非 google 环境代理看起来都已被弃用。 https://cloud.google.com/stackdriver/docs/deprecations/third-party-apps

A Google post 关于使用 stackdriver 和 Blue Medora 登录本地资源 https://cloud.google.com/solutions/logging-on-premises-resources-with-stackdriver-and-blue-medora

对于日志,您仍然需要在每个盒子上安装一个代理来收集日志,它是 BindPlane 代理而不是 Google 代理。