00. Поиск неисправностей
## Алгоритм поиска неисправностей в Linux При возникновении проблемы в Linux-системе важно действовать системно, чтобы быстро локализовать и устранить неисправность. Ниже представлен универсальный ал
Алгоритм поиска неисправностей в Linux
При возникновении проблемы в Linux-системе важно действовать системно, чтобы быстро локализовать и устранить неисправность. Ниже представлен универсальный алгоритм, который подходит для большинства ситуаций — от сбоев загрузки до проблем с производительностью.
1. Определение симптомов
Чётко сформулируйте, что именно работает не так:
- Система не загружается?
- Зависает или тормозит?
- Не работает сеть?
- Не запускается конкретное приложение?
- Появляются ошибки в консоли или логах?
- Наблюдается нехватка памяти/диска?
2. Сбор информации
На этом этапе собираем максимум данных о состоянии системы.
2.1. Просмотр логов
-
Уровни логирования- 0 — EMERG (система неработоспособна);
- 1 — ALERT (требуется немедленное вмешательство);
- 2 — CRIT (критическое состояние);
- 3 — ERR (ошибка);
- 4 — WARNING (предупреждение);
- 5 — NOTICE (всё нормально, но следует обратить внимание);
- 6 — INFO (информационное сообщение);
- 7 — DEBUG (отложенная печать).
-
journalctl— логи systemd со всей системы. Полезные ключи:
-b(текущая загрузка),-fследить за новыми сообщениями,-u <служба>(логи конкретного юнита), а также уровень логирования-pзадается числом от 0 до 7. -
dmesg— кольцевой буфер ядра, содержит сообщения от загрузки и информацию об оборудовании. Полезные ключи:-wследить за новыми сообщениями,-lуровень логирования задается аналогичноjournalctlот 0 до 7. -
/var/log/— классические текстовые логи:
syslog,messages,auth.log,kern.log,apache2/error.logи т.д. -
Логи приложений — часто находятся в
/var/log/<имя_программы>/или задаются в конфигах.
2.2. Состояние системы
- Нагрузка и процессы:
top,htop,uptime,mpstat -P ALL,iostat -x 1. - Память:
free -h,vmstat 1,cat /proc/meminfo. - Диски и файловые системы:
df -Ti,df -hT,du -sh /*,lsblk,fdisk -l,smartctl -a /dev/sda(S.M.A.R.T.). - Сеть:
ip a,ss -tulpn,netstat -i,ping,traceroute,nslookup,tcpdump. - Ядро и модули:
uname -a,lsmod,sysctl -a.
2.3. Информация о запущенных процессах
ps auxf— дерево процессов.lsof— список открытых файлов (можно фильтровать по процессу, порту).strace -p <PID>— трассировка системных вызовов работающего процесса- может сильно нагрузить нагрузить систему хотя касперский этим занимается на постоянной основе
3. Анализ и локализация
На основе собранных данных попытайтесь выделить аномалии:
- Ошибки в логах (критические сообщения, падения, таймауты).
- Перегрузка CPU, памяти, дискового ввода-вывода.
- Исчерпание inode’ов или места на диске
- *Характерно для fs ext4. Изменение количества inode на уже существующей файловой системе не рекомендуется — это может привести к проблемам. Если inode закончились, ядро не может создать новый файл (в том числе временный, сокет, pid-файл) и возвращает ENOSPC. Типичные сценарии, когда inode заканчиваются раньше, чем дисковое место: миллионы мелких файлов (кэш, сессии, миниатюры, временные файлы), почтовые очереди и спул, логирование «файл на событие», слишком частая ротация.
- Чтобы избежать проблем, рекомендуется:
- *Мониторить inode — добавлять метрику df -i в мониторинг и алерты (например, 70/85/95% по inode).
- Освобождать inode — например, удалять файлы, которые не нужны и больше не используются.
- Выносить «мелкофайловые» данные на отдельный том или менять подход к хранению.
- Неправильные права доступа к файлам/директориям (пора прекратить заниматься рукоблудием)
- Проблемы с сетью (потеря пакетов, недоступность портов).
- Конфликты модулей или оборудования.
4. Проверка гипотез
- Если подозреваете нехватку памяти — посмотрите
freeиvmstat, проверьте, не уходят ли процессы в swap. - Если проблема с диском — проверьте
iostat,dmesgна наличие ошибок ввода-вывода, запуститеfsck- Бывает полезно в комплексе других мер. Все разделы проверяются до их загрузки, это указано в /etc/fstab (крайне правый столбец). 1-только для корневой системы. 0-без проверки. 2-с меньшим приоритетом.
- Если не запускается служба — проверьте статус
systemctl status <служба>, её конфигурационные файлы, зависимости. - Если проблема с сетью — проверьте маршруты, firewall (iptables/nftables), работу DNS.
- Если программа падает — запустите её под
straceили проверьте дамп памяти.
5. Принятие мер
В зависимости от найденной причины:
- Остановите/запустите/перезапустите службу.
- Освободите место на диске (удалите ненужные логи, кеши).
- Исправьте конфигурационный файл.
- Переустановите или обновите проблемный пакет.
- Добавьте ресурсы (увеличьте swap, добавьте память).
- В крайнем случае — перезагрузка системы.
6. Проверка результата
- Симптомы исчезли?
- Логи перестали выдавать ошибки?
- Приложение работает ожидаемо?
- Нагрузка вернулась в норму?