嗨,我是Telegraf和Influxdb的新手。我知道我们可以使用 Telegraf 跟踪(监控(本地文件(在安装 Telegraf 的同一台机器上(,并使用 Telegraf 的 [[inputs.tail]] 和 [[outputs.influxdb]] 插件将输出发送到 Influxdb。
但是我想尾随一个日志文件,该文件位于安装 Telegraf 以外的其他服务器上。
一种方法可能是在日志文件所在的服务器上使用 Telegraf:但我不能这样做,因为该服务器无法将数据发送到 Influxdb 。它无权访问 Influxdb 所在的服务器。
所以我必须使用中间服务器才能将数据发送到InfluxDb。
那么有没有办法尾随远程文件或任何其他方法。欢迎任何类型的建议。
我环顾四周,找到了我们如何做到这一点的解决方案:
Telegraf 的 inputs.tail 插件具有跟踪管道的选项,我们可以使用它来监视远程文件。假设服务器 A 有日志文件,服务器 B 是运行 Telegraf 的地方。
因此,我将写下通过 Telegraf 监视远程文件的步骤。
1.首先在服务器 B 上创建管道。
mkfifo pipeName
2.现在在服务器 B 上运行一个命令,该命令将执行 ssh 以跟踪要监视的服务器 A 上的日志文件并将输出发送到服务器 B 上的管道。
ssh -q username@serverA tail -f "pathToFile"/out.log > pipeName
3.现在将输入.tail插件添加到Telegraf配置文件中。
[[inputs.tail]]
files = ["pipeName"]
from_beginning = false
pipe = true
data_format = "json"
name_suffix = "_myMetrics"
这些是您可以根据需要更改的配置。
4.现在运行 telegraf,它将开始将数据写入您在配置文件中指定的输出插件。
./usr/bin/telegraf -config demoTelegraf.conf