Linux Labs

Наблюдаемость: метрики, алерты, логи / Итоговая лаба

Вторая машина без присмотра

сложная ~75 мин
Не запущена Запускается обычно ~20 с
Сообщить о проблеме

Ситуация

Неделю назад вторую машину, node2, поставили под присмотр node1 и закрыли заявку. На node1 работают Prometheus, Alertmanager и сборщик логов rsyslog. Уведомления дежурным Alertmanager шлёт в учебный webhook lab-webhook: каждое полученное уведомление он дописывает строкой в /var/lib/lab-webhook/notifications.jsonl.

Вчера node2 полчаса не отвечал, и дежурным ничего не пришло. Когда стали разбираться, выяснилось больше: Prometheus на node1 метрик node2 не видит, а свежих логов node2 на сборщике нет.

node1 — твой терминал. Команды на node2 выполняй через SSH: ssh node2 'команда' или войди в оболочку — ssh node2, назад — exit. sudo на обеих машинах работает без пароля. Браузера к машинам нет: Prometheus и Alertmanager смотри из терминала — curl -s localhost:9090/api/v1/… | jq, promtool query instant http://localhost:9090 '<выражение>', amtool alert.

Задача

  1. Prometheus на node1 собирает метрики node2: цель node2:9100 в задании node — в состоянии up.
  2. Когда node2 перестаёт отвечать, алерт NodeDown о нём (instance="node2:9100") не позже чем через минуту переходит в firing. Пока node2 работает, NodeDown о нём не горит.
  3. Уведомление о сработавшем NodeDown доходит до дежурных — новой строкой в /var/lib/lab-webhook/notifications.jsonl.
  4. Логи node2 собираются на node1: строка, отправленная на node2 командой logger, появляется в файле в каталоге /var/log/remote/node2/ на node1.

«Проверить» само ненадолго останавливает экспортёр на node2 (prometheus-node-exporter), отправляет с node2 строку logger -t lab-verify … и возвращает всё как было. Проверка ждёт алерт и строку и занимает до полутора минут.

Ограничения

  • Всё должно пережить перезагрузку обеих машин: службы включены, настройки лежат в файлах, а работающие службы перечитали эти файлы после правки.
  • Межсетевой экран на node2 не выключай — открой в нём только то, что нужно для наблюдения. SSH с node1 на node2 не закрывай: другого входа на node2 нет.
  • Учебный webhook lab-webhook и его файл не трогай.

Интернета в лабе нет — только сеть между node1 и node2, всё нужное установлено. Иди по каждой цепочке от начала до конца и после каждой правки смотри на результат тем же способом, каким его видит проверка: цели — curl -s localhost:9090/api/v1/targets | jq, алерты — curl -s localhost:9090/api/v1/alerts | jq и amtool alert, уведомления — tail /var/lib/lab-webhook/notifications.jsonl, логи — logger на node2 и sudo ls -R /var/log/remote/ на node1.

Видна только тебе. Сохраняется при вводе.

Все заметки

Цели лабы

0 из 4
  • Prometheus на node1 собирает метрики node2 — цель node2:9100 в задании node в состоянии up; межсетевой экран node2 включён, и всё это переживёт перезагрузку — ещё не проверялась
  • Когда node2 перестаёт отвечать, алерт NodeDown о нём не позже чем через минуту в firing, а пока node2 работает — не горит; правило загружено из файла — ещё не проверялась
  • Уведомление о сработавшем NodeDown доходит до дежурных — в учебный webhook на node1; Prometheus и Alertmanager работают с настройками из своих файлов — ещё не проверялась
  • Строка logger с node2 появляется на node1 в /var/log/remote/node2/; rsyslog на обеих машинах работает с настройками из файлов и запустится сам — ещё не проверялась

Подсказки

открыто 0 из 3 · открываются по одной
Подсказка 1
Показать решение после 3 неудачных проверок

Выйти из лабы?

Машина проработает ещё 10 минут и удалится. Файлы пропадут, выполненные цели останутся.

Загрузка…