我的问题是关于Google Cloud的StackDriver。我已经尝试了很长时间从GCP和AWS外部配置服务器来收集指标,但我无法使其工作。
StackDriver能够从外部收集指标还是我在浪费时间?
如果能够,有人知道一本好手册吗?
谢谢!和问候!!!
答案 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 虚拟机和其他机器的指标是分开的。