Управление сообщениями журналов в Systemd с использованием Journalctl [прикладное руководство]

Управление сообщениями журналов в Systemd с использованием Journalctl [прикладное руководство]

Сегодня поговорим про Journalctl. Systemd — это передовая система и менеджер сервисов (служб) для Linux-систем: замена демона init, предназначенная для параллельного запуска процессов при загрузке системы. В настоящее время она поддерживается в ряде текущих дистрибутивов, включая Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS и т.д.

 

 

Раньше мы обсудили, что такое демон, почему «init» технически необходимо заменить на «systemd», а также основные функции systemd.

Одним из основных преимуществ systemd над другими общими системами инициализации является поддержка централизованного управления регистрацией системы и процессов с использованием журнала. В этой статье мы узнаем, как управлять и просматривать сообщения журнала в systemd с помощью команды logctl в Linux.

Важно: прежде чем двигаться дальше, в этой статье, вы можете узнать, как управлять службами и подразделениями Systemd с помощью команды «Systemctl», а также создавать и запускать новые служебные модули в systemd с помощью сценариев оболочки в Linux. Если всё вышеперечисленное вас не напугало, продолжайте читать.

Настройка Journald для сбора логов с Systemd

 

journald — демон (служба), который собирает записи журнала из всей системы; это, по сути, загрузочные сообщения, сообщения из ядра и из syslog или различных приложений, и он хранит все сообщения в центральном месте — файле журнала.

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

Ниже приведен пример того, как выглядит файл.

 

 

Обратите внимание, что различные установки пакетов и использование выводов конфигурации в /usr/lib/systemd/*.conf.d/ и конфигурациях времени выполнения можно найти в /run/systemd/journald.conf.d/*.conf.

 

Включим хранение данных журнала на диске

Ряд дистрибутивов Linux, включая Ubuntu и её производные, такие как Linux Mint, не позволяют по умолчанию сохранять в постоянную память загрузочные логи на диске.

Это можно включить, установив для параметра «Хранение» значение «постоянный», как показано ниже. Это создаст каталог /var/log/journal, и все файлы журнала будут сохранены в эту директорию.

 

 

Для дополнительных настроек найдите значение всех параметров, которые должны быть настроены в разделе «[Journal]», набрав:

 

Установка правильного системного времени с помощью команды Timedatectl

Чтобы обеспечить надежное управление журналом в системе с помощью службы journald, убедитесь, что у вас верные настройки времени, в том числе и часовой пояс.

Чтобы просмотреть текущие настройки даты и времени в вашей системе, введите:

 

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

 

Просмотр сообщений журнала с помощью команды Journalctl

journalctl — это утилита, используемая для просмотра содержимого журнала systemd (который записывается службой journald).

Чтобы показать все собранные данные журнала без какой-либо фильтрации, введите:

 

 

Просмотр сообщений журнала загрузки системы

Вы можете отобразить список загрузочных номеров (относительно текущей загрузки), их идентификаторы и отметки времени первого и последнего сообщений, соответствующие загрузке с опцией -list-boots.

 

Чтобы просмотреть записи журнала из текущей загрузки (номер 0), используйте флаг -b :

 

Чтобы просмотреть журнал логов из предыдущей загрузки, используйте -1, относительный указатель с опцией -b, как показано ниже:

 

Кроме того, используйте идентификатор загрузки:

 

Фильтрация сообщений журнала по времени

Чтобы использовать время в формате Coordinated Universal Time (UTC), добавьте опцию -utc следующим образом:

 

Чтобы просмотреть все записи с определенной даты и времени, например “с 15 июня 2018 года с 8:15 утра” введите эту команду:

 

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

Чтобы просмотреть последние сообщения журнала (по умолчанию 10), используйте флаг -n, как показано ниже:

 

Просмотр сообщений журнала, созданных ядром

Чтобы увидеть только сообщения ядра, похожие на вывод команды dmesg, вы можете использовать флаг -k.

 

Просмотр журнальных логов, созданных службами

Чтобы просмотреть все записи журнала для определенной службы, используйте ключ -u следующим образом:

 

Для отображения последнего запуска службы введите эту команду:

 

Чтобы показать журнал с предыдущей загрузки, используйте эту команду:

 

Ниже приведены некоторые другие полезные команды:

 

Просмотр журнальных логов, генерируемых процессами

Чтобы просмотреть журналы, созданные определенным процессом, укажите его PID.

 

Просмотр журнальных сообщений, созданных с помощью идентификатора пользователя или группы

Чтобы просмотреть журналы, созданные определенным пользователем или группой, укажите идентификатор пользователя или группы, например:

 

Просмотр журналов, созданных файлом

Чтобы показать все журналы, сгенерированные файлом (возможно, исполняемый файл), например исполняемый файл D-Bus или исполняемый файл bash, введите:

 

Просмотр журнальных логов по приоритету

Вы также можете фильтровать выходные данные на основе приоритетов сообщений или диапазонов приоритетов, используя флаг -p. Возможные значения: 0 – появление, 1 – тревога, 2 – crit, 3 – ошибка, 4 – предупреждение, 5 – уведомление, 6 – информация, 7 – отладка):

 

Чтобы указать диапазон, используйте следующий формат (появится предупреждение):

 

ИЛИ

 

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

Вы можете фактически просматривать журналы, поскольку они записываются с параметром -f (аналогично функции tail -f):

 

Форматирование способа отображения журналов

Если вы хотите контролировать форматирование вывода записей журнала, добавьте флаг -o и используйте следующие параметры: cat, export, json, json-pretty, json-sse, short, short-iso, short-monotonic, short-exact и verbose (“подробно”) (проверьте значение параметров на странице руководства:

Параметр cat показывает фактическое сообщение каждой записи журнала без каких-либо метаданных (временная метка и т.д.).

 

Управление журналами в системе

Чтобы проверить файл журнала на внутреннюю корреляцию элементов, используйте параметр –verify. Если все хорошо, на выходе вы должны получить – “PASS“.

 

Удаление старых журнала

Вы также можете отображать текущее использование диска всеми файлами журнала с параметрами использования -disk. Он показывает данные о использовании диска для всех архивных и активных файлов журнала:

 

Для удаления старых (архивных) файлов журнала выполните следующие команды:

 

Очистка (ротация) файлов журналов

И последнее, но не менее важное: вы можете обучить journald очищать файлы журналов с помощью опции -rotate. Обратите внимание, что эта опция будет не доступна до завершения операции вращения:

 

Подробное руководство по использованию и параметры смотрите в man-странице journalctl.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасности от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики