LINUX.ORG.RU
ФорумAdmin

Prometheus, Alert Manager в проде

 , , ,


0

2

Привет.

Подскажите за сабжевую свзяку, пожалуйста.

Интересует пару моментов основных:

1. Кластеризация Prometheus. Именно кластер из двух и более мастеров, котоорые могут работать независимо друг от друга. Не нашёл вменяемых данных про это. Есть федерализация - это хорошо и необходимо, но не то.

Алерт менеджер подерживает кластер отлично из коробки, как я понял.

Не хотелось бы городить костыли в виде DRBD, ручных фейловеров и прочей хрени.

2. Насколько удобно добавлять хосты в автоматическом режиме? Есть неплохая cli у алерт менеджера, как оно в работе?

Хостов примерно 4к, они периодически декомисаются и добавляются.

3. Готова ли эта связка для 4к+ хостов? Слышал очень разные мнения, хочу услышать на лоре теперь :)

★★★★

1. Кластеризация Prometheus

Prometheus - это stateless-система, кластеризация ему в принципе не нужна. Для надежности их просто поднимают пять ровно одинаковых, работающих параллельно и независимо друг от друга.

Состояние алертов хранит alert-manager, он и разбирается с тем чтобы на одно и тоже событие пять раз не слать уведомления.

2. Насколько удобно добавлять хосты в автоматическом режиме?

Есть из коробки service discovery на базе любого провайдера - consul, kubernetes-api,..

Если статические хосты хочешь обновлять - то выкатываешь просто обновленный конфиг и готово.

3. Готова ли эта связка для 4к+ хостов?

Готова для всего.

В случае prometheus может иметь смысл «вертикальное» масштабирование, то есть выстраивание инстансов в иерархию по типу дерева. Каждый prometheus нижнего уровня читает метрики со своих N машин. Prometheus второго уровня читает уже агрегированные метрики с инстансов первого уровня, третий уровень со второго и т.п.

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

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

Спасибо за ответ.

В случае prometheus может иметь смысл «вертикальное» масштабирование, то есть выстраивание инстансов в иерархию по типу дерева. Каждый prometheus нижнего уровня читает метрики со своих N машин. Prometheus второго уровня читает уже агрегированные метрики с инстансов первого уровня, третий уровень со второго и т.п.

Это уже федеративность, если не путаюсь в терминологии.

Что будет, если у меня упадёт главный prometheus, который агрегируют с нижних «веток» ?

          G
        /  \ 
       /    \
      /      \
     /        \
    E          F 
   / \        / \
  /   \      /   \
 A    B     C     D

Я себе как-то так представляю. Упадёт A, B, C, D - страшно,но не очень.

Упадёт G - завалится всё.

Это аналог нагиос-мастера. Умер мастер и всё, поллеры (nsca) курят бамбук.

Если говорить о вот этом решении

Prometheus - это stateless-система, кластеризация ему в принципе не нужна. Для надежности их просто поднимают пять ровно одинаковых, работающих параллельно и независимо друг от друга.

То нам надо будет обеспечивать запись одинаковых данных своими силами (телеграф, скрипты+крон и т.д.)?

PunkoIvan ★★★★
() автор топика
Ответ на: комментарий от AnDoR

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

Автоматически Alert manager переключится между нодами prometheus?

PunkoIvan ★★★★
() автор топика
Ответ на: комментарий от PunkoIvan

В этой «деревянной» картинке каждая точка - это пять одинаковых инстансов.

Инстансы E1-E5 опрашивают метрики со всех инстансов A1,..A5,B1,..B5

То нам надо будет обеспечивать запись одинаковых данных своими силами (телеграф, скрипты+крон и т.д.)?

Запись чего и куда? Prometheus изкоробочно интегрируется со всякими хранилищами time series. Когда в такие хранилища поступают значения одной и той же метрики с разных мест, они мерджатся в один ряд.

То есть с инстанса A1 ты получаешь

12:30  1746
12:35  1893

а с A2

12:31  1758
12:37  1845

То в бд будет в результате ряд:

12:30  1746
12:31  1758
12:35  1893
12:37  1845

При работе с метриками главная фишка в том что «одинаковость» и синхронизированность данных тебе не нужна. Нужно получить хотя бы одно значение. Большее количество значений никому не мешает.

alpha ★★★★★
()
Ответ на: комментарий от PunkoIvan

Наоборот. В прометее ты указываешь алертменеджер(ы). Алертменеджер сам умеет дедуплицировать алерты, если они пришли с одинаковыми лейблами. Если же нет, то ты можешь дедупликацию настроить у него в конфиге сам.

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

Понял, спасибо.

Тестируем два разных подхода к мониторингу, сейчас подниму icinga2 и займусь Prometheus.

PunkoIvan ★★★★
() автор топика
Ответ на: комментарий от alpha

Да, большее количество значений это хорошо.

И то, что мерджатся это понятно.

Просто думал, что там идёт разделение и хост А отправляет в Prometheus А, хост В - Prometheus В.

Тогда при отпадании Prometheus В мы потеряем метрики с хоста В.

Но тут уже писали, что все инстансы одинаковые, поэтому такой пробелмы быть не должно. Буду ковырять, спасибо.

PunkoIvan ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.