Руководство по устранению неполадок: как устранить отсутствующие журналы в журналеctl

Журналирование — важная часть системного администрирования, позволяющая отслеживать и анализировать события и ошибки в вашей системе Linux. Одним из популярных инструментов для просмотра системных журналов в Linux является журналctl. Однако пользователи иногда сталкиваются с проблемой, когда Journalctl не отображает все журналы. В этой статье мы рассмотрим несколько способов устранения и решения этой проблемы.

Метод 1: проверка ограничения размера журнала
По умолчанию журналctl ограничивает объем отображаемых данных, чтобы избежать чрезмерного использования дискового пространства. Однако это ограничение может помешать вам просмотреть все необходимые журналы. Чтобы проверить ограничение размера журнала и при необходимости увеличить его, выполните следующие действия:

  1. Откройте терминал и выполните следующую команду, чтобы просмотреть текущий предел размера журнала:

    sudo systemctl status systemd-journald
  2. Найдите строку, которая начинается с «Служба системного журнала», и запишите значение после «MaxLevelStore=”.

  3. Если значение относительно низкое (например, 100M), вы можете увеличить его, создав файл конфигурации. Чтобы создать файл, выполните следующую команду:

    sudo nano /etc/systemd/journald.conf.d/99-logsize.conf
  4. Добавьте в файл следующую строку, чтобы установить более высокий предел размера журнала (например, 1 ГБ):

    [Journal]
    SystemMaxUse=1G
  5. Сохраните файл и выйдите из текстового редактора.

  6. Перезапустите службу systemd-journald, чтобы изменения вступили в силу:

    sudo systemctl restart systemd-journald

Метод 2: проверка фильтров временного диапазона
journalctl позволяет фильтровать журналы по временным диапазонам, например «с» и «до». Если вы не видите все журналы, возможно, фильтры временного диапазона исключают нужные журналы. Вот как можно проверить и настроить фильтры временного диапазона:

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

    journalctl --since "24 hours ago"
  2. Если вы по-прежнему не видите ожидаемые журналы, попробуйте расширить временной диапазон или вообще удалить временные фильтры:

    journalctl --since "1 week ago"
    journalctl --until "1 hour ago"
    journalctl --no-pager

Метод 3: проверка места хранения журнала
По умолчанию журнал Journalctl хранит журналы в энергозависимой файловой системе в памяти. Если в вашей системе произойдет внезапная перезагрузка или сбой, журналы, хранящиеся в этом месте, могут быть потеряны. Чтобы обеспечить постоянное хранение журналов, вы можете настроить Journalctl на использование другого места хранения:

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

    sudo mkdir /var/log/journal
  2. Назначьте соответствующие разрешения новому каталогу:

    sudo chown root:systemd-journal /var/log/journal
    sudo chmod 2755 /var/log/journal
  3. Измените место хранения журнала, создав файл конфигурации:

    sudo nano /etc/systemd/journald.conf.d/99-storage.conf
  4. Добавьте в файл следующую строку, чтобы указать новое место хранения:

    [Journal]
    Storage=auto
    RuntimeDirectory=/var/log/journal
  5. Сохраните файл и выйдите из текстового редактора.

  6. Перезапустите службу systemd-journald:

    sudo systemctl restart systemd-journald

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