Раздел 40 · Elasticsearch и ELK

Алертинг по логам

junior~15 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Дежурный не сидит перед дашбордом круглые сутки. Пока он ужинает, платежи уже пять минут возвращают 504. Дымовой датчик не рисует график дыма: он сравнивает измерение с условием и зовёт человека. По такому принципу строят оповещения по логам.

Из чего состоит правило

Правило

состоит из источника, запроса, окна, порога и частоты проверки. У «Гонца» кандидат: «доля 5xx на POST /api/payments больше 10% за 5 минут при минимум 20 запросах; проверять каждую минуту».

20 запросов защищают от ситуации «одна ошибка из одной оплаты, 100%». Порог 10% здесь учебный: реальное значение выбирают по целевому качеству сервиса и обычному уровню ошибок.

Окно и частота не одно и то же. Каждую минуту мы пересматриваем последние пять минут, а не пять новых непересекающихся минут. Один сбой может входить в несколько последовательных проверок.

Посчитай сигнал

Песочница исполняет запрос, но не запускает планировщик Kibana, не создаёт rule и не отправляет письмо. Ниже фиксированное окно инцидента, чтобы результат не зависел от сегодняшней даты.

hits.total.value здесь число подходящих запросов nginx, failures.doc_count число 5xx. Раздели второе на первое; при нуле запросов доля не определена. Поменяй окно на 19:30 до 19:35: получится базовый фон до инцидента. Не складывай nginx и payments: одно падение иначе посчитается дважды.

Датчик отдельно, звонок отдельно

Connector

соединяет Kibana с системой дежурств или почтой. Доступность типа правила, формул и коннектора зависит от редакции, подписки и развёртывания. Для правила доли ошибок выбери тип, который поддерживает отношение двух счётчиков; правило простого числа совпадений не умеет долю автоматически.

В уведомлении нужны: сервис и окружение, интервал, значение сигнала, ссылка на Discover, владелец и первый шаг проверки. «ERROR случился» не подсказывает, что делать.

Не буди человека на каждую строку

  1. Отдели бизнес-ошибку вроде отклонённой карты от технического сбоя банка.
  2. Группируй по сервису или зависимости, не по trace.id: иначе каждое обращение клиента станет отдельной тревогой.
  3. Уведомляй о переходе в проблему и восстановлении либо выбери разумную повторную отправку, а не письмо на каждом запуске.
  4. Учти задержку доставки. Ноль свежих логов не доказывает здоровье: отдельно следи за конвейером.

Усталость от оповещений

растёт, когда неясно, кто и что должен сделать. Тревога без действия чаще должна стать отметкой на графике, а не ночным звонком. Как идти от звонка к доказательствам, разберём в уроке про инцидент.

урок из курса

Урок из курса «Elasticsearch и ELK». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.