对于如何构建telegraf + InfluxDB + Grafana
堆栈以监视一组计算机的建议,我将不胜感激。
我已将堆栈telegraf + InfluxDB + Grafana
成功安装在将被称为“监视实例”的计算机中。
我的系统是一个由运行nodejs和postgres实例的机器组成的API。
我可以从Postgresql数据库中收集指标(使用telegre输入插件用于postgres),也可以从我的应用程序中收集指标(我将暴露一些prometheus格式的指标,而Telegraf使用prometheus输入插件提取这些指标)。
谢谢。
答案 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