Безопасный подход к устранению неполадок
Устранение неполадок — это не угадывание команд, пока что-то не изменится. Это сужает проблему: что изменилось, какой уровень не работает, какие доказательства существуют и какой самый маленький безопасный тест?
Прежде чем что-то менять, запишите точные ошибки. Сначала отдайте предпочтение проверке только для чтения. Сделайте резервные копии перед редактированием конфигурации. Изменяйте одну переменную за раз.
Где живут логи
Современные дистрибутивы systemd хранят в журнале множество журналов, запрашиваемых с помощью Journalctl. Традиционные журналы также отображаются в /var/log. Приложения могут осуществлять вход в файлы, журнал, контейнеры или собственные каталоги данных.
| Источник журнала | Где искать |
|---|---|
| системные службы | журналctl -u имя-сервиса |
| Текущая загрузка | журналctl -b |
| Сообщения ядра | журналctl -k или dmesg |
| Традиционные бревна | /var/log |
| Журналы приложений | Документы приложения, /var/log/app, /var/lib/app, журналы контейнера |
основы журналаctl
Journalctl может фильтровать по службе, загрузке, приоритету, времени, исполняемому файлу, пользователю и т. д. Целевые фильтры обычно более полезны, чем прокрутка всего.
journalctl -bjournalctl -u nginx --since "30 minutes ago"journalctl -fjournalctl -p err -bРаспространенные проблемы Linux и первые проверки
| Problem | Первые проверки |
|---|---|
| Доступ запрещен | whoami, id, ls -l, биты выполнения каталога, нужно sudo |
| Установка пакета не удалась | Сеть, метаданные репозитория, удерживаемые пакеты, дисковое пространство, конфликтующие репозитории. |
| Служба не запускается | systemctl status, journalctl -u, синтаксис конфигурации, конфликты портов |
| Проблема с загрузкой | журналctl -xb, systemctl --failed, записи fstab, недавние изменения ядра или драйвера |
| Проблема с сетью | ip addr, ip route, проверка DNS, ping, curl, ss, firewall |
| Диск заполнен | df -h, du -h -d 1, журналы, кеши, снимки, образы контейнеров |
Как читать сообщения об ошибках
Ошибка часто содержит неудачную операцию, целевой путь или службу, причину, а иногда и номер файла и строки. Не выполняйте поиск только в последней общей строке, если над ней есть более конкретная строка.
В случае ошибок разрешений укажите пользователя, целевой файл, родительские каталоги и желаемую операцию. Для сетевых ошибок отделите ошибки DNS от ошибок в соединении, тайм-аута, сбоев TLS и кодов состояния HTTP.
Практические шаги по отладке
- 1Воспроизведите проблему один раз и скопируйте точную ошибку.
- 2Определите уровень: файл, разрешение, пакет, служба, сеть, диск, загрузка или приложение.
- 3Сначала проверьте состояние с помощью команд только для чтения.
- 4Проверьте журналы незадолго до момента сбоя.
- 5Сделайте обратимое изменение.
- 6Проверьте еще раз и сравните доказательства.
- 7Сохраняйте заметки, чтобы можно было отменить изменения или объяснить, что изменилось.