写在前面
telegraf收集服务器信息默认是写入influxdb中的,但是项目监控需要监控服务器集群的情况,涉及到多台服务器信息都要放到一个influxdb中,通信问题成了主要麻烦。但是telegraf支持amqp协议通讯,最好的实现就是rabbitmq。简单来说就是telegraf收集服务器信息将信息写入MQ,在influxdb的那台服务器中telegraf从MQ中读取服务器的信息写入influxdb。监控平台取数据还是从influxdb中取,但是可以取到多台服务器的监控情况
遇到的问题
网上 关于这方面的资料简直是少之又少!翻墙查询官网材料也是很艰难,而且翻墙找的资料有很多还有错误...总之能把这个问题解决我也是不容易.....
解决方案
拆分为两个问题,分开来说。
问题一:telegraf采集数据入rabbitmq
首先从telegraf官方文档了解需要将telegraf的配置修改下。
github地址:https://github.com/influxdata/telegraf/tree/release-1.6/plugins/outputs/amqp
# Configuration for the AMQP server to send metrics to
[[outputs.amqp]]
## AMQP url
url = "amqp://localhost:5672"
## AMQP exchange
exchange = "telegraf"
## Auth method. PLAIN and EXTERNAL are supported
## Using EXTERNAL requires enabling the rabbitmq_auth_mechanism