SystemdDoctor
мешает работе журнал логи

Записи дублируются: журнал и syslog пишут одно и то же

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

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Пересылка включена в journald и приёмник сам читает журнал

    rsyslog умеет читать журнал напрямую. Если при этом включена пересылка, одни и те же записи приходят двумя путями.

  2. Место уходит на двойное хранение

    Один и тот же объём хранится в журнале и в текстовых файлах. На загруженных машинах это заметно.

  3. Записи расходятся по времени

    При пересылке запись получает метку времени приёмника. Разбирать сбой по двум источникам с разными метками неудобно.

Диагностика

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

Настройки пересылки из журнала.

systemd-analyze cat-config systemd/journald.conf | grep -i Forward

Объём обоих хранилищ.

sudo du -sh /var/log/syslog /var/log/journal 2>/dev/null

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Пересылка включена в journald и приёмник сам читает журнал
Почему происходит
rsyslog умеет читать журнал напрямую. Если при этом включена пересылка, одни и те же записи приходят двумя путями.
Как проверить
Посмотрите настройку пересылки и модули приёмника.
systemd-analyze cat-config systemd/journald.conf | grep -i ForwardToSyslog
grep -rl imjournal /etc/rsyslog.conf /etc/rsyslog.d/ 2>/dev/null
Как исправить
Оставьте один путь: либо чтение журнала модулем приёмника, либо пересылка из journald. Держать оба смысла нет.
2. Место уходит на двойное хранение
Почему происходит
Один и тот же объём хранится в журнале и в текстовых файлах. На загруженных машинах это заметно.
Как проверить
Сравните объёмы.
journalctl --disk-usage; sudo du -sh /var/log/syslog /var/log/messages 2>/dev/null
Как исправить
Решите, какой путь основной, и ограничьте второй. Если текстовые файлы нужны только для внешней отправки, отправляйте прямо из журнала.
3. Записи расходятся по времени
Почему происходит
При пересылке запись получает метку времени приёмника. Разбирать сбой по двум источникам с разными метками неудобно.
Как проверить
Сравните одну запись в обоих источниках.
journalctl -u myapp.service -n 3 --no-pager; sudo grep -h myapp /var/log/syslog 2>/dev/null | tail -3
Как исправить
Разбирайте сбои по журналу: там есть точные метки, идентификаторы загрузки и привязка к unit.

Пример вывода

Пересылка включена, и приёмник сам читает журнал. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ grep -i forwardtosyslog /etc/systemd/journald.conf
ForwardToSyslog=yes

$ grep -r imjournal /etc/rsyslog.conf
module(load="imjournal" StateFile="imjournal.state")

Связанные ошибки

Где встречается чаще всего

Источники

  • journald.conf(5)
    Параметры пересылки записей.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено включением пересылки при работающем модуле чтения журнала.
    собственная проверка, systemd 255
    сверено 15 сентября 2026