配置主机信息,通过 influxdb 使用 statsd 进行聚合

Configuring host info, aggregation with statsd via influxdb

我已经开始使用 collectd (5.5.1)、statsd (git head)、influxd (1.2) 和 grafana 来监控我的基础设施。 collectd 部分可以很好地用于黑盒监控。我们想使用 statsd 进行白盒监控。

我们的设置是每个主机上的 collectd 和 statsd,将数据发送到监控主机上的 influxdb。监控主机上的 Influxdb 和 grafana 运行。当然,监控主机上的 collectd 和 statsd 运行 也一样,就像它们在其他地方所做的那样。

我在每台主机上的 statsd 配置很简单

{
    graphitePort: 2003,
    graphiteHost: "monitor.example.com",
    port: 8125,
    backends: [ "./backends/graphite" ]
}

这可能在任何情况下都不理想,因为我刚刚发现有一个 influxdb backend 可用,但我希望即使我可以做得更好,上面的方法也能起作用。

但是我有以下问题:

  1. statsd not forwarding host information 到监控主机。

  2. 我了解到 statsd 的好处之一是它可以在以指定的刷新间隔发送数据之前在本地主机上聚合数据。但是我没有在文档中看到在哪里指定,比如说,哪些指标被求和,哪些发送最大值,哪些发送百分位数等。

这些组件在过去的一年里发展得如此之快以至于很多文档和教程都已经过时了,所以我很清楚我可能只是因为阅读了错误的文档而做了一些不正确的事情.

我最近还发现了电报(到每个主机上的 运行?)。也许我对 statsd 有错误的期望(或者应该改用电报)?

我很乐意根据反馈使这个问题更加具体。我知道我仍在为一些概念而苦苦挣扎。

多谢指点

这是一个解决方案,但并不完全是答案。

改用 telegraf

我发现 telegraf 现在是这个 space 中一个非常可行的竞争者,得到了很好的支持,看到了积极的发展,并且很容易与 influxdb 对话。 Telegraf 还支持每条消息的附加标签和标志,这与看似简单的键值的 statsd 不同。此外,telegraf 消除了对 statsd 和 collectd 的需求,因此移动部件的数量减少了一个。这是好事。

关于 statsd

(长话短说 - 也许我很蹩脚)

我完全不知道如何使用 statsd 转发主机信息。

我没有找到关于如何配置聚合的好文档(尽管我记得曾经找到过)。使用influxdb协议发送数据的模块似乎没有得到很好的维护(相对于influxdb开发)。

在这两点上我可能完全错了,欢迎提供有利于记录这些内容的替代答案。