Я 3 дня читал об этом, даже настраивал набор контейнеров для их тестирования, но у меня есть сомнения.
Я понимаю, что архитектура Prometheus + Node exporter основана на:
- Экспортер узлов знает, как извлекать метрики. Они доступны в HTTP, например. : 9201 / метрики
- Prometheus каждые X секунд запрашивает эти конечные точки HTTP (узел-экспортер HTTTP) и сохраняет метрики. Он также предоставляет еще один HTTP для визуализации / запросов графа / консоли.
Вопрос 1:
Предположим, вам нужны показатели ЦП каждые 15 с, показатели жесткого диска каждые 5 м, сеть каждые 1 м, обработка каждые 30 с.
Поскольку именно Прометей определяет интервал очистки, как можно настроить просто очистку этих значений?
Вопрос 2:
Предположим, вам нужен 1 экземпляр Prometheus и 3 экспортера узлов, разные общедоступные серверы. Я ничего не вижу относительно экспортера узлов и его безопасности. Конечная точка HTTP является общедоступной.
Как я могу безопасно запросить метрики с моих 3 серверов?
Вопрос 3:
Я не знаю, упускаю ли я что-то. Но, например, сравнивая это с Telegraf, последний отправляет метрики в базу данных. Таким образом, Telegraf выступает в роли экспортера узлов. Мне нужно только защитить соединение с базой данных (только открытый порт).
Можно ли настроить node-exporter для отправки набора метрик каждый X раз на сервер Prometheus? (так что мне не нужно открывать публичный порт на каждом публичном сервере, только на сервере Prometheus) Я так понимаю, что для этого нужен pushgateway? Как изменить поведение узла-экспортера?
Вы порекомендуете мне другую архитектуру, которая может удовлетворить мои потребности? (1 главный, много подчиненных для запроса метрик)