Как настроить удаленный лог-файл с помощью Telegraf
Привет, я новичок в Telegraf и Influxdb. Я знаю, что мы можем отслеживать (отслеживать) локальный файл (на той же машине, где установлен Telegraf), используя Telegraf, и отправлять вывод в Influxdb с помощью [[input.tail]] и [[output.influxdb]] плагинов Telegraf.
Но я хочу подключить файл журнала, который находится на другом сервере, отличном от того, где установлен Telegraf.
Одним из способов может быть наличие Telegraf на сервере, где находится файл журнала: но я не могу этого сделать, потому что этот сервер не может отправлять данные в Influxdb. У него нет доступа к серверу, где присутствует Influxdb.
Поэтому я должен использовать промежуточный сервер для отправки данных в InfluxDb.
Так есть ли способ, чтобы хвост удаленного файла или любым другим способом. Любые типы предложений приветствуются.
1 ответ
Я посмотрел вокруг и нашел решение, как мы можем это сделать:
В плагине Telegraf для input.tail есть опции для создания канала, который мы можем использовать для мониторинга удаленных файлов. Предположим, у сервера A есть файл журнала, а на сервере B работает Telegraf.
Поэтому я запишу шаги для мониторинга удаленного файла через Telegraf.
1. Сначала создайте канал на сервере B.
command for creating pipe : mkfifo pipeName
2. Теперь запустите команду на сервере B, которая выполнит команду ssh, чтобы привязать файл журнала на сервере A, который вы хотите отслеживать, и отправить вывод в канал на сервере B.
command is : ssh -q username@serverA tail -f "pathToFile"/out.log > pipeName
3. Теперь добавьте плагин input.tail в конфигурационный файл telegraf.
[[inputs.tail]]
files = ["pipeName"]
from_beginning = false
pipe = true
data_format = "json"
name_suffix = "_myMetrics"
эти конфигурации вы можете изменить в соответствии с вашими требованиями.
4. Теперь запустите телеграф, и он начнет записывать данные в выходной плагин, который вы указали в файле конфигурации.
command to run Telegraf : ./usr/bin/telegraf -config demoTelegraf.conf