如何使用Telegraf监控远程系统指标?

时间:2019-01-19 13:38:40

标签: monitoring grafana influxdb telegraf

对于如何构建telegraf + InfluxDB + Grafana堆栈以监视一组计算机的建议,我将不胜感激。

我的情况

我已将堆栈telegraf + InfluxDB + Grafana成功安装在将被称为“监视实例”的计算机中。

我的系统是一个由运行nodejs和postgres实例的机器组成的API。

我可以从Postgresql数据库中收集指标(使用telegre输入插件用于postgres),也可以从我的应用程序中收集指标(我将暴露一些prometheus格式的指标,而Telegraf使用prometheus输入插件提取这些指标)。

我的问题和疑问

  • 监视节点和postgres实例的系统指标(cpu,mem等)的最佳方法是什么?我应该在这台机器上安装Telegraf代理吗?
  • 如何将本地数据发送到“监视实例”?
  • 本地telegraf代理应该直接写到influxdb还是应该将指标发送到“监视实例”中安装的telefraf?

谢谢。

2 个答案:

答案 0 :(得分:3)

系统/服务器指标应由本地安装的Telegraf收集。

您可以将指标从系统telegraf直接发送到influxdb。但是,这使流入侦听器容易受到本地telegraf实例泵送的数据量的影响。它不能很好地缩放。

相反,您可以在系统telegraf实例和Influx之间放置队列或Kafka。这将使任何意外的负载变得平滑,并应保持流入侦听器稳定。在队列/ Kafka和流入之间,可以有一组专用的Telegraf实例,这些实例将数据从队列/ Kafka装入到流入中。他们可以作为卡夫卡(Kafka)消费群体运行,并且应该易于扩展。

系统telegraf-> Kafka-> telegraf->涌入-> Grafana

答案 1 :(得分:1)

您应该能够使用通用套接字编写器输出和套接字输入插件(如果您使用相同的数据格式对其进行配置)来链接Telegraf实例(受监视设备->监视设备-> influx)。

https://github.com/influxdata/telegraf/tree/master/plugins/outputs/socket_writer https://github.com/influxdata/telegraf/tree/master/plugins/inputs/socket_listener https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md

使用支持InfluxDB格式的telegrafs通用套接字输入,您也可以在受监视的设备上部署fluent-bit而不是telegraf。 https://fluentbit.io/documentation/current/output/influxdb.html