Как отслеживать показатели удаленной системы с помощью телеграфа?

Буду признателен за советы по архитектуре стека telegraf + InfluxDB + Grafana контролировать набор машин.

Мой сценарий

Я успешно установил стек telegraf + InfluxDB + Grafana в машине я назову "экземпляр мониторинга".

Моя система представляет собой API, состоящий из одного компьютера, на котором выполняется nodejs и экземпляр postgres.

Я могу собирать метрики из моей базы данных Postgresql (используя плагин ввода telegraf для postgres), а также из моего приложения (я показываю некоторые метрики в формате prometheus, которые телеграф использует, используя плагин ввода prometheus).

Мои вопросы и сомнения

  • Каков наилучший способ отслеживания системных показателей (cpu, mem и т. Д.) Экземпляров узла и postgres? Должен ли я установить агент телеграф на этих машинах?
  • Как отправить локальные данные в "экземпляр мониторинга"?
  • Должны ли локальные агенты телеграфа писать напрямую в infxdb или они должны посылать метрики на телефрейм, установленный в "экземпляре мониторинга"?

Заранее спасибо.

2 ответа

Решение

Метрики системы / сервера должны собираться локально установленным телеграфом.

Вы можете отправлять метрики из системного телеграфа непосредственно на приток. Но это делает слушателей притока чувствительными к количеству данных, накачанных местными телеграфами. Это не масштабируется элегантно.

Вместо этого вы можете поместить очередь или Kafka между экземплярами системного телеграфа и притоком. Это сгладит любую неожиданную нагрузку и должно поддерживать постоянный приток слушателей. Между очередью /Kafka и притоком может быть набор выделенных экземпляров телеграфа, которые загружают данные из очереди /Kafka в приток. Они могут работать как группа потребителей Kafka и должны легко масштабироваться.

Система телеграф -> Кафка -> телеграф -> наплыв -> Графана

Вы должны иметь возможность связывать экземпляры телеграфа (отслеживаемое устройство -> устройство мониторинга -> приток), используя общий вывод средства записи гнезда и плагин ввода гнезда, учитывая, что вы настраиваете его в том же формате данных.

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

Благодаря общему входу сокетов telegrafs, поддерживающему формат InfluxDB, вы также можете развернуть беглый бит на контролируемом устройстве вместо telegraf. https://fluentbit.io/documentation/current/output/influxdb.html

Другие вопросы по тегам