В дополнение к rsyslog для журналирования событий в системе предназначен сервис Journald. Journald используется преимущественно для предоставления дополнительной информации о работе сервисов. Он дает информацию в режиме реального времени, которая по умолчанию очищается при перезапуске компьютера. Использование Journald позволяет запрашивать конкретную информацию о службах и их текущем рабочем состоянии.
Journald также предоставляет команду journalctl, которая позволяет прочитать последние сообщения журнала. По умолчанию она показывает самые ранние записанные события:
eugene@Eugene:~$ journalctl Mar 08 16:37:23 Eugene systemd-journald[473]: /var/log/journal/> Mar 08 16:37:23 Eugene kernel: audit: type=1400 audit(170990504> Mar 08 16:37:23 Eugene kernel: audit: type=1400 audit(170990504> Mar 08 16:37:23 Eugene rtkit-daemon[1754]: Supervising 8 thread> .....................................
Чтобы перейти к самым последним строкам, добавленным в журнал, используйте опцию G
Journalctl также имеет множество опций для фильтрации определенных элементов журнала. В частности, некоторые из них:
--system
: отображает системный журнал
--user
: отображает логи только текущего пользователя
-D --directory=PATH
: отображает логи из определенной папки
--file=PATH
: отображает лог по определенному пути
-S --since=DATE
: показывает сообщения начиная с определенной даты в формате YYYY-MM-DD hh:mm:ss.
-U --until=DATE
: показывает сообщения до определенной даты в формате YYYY-MM-DD hh:mm:ss.
-t --identifier=STRING
: показывает сообщения с определенным тегом
-p --priority=RANGE
: показывает сообщения с определенным приоритетом
-g --grep=PATTERN
: использует регулярное выражение для поиска сообщений
-k --dmesg
: показывает сообщения лога ядра для текущей загрузки
Например, отобразим последние 10 записей из системного лога:
eugene@Eugene:~$ journalctl --system -n 10 Mar 21 11:45:08 Eugene rtkit-daemon[2337]: Supervising 7 threads of 4 processes of 1 users. Mar 21 11:45:08 Eugene rtkit-daemon[2337]: Successfully made thread 3384 of process 3361 owned by '1000' RT at priority 20. Mar 21 11:45:08 Eugene rtkit-daemon[2337]: Supervising 8 threads of 5 processes of 1 users. ...........................................................
Или к примеру отобразим все ошибки (то есть сообщения, которые принадлежат приоритету "err"):
journalctl -p err
Для фильтрации по дате даты указываются в формате YYYY-MM-DD hh:mm:ss. Например, найдем все сообщения с 16:30:20 20 марта 2024 года:
journalctl --since "2024-03-20 16:30:20"
Можно также время не указывать, а только дату:
journalctl --since 2024-03-20
Также в качестве параметров можно использовать слова yesterday, today и tomorrow. Например, найдем все записи начиная со вчерашнего дня:
journalctl --since yesterday
Конечно, можно комбинировать различные опции для более тонкой фильтрации. Например, найдем все ошибки со вчерашнего дня:
journalctl --since yesterday -p err