journalctl

journalctl


#journalctl

Journald

Начиная с версии v38+ systemd имеет собственную систему регистрации событий, которая по умолчанию включена в дистрибутив openSUSE 12.2+. systemd-journalctl является неотъемлемой частью systemd и не может использоваться отдельно. Журналы данного инструмента хранятся в бинарном виде в /var/log/journal, что исключает возможность просмотра содержимого данных файлов стандартными утилитами обработки текстовых данных. При вызове инструмента без параметров покажет все содержимое журнала аналогичного классической системе лог-файлов syslog ( /var/log/messages )

Подробное описание работы с журналом

  • man systemd-journald

  • man journalctl

Основные сведения

Ключи journalctl

Получить актуальные ключи команды:

  • journalctl –help

Чтение всех логов:

  • journalctl

Логи с момента запуска системы:

  • journalctl -b

Если был крах системы, можно ввести параметр -1 и посмотреть логи с предыдущего запуска системы (-2 логи сеанса за два сеанса до текущего и т.д.) [1]:

  • journalctl -b -1

Показывать записи журнала с момента запуска системы с расшифровкой ошибок:

  • journalctl -xb

Показать самые последние записи журнала, и продолжать печатать новые записи, при добавлении их в журнал:

  • journalctl -f

Вывод лога в текстовый файл

Если вам нужно вывести лог в текстовый файл (например, чтобы сообщить разработчикам об ошибке), используйте конструкцию

  • ‘команда’ > ‘путь к текстовому файлу’

Пример:

  • journalctl -b > /home/user/debug.log

Фильтрация по дате и времени

Для фильтрации по дате и времени важны два ключа

--since - вывод от такого-то момента времени

--until - вывод до такого-то момента времени

в качестве значений для этих ключей могут использоваться:

Формат YYYY-MM-DD HH:MM:SS

  • journalctl –since “2017-05-05 00:01” –until “2017-05-06 01:40”

Слова «yesterday», «today», «tomorrow», «now»:

  • journalctl –since “yesterday” –until “2017-05-06 01:40”

Удобочитаемые выражения вида:

  • journalctl –since “10 hours ago”

  • journalctl –since “1 minute ago”

  • journalctl –since “50 minute ago” –until “5 minute ago”

Примеры

Показать все сообщения за последние 20 минут:

  • journalctl –since “20 min ago”

Просмотреть все сообщения начиная с 20 июля 2015 года 17:15:

  • journalctl –since “2015-07-20 17:15:00”

Просмотреть все сообщения начиная со вчерашнего дня:

  • journalctl –since “yesterday”

Просмотреть все сообщения с 9:00 до настоящего времени:

  • journalctl –since “09:00” –until “now”

Просмотреть все сообщения с 9:00 до прошлого часа:

  • journalctl –since “10:00” –until “1 hour ago”

Фильтрация по другим параметрам

Показывать в реальном времени все записи, независимо от их размера и кодировки:

  • journalctl -af

Просмотр сообщений ядра [1]:

  • journalctl -k

Все сообщение конкретной утилиты, например, systemd:

  • journalctl /usr/lib/systemd/systemd

Все сообщения конкретного процесса:

  • journalctl _PID=1

Все сообщения конкретного приложения или службы:

  • journalctl -u netcfg

Все сообщения процессов, запущенных от имени конкретного пользователя:

  • journalctl _UID=33

Журнал

Недавние события

Просмотр информации о недавних событиях

  • $ journalctl -n

По умолчанию на консоль выводится информация о последних 10 событиях. С опцией -n можно указать необходимое число событий:

  • $ journalctl -n 20

Анализ этапа загрузки

Для анализа этапа инициализации системы используется утилита systemd-analyze

Для установки делаем от root:

  • apt install systemd-analyze

Выявляем самые медленные процессы (от пользователя):

  • systemd-analyze blame

Выводим график загрузки процессов в векторный рисунок:

  • systemd-analyze plot > file.svg