Ранбук превращает первые минуты сбоя из поиска наугад в список шагов.
Сбой, который задевает пользователей, называют инцидентом: сайт не отвечает, страницы грузятся по десять секунд, заказы не сохраняются. Пока он идёт, каждый запрос без ответа тратит бюджет ошибок. Поэтому первые минуты расписаны заранее — в ранбуке.
Ранбук пишут на каждый алерт: что он значит, чем его подтвердить, где искать, как вернуть сервис и кого звать, если не вышло. Шаги в нём — готовые команды: в три часа ночи их выполняют, не вспоминая устройство системы. Ранбук «сайт 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=.
За последний час никто, кроме тебя, 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.