Яндекс.Метрика

Как оповещать дежурных о сбоях?

Grafana или Zabbix присылают алерт в беседу дежурных в Пачке, и её участникам приходит уведомление. Дежурный ставит под алертом 👀, чтобы коллеги видели, что сбоем уже занимаются, и разбирает его в треде. Когда метрика возвращается в норму, в беседу приходит сообщение о восстановлении. Ниже можно пройти путь дежурного самому.

Дежурные

7 участников · бот Grafana

Вчера
GrafanaБот03:12

🔴 Сбой · DiskSpaceLow

На db-2 осталось меньше 10% свободного места

https://grafana.company.ru/d/db/postgres?viewPanel=7

grafana.company.ru

Свободное место, % · db-2

Свободное место, % · db-20%10%20%30%02:4002:5003:0003:10
👀11
GrafanaБот03:41

✅ Восстановлено · DiskSpaceLow

На db-2 осталось меньше 10% свободного места

https://grafana.company.ru/d/db/postgres?viewPanel=7

grafana.company.ru

Свободное место, % · db-2

Свободное место, % · db-20%10%20%30%03:1003:2003:3003:40
Сегодня
Аватар участника
Никита Белов09:30

На этой неделе дежурит @a.petrov, подстраховывает @o.smirnova. Кто берёт алерт, ставит 👀 и пишет в тред, что делает. Когда придёт «Восстановлено», ставит на алерт ✅

Зачем получать алерты в рабочем чате

Письма от мониторинга приходят в общий ящик вперемешку с остальной почтой, а алерт в личном Telegram видит только тот, кому он пришёл. Сбой разбирают в личных сообщениях и созвонах, и через неделю уже не восстановить, кто что откатывал. В беседе дежурных алерт видят все, кто на смене, а разбор остаётся в треде под ним.

  • Алерт видят все, кто дежурит. Бот пишет в беседу, а не одному человеку. Если дежурный в метро, сбой заметит тот, кто его подстраховывает, а тимлид видит, что происходит на проде, без отдельного отчёта.
  • Сразу видно, кто взялся. 👀 под алертом значит «смотрю». Двое не чинят одно и то же, а алерт без реакции сразу бросается в глаза.
  • Беседа остаётся лентой алертов. Логи, гипотезы и «откатываю релиз» пишут в тред под сообщением бота, поэтому у каждого сбоя своя ветка. В тред можно позвать разработчика сервиса через @упоминание, даже если его нет в беседе.
  • Восстановление приходит туда же. Когда метрика возвращается в норму, система мониторинга сама присылает сообщение. Чтобы понять, что сбой закончился, не нужно держать дашборд открытым.
  • Ночью приходят только алерты. Дежурный добавляет беседу в исключения уведомлений. Остальные рабочие чаты молчат до утра, а об алерте приходит уведомление.
  • Готова основа для постмортема. Время алерта, первые действия и время восстановления лежат в одном треде. Его можно найти поиском по названию алерта и перенести в разбор инцидента.

Как настроить алерты из Grafana, Zabbix и Prometheus

Grafana, Zabbix и Prometheus Alertmanager умеют отправлять алерты вебхуком, то есть HTTP-запросом на заданный адрес. Такой адрес выдаёт бот в Пачке: всё, что на него приходит, бот публикует сообщением в беседах, куда его добавили. Когда метрика возвращается в норму, система мониторинга присылает ещё один запрос, и в беседе появляется сообщение о восстановлении.

Бота и отправку алертов можно настроить минут за 15 без программиста. Понадобятся доступ к настройкам алертов в системе мониторинга и права администратора или создателя беседы в Пачке.

В Пачке

  1. 1

    Создайте беседу для алертов

    Нажмите + рядом с поиском, выберите Беседа и назовите её «Дежурные». Добавьте всех, кто ходит в дежурства, и тимлида. Если у каждой команды свои сервисы, заведите по беседе на команду: так алерт приходит тем, кто может его починить.
  2. 2

    Создайте бота

    В меню Интеграции выберите Боты, нажмите Создать бота и назовите его, например, «Grafana». Этим именем бот будет подписывать алерты в беседе.
  3. 3

    Включите входящий вебхук

    На странице бота откройте вкладку Входящий вебхук, нажмите Включить и скопируйте Webhook URL. На этот адрес система мониторинга будет присылать алерты. Как настроить текст алерта шаблоном, рассказываем в справке.
  4. 4

    Добавьте бота в беседу

    Откройте настройки беседы «Дежурные», нажмите Добавить участников, перейдите на вкладку Интеграции и выберите бота. Он публикует алерты во всех беседах, куда его добавили, поэтому для второй команды удобнее создать отдельного бота.

В системе мониторинга

  1. 5

    Укажите адрес бота в системе мониторинга

    В Grafana, Zabbix или Prometheus Alertmanager добавьте отправку алертов через вебхук и вставьте Webhook URL бота. Включите и уведомления о восстановлении, чтобы в беседу приходило сообщение, когда метрика вернётся в норму.

В команде

  1. 6

    Договоритесь о правилах

    Дежурный ставит под алертом 👀, когда берёт его, и пишет ход разбора в тред. Когда пришло сообщение о восстановлении и причина понятна, он ставит на алерт ✅. Если сбой не в его зоне, он зовёт в тред разработчика сервиса через @упоминание. Треды в Пачке сквозные, и позвать туда можно даже того, кого нет в беседе. Правила и имя дежурного на неделю удобно писать в беседу сообщением, как в демо выше.
  2. 7

    Настройте уведомления у дежурных

    Чтобы ночью приходили только алерты, дежурный нажимает на свой профиль, открывает Настройки уведомлений, выключает уведомления во всём приложении и добавляет беседу «Дежурные» в Исключения. Из исключений уведомления приходят, даже когда остальные чаты молчат. Список исключений настраивается в компьютерной версии Пачки.

Чтобы под алертом был виден график из Grafana, как в демо, нужен отдельный бот для превью ссылок. Его настраивает разработчик по нашей инструкции.

Если не работает

  • Тест прошёл, а в беседе пусто. На вкладке «Входящий вебхук» у бота нажмите «Показать последний полученный объект». Если запрос там есть, проверьте, что бот добавлен в беседу. Если запроса нет, проверьте адрес в системе мониторинга.
  • Сообщение не пришло, хотя запрос есть. Сверьте поля в шаблоне с последним полученным объектом: если шаблон вернул пустую строку, Пачка сообщение не отправляет.
  • Сбой приходит, а восстановление нет. Проверьте, что в системе мониторинга включена отправка сообщений о восстановлении.