Разбор инцидентов
Сломанные машины, которые надо починить. Симптом известен, причина нет.
В уроках песочницы ты знаешь, что делать, и учишься это делать. Здесь ты знаешь только, что не работает. Контейнер приходит уже испорченным, готовых команд нет, а система проверяет починку по критериям прямо в твоей машине.
Сценарии
- 1nginx не запускается
Сервис не стартует, а по адресу отдаётся чужая страница. Найди обе причины и верни сайт.
4 критерияБесплатноРазобрать - 2Диск полон, а занимать его нечему
df говорит, что диск полон. du обходит тот же каталог и почти ничего не находит. Верни свободное место.
3 критерияБесплатноРазобрать - 3Диск свободен, а файл не создаётся
df показывает пустую файловую систему, но новый файл не создаётся: «No space left on device». Разберись и верни возможность писать.
3 критерияБесплатноРазобрать - 4Скрипт на месте, а запускаться отказывается
Скрипт выкладки лежит где положено, права в порядке, /bin/bash существует, а запуск отвечает required file not found. Через bash он при этом работает.
3 критерияБесплатноРазобрать - 5Сервис работает, но недоступен
Процесс жив, в своём логе пишет, что слушает порт, и с самой машины отвечает. Снаружи до него не достучаться.
3 критерияБесплатноРазобрать - 6Задача по расписанию молчит
Разработчик запускал скрипт руками, и он работал. По расписанию он не даёт результата и не жалуется. Найди обе причины.
3 критерияБесплатноРазобрать - 7Права на файле правильные, а прочитать его нельзя
Скрипт выкладки падает на чтении конфигурации. У самого файла права 644 и читать его может кто угодно.
4 критерияБесплатноРазобрать - 8Служба числится запущенной, но не отвечает
Init-скрипт говорит running и отказывается стартовать. На порту при этом никто не слушает. Разберись, кому он верит.
4 критерияБесплатноРазобрать - 9nginx отвечает 502 Bad Gateway
nginx отвечает, а /api/ отдаёт 502. И nginx, и бэкенд запущены. Найди, что между ними, и верни ответ.
4 критерияБесплатноРазобрать - 10Сайт отвечает 403 Forbidden
nginx запущен, конфигурация проходит проверку, а по адресу вместо страницы приходит 403. Найди, кому и что запрещено.
5 критериевБесплатноРазобрать - 11База работает, а приложение её не находит по имени
Проверка здоровья orders-api падает с «Name or service not known». База слушает на этой же машине, сеть в порядке.
4 критерияБесплатноРазобрать - 12В учётную запись deploy не войти
Пользователь есть, файлы на месте, а su и sudo -i отвечают отказом, каждый своим сообщением. Верни служебную учётку в строй, не пересоздавая её.
5 критериевБесплатноРазобрать - 13Соединение висит и обрывается по таймауту
Служба слушает на всех адресах и с самой машины отвечает мгновенно. Запрос по адресу машины висит до таймаута вместо отказа.
3 критерияБесплатноРазобрать
Как это работает
- 01
Машина уже сломана
Поломку вносят от root до того, как ты подключился. Разбор называет класс отказа и метод, но не саму поломку: её ты ищешь в терминале, а точный ответ лежит на последней ступени подсказок.
- 02
Критерии вместо шагов
Вместо списка действий - определение готовности. Проверка выполняется в твоём контейнере и говорит, какие условия ещё не выполнены.
- 03
Подсказки по одной
Лестница подсказок закрыта и открывается по ступеням, от «с чего начать» до прямого ответа. Счётчиков и штрафов нет.
Частые вопросы
Чем это отличается от уроков песочницы?
Урок даёт задачу и команды для неё: ты знаешь, что делать, и учишься делать это быстро и правильно. Сценарий даёт симптом. Порядок действий ты выбираешь сам, и он у каждого свой.
Нужен ли аккаунт?
Читать сценарий можно без аккаунта. Чтобы поднять контейнер, нужен вход: машина живёт на нашем сервере и её ресурсы конечны. Четыре сценария открыты сразу после регистрации, остальные входят в платный курс.
Почему systemctl не работает?
Песочница - это контейнер, а не виртуальная машина, и systemd в нём не запущен: первым процессом стоит обычный shell. Поэтому systemctl отвечает «System has not been booted with systemd as init system» и ничего не делает. Замена есть: сервисы поднимает и останавливает команда service (service nginx start, service nginx status), состояние конфигурации показывают собственные инструменты сервиса, а причины отказов лежат в его лог-файлах в /var/log. Ровно так ты будешь разбираться с сервисом внутри контейнера и на работе.
Можно ли сломать что-то по-настоящему?
В контейнере - сколько угодно. Он одноразовый, сети наружу у него нет, и он удаляется, когда ты уходишь. Кнопка перезапуска соберёт машину заново вместе с исходной поломкой.