Q:

Логи sshd дублируются в двух местах

Обнаружил, что логи sshd (если конкретнее, сообщения об успешных и неуспешных входах) в моей Ubuntu 18.04 пишутся одновременно в /var/log/journal и в /var/log/auth.log и тем самым впустую тратят место на диске (а systemd-journald никогда не отличался экономным расходованием места). Где настраиваются оба лога? Можно ли как-то отключить вывод логов sshd в /var/log/journal и оставить только /var/log/auth.log? (Логи остальных служб мне отключать не нужно.)

A:

каталог /var/log/journal наполняет systemd-journald (один из компонентов (перефразируя бородатую шутку) «неплохой операционной системы systemd, которой, жаль, не хватает системы инициализации»).
файл /var/log/auth.log наполняет rsyslog (или syslog-ng или т.п.).
первичен в наблюдаемых мною системах именно systemd-journald: получая новые сообщения, он их заносит в журнал и дублирует в сокет для rsyslog (опция ForwardToSyslog в /etc/systemd/journald.conf по умолчанию равна yes). и если отключить systemd-journald, то rsyslog ничего и не получит.
опции «не записывать в журнал то-то и то-то» в программе systemd-journald, насколько я вижу, не имеется.
отсутствует и возможность убрать при просмотре журала «то-то и то-то» (т.е., из вывода journalctl): для этого надо вывод дополнительно фильтровать.

итог: разработчиками systemd (да продлятся до бесконечности их дни в том месте, куда они попадут после смерти) оставлена всего одна возможность избежать дублирования — на стороне rsyslog.
благо это-то вполне возможно. вот такое правило запретит обработку сообщений от sshd:
:programname, isequal, "sshd" stop

оно должно попасть в конфигурацию раньше описания стандартных лог-файлов. если это описание находится, например, в файле /etc/rsyslog.d/50-default.conf, то надо создать файл, имя которого начинается с числа, меньшего пятидесяти. например, /etc/rsyslog.d/49-sshd.conf

