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

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

Рубрики:

SystemD

Метки:

, , , , , , , , ,

Сегодня поговорим про 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, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

SystemD

Метки:

, , , , , , , , ,

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

1 комментарий. Оставить новый

  • Доброго здравия! Прошу ответить знающих людей по D-bus в Windows, c целью получения log сообщений из системы.

    Ответить

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

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

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

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