Как мне управлять журналами из моих собственных системных служб?

Я развернул пару демонов на ящиках ubuntu и завернул их в качестве системных служб. Их стандартный вывод перенаправляется в журнал по умолчанию, на что я надеялся.

Теперь выясняется, что конфигурация по умолчанию на ubuntu (я думаю, такая же на debian) должна сделать journald переадресовывать все события в / run / systemd / journal / syslog (см. /etc/systemd/journald.conf: # ForwardToSyslog = yes) и с помощью модуля imuxsock вы можете получить данные rsyslog (см. /etc/rsyslog.conf). По умолчанию я также вижу это, потому что в /etc/rsyslog.d/50-default.conf мы имеем следующую строку:

, ; auth, authpriv.none – / var / log / syslog

т.е. все неавторизованные данные заканчиваются в / var / log / syslog

Поскольку я хотел отслеживать вывод моих сервисов в журнале, я сделал файл журнала journald постоянным, создав / var / log / journal (в /etc/systemd/journald.conf, значение по умолчанию для хранилища – автоматически).

В результате все дублирующиеся данные журнала сохраняются один раз в журналеdd и один раз в файле rsyslog / var / log / syslog.

Таким образом, по разным причинам, я действительно хочу сохранить данные своей собственной службы в журнале, но я действительно не хочу дублировать эти данные (есть много журналов!).

Я вижу несколько вариантов:

  1. полностью отключить rsyslog. Я беспокоюсь, что могу пропустить много данных из других сервисов, если я это сделаю: кто знает, что другой код в моей инфраструктуре читает / var / log / *
  2. попробуйте отключить только daemon.info, потому что это то, что, по-видимому, является средством / уровнем регистрации по умолчанию для моих служб. Я беспокоюсь, что следующее может заставить меня игнорировать другие полезные сообщения, которые, как оказалось, имеют один и тот же объект / уровень: /

, ; auth, authpriv.none; daemon.! = info – / var / log / syslog

  1. Измените интеграцию rsyslog / journald, чтобы использовать модуль ввода imjournal, игнорировать imuxsock (как и в Fedora) и писать правила rsyslog, более конкретные для каждой из моих служб

Теперь встает вопрос: какой будет рекомендуемый способ?

Linux и Unix - лучшая ОС в мире.