несколько датацентров раскиданых по миру. В каждом дц есть несколько виртуалок с web-сервисами и просто сервисами (это винда), в перспективе будет кубер.
По прикидкам на каждом дц будет собираться ~500 метрик.
Есть ещё один дц, там тоже несколько виртуалок с сервисами управления всем этим хозяйством.
Хочется собирать все метрики в центр и там принимать решение об алертинге и т.п.
Вижу несколько вариантов:
1. Prometheus в центре, и на каждом ДЦ с web-сервисами тоже prometheus. Дальше настроить федерацию и собирать.
Из плюсов:
- всё уже придумано
Из минусов:
- каналы связи не всегда дают возможность достучаться до ДЦ
- prometheus не поддерживает аутентификацию, нужно будет придумывать что-то перед ним
2. Prometheus в центре, на веб-сервисных ДЦ метрики пушить в Azure EventHub (кто не знает, это типа кафки), в центре принимать метрики из EventHub и пушить в Prometheus.
Из минусов:
- городить костыль.
Из плюсов:
- доступ к своим региональным azure есть из всех регионов и он получше, чем наши каналы связи.
- судя по всему похожий механизм всё равно нужен будет для передачи трассировок и логов в центр, так что плюсом будет являться единый механизм для передачи данных.
Может есть идеи получше?
я бы сначала попробовал федерацию - оно проще, если не будет устраивать, то можно уже костыли доставать если позволяет среда, то аутентификацию можно заменить ограничением на подключение к порту с определённых адресов
а почему не алертить с региональных дц?
В каждом дц завести по прому с локальными алертами, все промы настроить на запись в центральное хранилище, поверх которого можно настроить глобальные алерты через promxy. См. https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md#prometheus-setup
Обсуждают сегодня