Поиск по сайту:

Как просматривать и анализировать журналы в Linux с помощью journalctl


Хотите следить за действиями пользователя и задачами, происходящими на вашем компьютере с Linux? Вот как использовать утилиту journalctl.

Сообщения журнала важны для аудита и поддержания работоспособности системы Linux. Каждый компьютер Linux хранит сообщения журнала для различных служб или заданий. В этом руководстве рассказывается, как читать и анализировать сообщения журнала с помощью journalctl, инструмента командной строки для чтения сообщений журнала, написанных journald.

Что такое журнал?

Journald — это служба системного ведения журнала, которая объединяет сообщения журнала в журнал. Это часть демона systemd, отвечающего за регистрацию событий в Linux. Журнал — это просто двоичный файл, используемый для хранения сообщений журнала, сгенерированных journald.

Сообщения журнала журнала не являются постоянными, поскольку они хранятся в оперативной памяти, которая является энергозависимой формой хранения. По умолчанию журналы journald теряются или стираются всякий раз, когда ваш компьютер перезагружается или отключается питание. Linux выделяет фиксированный объем оперативной памяти для журналов журналов, чтобы не засорять память вашей системы.

Как использовать команду journalctl

Вы можете использовать journalctl для запроса журнала systemd или журналов journald. Система индексирует все журналы journald, чтобы повысить эффективность чтения сообщений журнала из журнала.

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

Просмотреть все сообщения журнала

Чтобы просмотреть все журналы journald, просто запустите команду journalctl без каких-либо аргументов:

sudo journalctl

Команда journalctl выведет список всех журналов journald в вашей системе в хронологическом порядке. Команда использует less в фоновом режиме, что дает вам те же возможности навигации, что и при использовании команды less. Например, вы можете перемещаться по журналам с помощью клавиш F и B на клавиатуре.

Если вы хотите изменить порядок, в котором система выводит журналы, т. е. сначала показывать самые последние, вы можете использовать флаг -r с командой. Флаг -r означает Reverse.

sudo journalctl -r

Просмотр журналов ядра

Журналы ядра очень важны в Linux, поскольку они содержат информацию, относящуюся к вашей системе с момента ее загрузки. Чтобы просмотреть только журналы ядра, укажите флаг -k в команде journalctl:

sudo journalctl -k

В выводе также будет указана некоторая информация о ядре, такая как версия ядра и его имя.

Фильтр журналов по определенной программе

Вы также можете просматривать журналы, связанные с определенной программой или службой, используя journalctl. Например, чтобы просмотреть журналы, связанные со службой cron, выполните следующую команду:

sudo journalctl -u cron

Просмотр сообщений журнала в режиме реального времени

Иногда вам может понадобиться просматривать журналы в режиме реального времени по мере их регистрации. Для этого введите следующую команду:

sudo journalctl -f

Используйте сочетание клавиш Ctrl + C, чтобы выйти из режима реального времени.

Получить сообщения журнала по дате

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

sudo journalctl --since=yesterday

Вы можете быть более конкретными, используя подробные временные метки «с» и «до», как показано ниже:

sudo journalctl --since="2021-07-17 12:00:00" --until="2021-07-17 15:00:00"

Journalctl будет отображать сообщения журнала только за указанный период.

Просмотр сообщений журнала по UID или PID

Вы также можете фильтровать журналы journald, используя идентификатор пользователя (UID) или идентификатор процесса (PID). Основной синтаксис:

sudo journalctl _UID=0

...где 0 - это UID учетной записи root. Вы также можете заменить UID в вышеупомянутой команде на PID или GID (идентификатор группы).

Форматирование вывода журналаctl

Чтобы просмотреть журналы journalctl с использованием определенного формата вывода, следует использовать команду journalctl -o, за которой следует предпочитаемый формат. Например, чтобы отобразить журналы в красивом формате JSON, выполните следующую команду:

sudo journalctl -o json-pretty

Выход :

Настройка журнала в Linux

В этом руководстве показано, как просматривать и анализировать сообщения журнала journald в Linux с помощью команды journalctl. В каталоге /var/log/journal хранятся все журналы journald. Обратите внимание, что не во всех дистрибутивах Linux по умолчанию включен journald.

Вы можете использовать файл /etc/systemd/journald.conf для настройки или внесения изменений в конфигурацию journald на вашем ПК. Помимо эффективной службы ведения журналов, есть несколько других инструментов, которые необходимы, если вы серьезно относитесь к безопасности своих серверов Linux.

Статьи по данной тематике: