Содержание

Использование journalctl в Linux для просмотра и управления журналами системы

Утилита journalctl в Linux используется для просмотра и управления журналами системы (логи), которые собираются службой systemd-journald, частью системы инициализации и управления службами systemd. Она предоставляет централизованный доступ к логам, собираемым из разных источников на системе, включая ядро, начальную загрузку, и службы. journalctl тесно интегрирована с systemd, основной системой инициализации и управления службами в современных дистрибутивах Linux. systemd использует systemd-journald для сбора и хранения логов.

Любая служба, управляемая через systemd, автоматически имеет свои журналы, собираемые и доступные через journalctl. Это упрощает диагностику проблем и мониторинг состояния системных служб.

Зачем нужна journalctl:

  1. Централизованное логирование: journalctl обеспечивает единый доступ к логам системы, что упрощает процесс поиска и анализа журналов событий.
  2. Подробные логи: Журналы, собранные systemd-journald, содержат подробную информацию, включая метаданные о процессе, который сгенерировал сообщение, временные метки с высокой точностью и многое другое.
  3. Фильтрация и поиск: journalctl предлагает мощные возможности для фильтрации и поиска в журналах, позволяя пользователям легко находить записи, соответствующие определенным критериям, таким как диапазон дат, приоритет сообщений или связанные с определенной службой.
  4. Управление журналами: journalctl позволяет настраивать поведение журналов, например, контролировать размер журналов, настраивать их ротацию и период хранения.

Основные примеры использования journalctl

Утилита journalctl предлагает множество опций для просмотра и фильтрации логов системы. Вот несколько примеров использования journalctl:

journalctl -u nginx.service
journalctl --since "2023-01-01"
journalctl --since "2023-01-01" --until "2023-01-02"

Логи за последние 24 часа:

journalctl --since "1 day ago"
journalctl -f -u ssh.service
journalctl | less

Просмотр определенного количества последних записей (например, последние 20 записей):

journalctl -n 20
journalctl -p err
journalctl -r

Очистка логов systemd journalctl

Посмотреть размер всех файлов логов systemd-journald

journalctl --disk-usage

Чтобы очистить до нужного размера файлы логов для systemd версии 218 и выше можно использовать ключи vacuum-size и vacuum-time. Опция –vacuum-size=10M позволяет управлять размером журнала, удаляя старые записи до тех пор, пока общий размер не уменьшится до указанного значения. Опция указывает journalctl удалить старые записи до тех пор, пока общий размер журнала не станет равным или меньше 10 мегабайт.

journalctl --vacuum-size=10M

Если вы хотите удалить записи по времени, вы можете использовать опцию –vacuum-time. Например, чтобы удалить записи старше 1 дня, выполните:

$ journalctl --vacuum-time=1d

Заключение

journalctl предоставляет гибкие возможности для работы с системными логами, позволяя пользователям адаптировать процесс просмотра и фильтрации логов под свои конкретные потребности.