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

时间:2017-05-03 18:10:20

标签: google-cloud-platform stackdriver

我的问题是关于Google Cloud的StackDriver。我已经尝试了很长时间从GCP和AWS外部配置服务器来收集指标,但我无法使其工作。

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

如果能够,有人知道一本好手册吗?

谢谢!和问候!!!

3 个答案:

答案 0 :(得分:2)

Adam是正确的,Stackdriver没有(在撰写本文时)支持GCP / AWS之外的代理度量标准集合。所以你要做的事情并没有得到官方支持。

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

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

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

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

文档指示您安装的collectd代理只收集各种日志中的指标并将其发送到API。您可以在Github上查看。但由于目前只支持GCP和AWS,因此您需要了解代理商的代码并自行修改以使其在GCP / AWS之外工作。

我将在未来继续关注Stackdriver以改进这个领域。

答案 1 :(得分:1)

现在可用。 Google提供了一些代理商,他们可以在不同的环境中做到这一点。

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

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

答案 2 :(得分:0)

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

我的用例,我假设问题是,我在 GCP 上有一个项目,可能有一些计算虚拟机,启用了堆栈驱动程序,但我还有一台 GCP 之外的机器,它以某种方式与项目的其余部分集成我想监控的(现在只是磁盘/CPU/内存)。

在机器上(在要监控的 GCP 之外)install 代理,添加服务帐户密钥,描述为 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 是用于识别指标的机器名称。据我所知,Zone 和 Region 无关紧要,但必须是有效的区域(GCP 中的 VM 可以在其中) - 因为代理旨在在 GCP 内的 VM 中运行。

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

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

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

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