Linux

Анализ логов Linux: руководство по диагностике и решению проблем

В этом руководстве вы узнаете, как использовать базовые инструменты командной строки для просмотра, фильтрации и анализа логов Linux. После выполнения инструкции вы сможете выявлять ошибки, отслеживать эффективность системы и решать типичные проблемы.

Обновлено 27 июня 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04Ubuntu 24.04CentOS 8Debian 11

Введение

Анализ логов — ключевая часть поддержания стабильной работы любой Linux-системы. Системные журналы, файлы журналов приложений и события ядра содержат подробную информацию об ошибках, предупреждениях и неполадках производительности. Знание базовых инструментов командной строки позволяет быстро выявлять корневые причины, решать проблемы и предотвращать будущие сбои. В этом руководстве вы освоите четыре основных команды (journalctl, grep, awk и простые операции с файлами), которые составляют основу эффективного анализа логов Linux.

Требования / Подготовка

  • Операционная система: Любая современная дистрибутивная система Linux (подтверждено для Ubuntu 22.04, 24.04, CentOS 8, Debian 11).
  • Права доступа: Права администратора (root или sudo).
  • Предустановленные инструменты: journalctl, grep, awk, стандартный bash-shell.

Если ваша система не имеет этих инструментов, установите их с помощью пакетного менеджера (sudo apt install util-linux grep awk).

Пошаговая инструкция

Шаг 1: Подключитесь к системе с правами администратора

Чтобы просматривать системные журналы, вам нужны права root. Откройте терминал и выполните:

sudo -i

Если вы уже вошли в систему с правами администратора, вы можете пропустить этот шаг.

Шаг 2: Просмотрите системный журнал с помощью journalctl

journalctl — это системный логировщик systemd. Для просмотра последних записей выполните:

journalctl -xe

Для проверки логов конкретного сервиса замените <service>:

journalctl -u <service>

💡 Совет: Добавьте -f, чтобы отслеживать журналы в режиме реального времени: journalctl -f -u <service>.

Шаг 3: Фильтрация логов с помощью grep

Отфильтруйте интересующие записи по ключевыми словами:

journalctl | grep -i "error"

Для файлов журналов в /var/log:

grep "ERROR" /var/log/syslog

⚠️ Важно: Используйте -i, чтобы выполнить поиск без учёта регистра, если не уверены в регистре ошибки.

Шаг 4: Парсинг и статистика с помощью awk

Создайте краткое описание ошибок с помощью awk:

journalctl | grep "ERROR" | awk '{print $1, $2, $3}' > errors_summary.txt

Теперь файл errors_summary.txt содержит дату, время и источник каждой ошибки.

Шаг 5: Экспорт результатов в файл

Сохраните журналы в файлы для дальнейшего анализа или резервного копирования:

journalctl > /tmp/system.log
grep "ERROR" /var/log/syslog > errors.log

Вы можете архивировать эти файлы (tar -cvf logs.tar.gz /tmp/system.log errors.log), если вам нужно сохранить историю.

Шаг 6: Проверка журналов приложений

Многие приложения записывают логи в /var/log. Например, для веб-сервера Apache:

cat /var/log/apache2/error.log | grep "500 Internal Server Error"

Для журналов Docker используйте:

docker logs <container_name>

Проверка результата

После выполнения шагов вы сможете:

  • Просматривать последние системные ошибки с помощью journalctl -xe.
  • Быстро находить записи, содержащие определённые ключевые слова.
  • Генерировать статистические файлы с помощью awk.
  • Сохранять журналы в файлы для дальнейшего анализа.
  • Проверять журналы приложений, чтобы выявлять проблемы на уровне программного обеспечения.

Если вы видите ожидаемые записи (например, список ошибок, файл статистики, экспортированный файл журнала), значит, инструкция выполнена успешно.

Возможные проблемы

  • Доступ запрещён: Если journalctl не показывает журналы, убедитесь, что вы вошли в систему с правами root или добавили пользователя в группу systemd-journal.
  • Файл журнала не существует: Некоторые сервисы записывают логи в /var/log/<service>. Проверьте существование файла перед фильтрацией.
  • Неправильный формат вывода awk: Если awk выводит пустые строки, проверьте, содержит ли журнал ожидаемые поля (дата, время, источник). Вы можете сначала выполнить journalctl | grep "ERROR" | head -n 5, чтобы увидеть структуру.
  • Большой размер файла: Экспорт больших журналов может создать огромные файлы. Используйте gzip для сжатия (gzip /tmp/system.log), если вам не нужны необработанные данные.

Не стесняйтесь обращаться к официальной документации journalctl (man journalctl) для получения расширенных параметров, таких как фильтрация по датам (--since "2024-01-01") или ограничение количества строк (-n 50).

Часто задаваемые вопросы

Как просмотреть последние записи системного журнала?
Как отфильтровать логи по уровню ошибки?
Как экспортировать журнал в файл для дальнейшего анализа?
Как настроить логирование для конкретного приложения?

Полезное

Подключитесь к системе с правами администратора
Просмотрите системный журнал с помощью journalctl
Фильтрация логов с помощью grep
Парсинг и статистика с помощью awk
Экспорт результатов в файл

Эта статья помогла вам решить проблему?

Похожее

Мониторинг производительности Linux: пошаговая инструкция за 5 минут

В этом гайде вы узнаете, как использовать стандартные инструменты Linux для мониторинга производительности системы — CPU, памяти, диска и процессов. После выполнения инструкции вы сможете быстро выявлять узкие места и оптимизировать работу системы.

Мониторинг производительности Linux с помощью sysstat: пошаговое руководство

Sysstat — это набор утилит для мониторинга загрузки CPU, памяти и ввода-вывода в Linux. В этом руководстве вы научитесь устанавливать, настраивать и анализировать отчеты sysstat, чтобы отслеживать производительность системы.

Kernel Panic в Linux: причины и способы восстановления

Kernel panic — фатальная ошибка ядра Linux, приводящая к полной остановке системы. Эта статья поможет вам определить причину по логам, проверить оборудование и восстановить работоспособность системы.