2

嗨,我是 Telegraf 和 Influxdb 的新手。我知道我们可以使用 Telegraf 跟踪(监视)本地文件(在安装 Telegraf 的同一台机器上),并使用 Telegraf 的 [[inputs.tail]] 和 [[outputs.influxdb]] 插件将输出发送到 Influxdb。

但我想跟踪一个日志文件,该文件位于安装 Telegraf 的不同服务器上。

一种方法是在日志文件所在的服务器上安装 Telegraf:但我不能这样做,因为该服务器无法将数据发送到 Influxdb 。它无权访问存在 Influxdb 的服务器。

所以我必须使用中间服务器才能将数据发送到 InfluxDb。

那么有没有办法跟踪远程文件或任何其他方式。欢迎任何类型的建议。

4

1 回答 1

6

我环顾四周,找到了一个解决方案:

Telegraf 的 inputs.tail 插件具有尾随管道的选项,我们可以使用它来监控远程文件。假设 serverA 有日志文件,serverB 是 Telegraf 运行的地方。

所以我会写下通过 Telegraf 监控远程文件的步骤。

1.首先在serverB上创建一个管道。

 mkfifo pipeName

2.现在在 serverB 上运行一个命令,该命令将执行 ssh 来跟踪要监视的 serverA 上的日志文件,并将输出发送到 serverB 上的管道。

ssh -q username@serverA tail -f "pathToFile"/out.log > pipeName

3.现在将inputs.tail插件添加到telegraf配置文件中。

 [[inputs.tail]]
 files = ["pipeName"]
 from_beginning = false
 pipe = true
 data_format = "json"
 name_suffix = "_myMetrics"

这些是您可以根据需要更改的配置。

4.现在运行电报,它将开始将数据写入您在配置文件中指定的输出插件。

./usr/bin/telegraf -config demoTelegraf.conf
于 2017-04-03T13:18:50.023 回答