StackDriver:从 GCP 和 AWS 外部收集指标

StackDriver: Collecting metrics from outside GCP and AWS

我的问题是关于 Google Cloud 的 StackDriver。我已经尝试了很多小时来配置来自 GCP 和 AWS 之外的服务器来收集指标,但我无法让它工作。

StackDriver 能够从外部收集指标,还是我在浪费时间?

如果可以的话,有人知道好的手册吗?

谢谢!!!和问候!!!

基于 StackDriver 代理 documentation page 看起来这不是一个选项。

它适用于 AWS,但您需要 link 您的 AWS 帐户与他们的帐户。

编辑:我假设从外部授权云提供商访问 StackDriver 后端。不准确。

Adam 是正确的,Stackdriver(在撰写本文时)不支持 GCP/AWS 之外的代理指标收集。因此,您尝试执行的操作不受官方支持。

但是,Stackdriver 产品由 API 组成,因此从技术上讲,您可以从 GCP 和 AWS 外部的指标中收集数据。这在技术上是可行的,但客户端工具和文档根本不存在,这将使其变得非常具有挑战性。

一般来说,AWS 文档最接近您想要查看的内容,因为就 Stackdriver 而言,AWS 是 public 互联网。

对于身份验证,您需要使用类似于 AWS 设置的服务帐户。

如果您只有几个指标,您总是可以使用其中一个客户端库编写 custom metrics。如果您只有几个要编写的指标,这可能是最简单的事情。

文档指示您安装的 collectd 代理只是从各种日志中收集指标并将它们发送到 API。您可以在 Github 上查看。但由于目前仅支持 GCP 和 AWS,您将冒险进入必须了解代理代码并自行修改以使其在 GCP/AWS.

之外工作的领域

我会在未来关注 Stackdriver 以改进此 space。

现在可用。 Google 他们提供了一些代理来从不同的环境中执行此操作。

但是,看起来这些现在已被弃用,并已被第三方(Google 合作伙伴)取代,来自 Google 文档: https://cloud.google.com/stackdriver/docs/deprecations/third-party-apps

似乎没有使用许可费(Marketplace 中免费),只需支付进入 Stackdriver 的数据使用量。

我设法让这个用例工作,尽管它不受“支持”,因此对于代理的配置,除了 stackdriver-agent 的 c source 之外,我没有真正找到任何关于它的文档.

我的用例,我假设的问题是,我在 GCP 上有一个项目,可能有一些计算虚拟机,启用了堆栈驱动程序,但我在 GCP 之外也有一台机器,它以某种方式与其他机器集成我要监控的项目数量(目前只有 disk/cpu/memory)。

在机器上(在要监视的 GCP 之外)install the agent, add a service account key, described here

通过编辑配置代理 /etc/stackdriver/collectd.conf - 添加

  CloudProvider "gcp"
  Instance "name_for_machine_outside_gcp"
  Zone "europe-west3-c"
  Region "europe-west3"

<Plugin "write_gcm"> 标签,其中 name_for_machine_outside_gcp 是用于识别指标的机器名称。据我所知,区域和区域无关紧要,但必须是有效区域(GCP 中的 VM 可以所在的区域)- 因为代理旨在 运行 在 GCP 内的 VM 中。

重新启动代理 sudo service stackdriver-agent restart,代理应该开始向 stackdrive 发送指标,所有指标都带有前缀 agent.googleapis.com

这意味着指标将与 GCP 中 VM 上的 stackdriver-agent 相同,无需将指标从“我的机器”分离到一些自定义指标中。

这有点老套,因为实例字段应该引用 GCP 中的现有 VM,如果不小心可能会发生冲突,但我还没有发现任何问题。

其他解决方案是 AlphaPapa 的回答中提到的 BindPlane,我没有尝试,因为它对于我简单的 OS 指标来说似乎有点重量级,但似乎确实是一个可行的解决方案,如果许多指标中的一些需要他们支持的应用程序。它发送自定义指标,因此来自 GPC VM 和其他机器的指标是分开的。