Псевдоним модуля systemd (символическая ссылка) отсутствует для syslog-ng / syslog
У меня проблемы с машиной Ubuntu 16.04.4, на которой запущены systemd и syslog-ng (3.5.6-2.1), где сообщения, записанные в syslog процессом (назовем его X), не были получены syslog-ng. Вскоре выяснилось, что journald угонял сообщения, зарегистрированные X, и, следовательно, они так и не добрались до syslog-ng.
После небольшого поиска казалось, что systemd нужно знать, что syslog-ng предоставляет службу syslog, так что сообщения, полученные journald, также попадают в syslog-ng. Однако, глядя на системный модуль syslog-ng, выяснилось, что это уже должно было произойти, поскольку оно содержит:
[Install]
WantedBy=multi-user.target
Alias=syslog.service
Но даже если syslog-ng был явно включен с systemctl enable syslog-ng
Вроде символическая ссылка
/etc/systemd/system/syslog.service -> /lib/systemd/system/syslog-ng.service
отсутствовал в системе. Удаление и повторная установка syslog-ng, а затем запуск systemctl enable syslog-ng
действительно воссоздал эту символическую ссылку, которая заставила его работать.
Теперь проблема в том, что у меня есть машина, на которой включен системный модуль syslog-ng, но символическая ссылка отсутствует, и в этом случае systemctl enable syslog-ng
не воссоздает отсутствующую символическую ссылку, так как systemd, похоже, видит, что syslog-ng уже включен, и поэтому не пытается проверить, существует ли символическая ссылка или нет.
Конечно, теоретически я мог бы вручную создать символическую ссылку, но мои вопросы здесь:
- почему отсутствует символическая ссылка, если systemd должен был создать ее при включении модуля syslog-ng?
- как правильно заставить systemd заново создать эту символическую ссылку, не отключая syslog-ng и не включая его снова?
Я просмотрел документацию по systemd, которую смог найти, но она разочаровывает, когда / как / при каких обстоятельствах создаются эти символические ссылки.
Любая помощь приветствуется!
1 ответ
syslog-ng 3.5 довольно старый и несколько глючный, я бы предложил обновить его до более новой версии (в настоящее время 3.16 является последней). Вы можете найти пакеты в репозитории разработчика: https://build.opensuse.org/project/show/home:laszlo_budai:syslog-ng