Linux Labs

Практики SRE: SLO, инциденты, отказоустойчивость / Ступень 4 из 8

Ранбук и первые 10 минут

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 7 · теория · 7 мин

Ранбук

Ранбук превращает первые минуты сбоя из поиска наугад в список шагов.

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

Ранбук пишут на каждый алерт: что он значит, чем его подтвердить, где искать, как вернуть сервис и кого звать, если не вышло. Шаги в нём — готовые команды: в три часа ночи их выполняют, не вспоминая устройство системы. Ранбук «сайт 502» выглядит так:

Шаг Что делать
1. Подтвердить curl -s -o /dev/null -w '%{http_code}\n' http://localhost/
2. Начать хронологию записать время алерта в ~/incident/timeline.txt
3. Что изменилось последним sudo journalctl -t sudo --since -1h, ls -lt каталогов конфигов
4. Вернуть сайт откатить последнее изменение, сохранив копию изменённого
5. Проверить тот же curl; время — в хронологию
6. Сообщить в чат команды; не вышло за 15 минут — звать старшего дежурного

Третий шаг стоит так рано, потому что сбои чаще всего начинаются с изменения: выкладки, правки конфига, обновления пакета. Изменение за минуты до алерта — первый подозреваемый. Метку -t sudo в journalctl носят записи sudo: каждая команда через него оставляет строку с пользователем, каталогом и самой командой после COMMAND=.

Проверь себя 1 вопрос

За последний час никто, кроме тебя, sudo не запускал. Что напечатает sudo journalctl -t sudo --since -1h?

  • Сама команда запущена через sudo, и sudo записал её раньше, чем journalctl начал читать журнал.

  • Команда и так запускается от root через sudo, поэтому читает весь журнал.

  • Команды root без sudo в журнал не попадают: метку sudo ставит только sudo — на свои запуски.

sudo записывает каждый свой запуск — и тот, которым ты открыл журнал: в выводе будет строка с твоим именем и COMMAND=/usr/bin/journalctl -t sudo --since -1h. Поэтому последние строки журнала sudo — обычно твои собственные.

Главное в шаге

  • Инцидент — сбой, который задевает пользователей; первые минуты идут по ранбуку этого алерта.
  • Ранбук: подтвердить, начать хронологию, найти последнее изменение, вернуть сервис, проверить, сообщить.
  • Изменение за минуты до алерта — первый подозреваемый; команды через sudo видны в journalctl -t sudo.
Ubuntu 24.04
Загрузка…