Summary: | 3.20.1-alt4 не работает при запущенном systemd | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> | ||||
Component: | syslog-ng | Assignee: | Sergey Y. Afonin <asy> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | asy, enp, shaba | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Sergey Y. Afonin
2019-03-29 22:44:47 MSK
Created attachment 8062 [details]
для правильного %def_disable systemd
Начинает работать, как надо, если собрать с %def_disable systemd (без libsystemd-devel то есть), только там всё равно unit-файл пакуется, и работает как-то не так:
# service syslog-ng restart
Job for syslog-ng.service failed because a timeout was exceeded.
See "systemctl status syslog-ng.service" and "journalctl -xe" for details.
Для %def_disable systemd надо этот патчик добавить.
(В ответ на комментарий №1)
> Created an attachment (id=8062) [details]
> для правильного %def_disable systemd
>
> Начинает работать, как надо, если собрать с %def_disable systemd (без
> libsystemd-devel то есть), только там всё равно unit-файл пакуется, и работает
> как-то не так:
>
> # service syslog-ng restart
> Job for syslog-ng.service failed because a timeout was exceeded.
> See "systemctl status syslog-ng.service" and "journalctl -xe" for details.
>
> Для %def_disable systemd надо этот патчик добавить.
У меня ощущение, что Вы делаете что-то совсем не правильно.
(In reply to comment #2) > У меня ощущение, что Вы делаете что-то совсем не правильно. Хотелось бы понять, что именно. Вроде всё просто - включил у journal вывод в syslog, запустил syslog-ng. Собранный без libsystemd-devel работает, как ожидалось, а вот собранный с libsystemd-devel пишет в лог только свои сообщения, статистику например. Может, конечно, это у самого syslog-ng что-то как-то так задумано, но в документации пока ничего особенного про какие-нибудь опции, связанные с systemd, не увидел. Спрошу ещё в рассылке балабитовской. (In reply to comment #0) > И ещё момент. В init-скрипте при рестарте делается проверка > конфига и рестрт не выполняется, если что-то пошло не так Вообще, пусть отдельно висит: Bug 36458 Даже когда собрано без libsystemd-devel и, в основном, работает, некотрые сообщения до syslog, всё-таки, не долетают: https://lists.altlinux.org/pipermail/devel/2019-March/207486.html (In reply to comment #2) > У меня ощущение, что Вы делаете что-то совсем не правильно. Да, "кто-то" точно делает что-то совсем неправильно... После досустановки syslog-ng-journal в лог попало интересное сообщение: syslog-ng[18233]: [2019-10-08T23:09:14.708119] Using /dev/log Unix socket with systemd is not possible. Changing to systemd-syslog source, which supports socket activation.; После замены unix-dgram ("/dev/log") на unix-dgram ("/run/systemd/journal/dev-log") всё заработало (и без syslog-ng-journal). И я так понимаю, что разработчики systemd и этот баг за баг не посчитают. У syslog-ng в какой-то момент появился драйвер источника system(), который умеет выбирать, откуда следует доставать информацию. Пишут, что в 3.6+/3.7+, но в p8 с 3.8.1 тоже не работает. Зато работает в p9 c теперь уже 3.22.1, хотя может и с 3.20.1 работало бы. Сейчас правильная конфигурация источника по-умолчанию выглядеть должна так, судя по всему: source sys { file ("/proc/kmsg" program-override("kernel") flags(kernel)); system(); }; При этом syslog-ng нормально пишет логи как с sysvinit, так и с journal. При наличии systemd-journald требуется ещё доустановить пакет syslog-ng-journal: # syslog-ng -s Error parsing source statement, source plugin systemd-journal not found in source generator system При этом, похоже, syslog-ng полностью не зависит от настроек в /etc/systemd/journald.conf, то есть достаёт логи даже с [Journal] Storage= ForwardToSyslog=no Либо journald работает не так, как предполагает конфигурационный файл. Это косвенно подтверждается тем, что если поменять конфигурацию и перезапустить systemd-journald, часть сообщений до syslog-ng долетать перестаёт, и вернуть их возвратом конфигурации и перезапуском это уже не получается, только перезагрузкой. (In reply to comment #7) > [Journal] > Storage= > ForwardToSyslog=no В этом месте я ошибся. "Storage=" - это не "Storage=no", а "Storage=auto". Но и с [Journal] Storage=no ForwardToSyslog=no Syslog-ng сообщения откуда-то достаёт. syslog-ng-3.24.1-alt1 -> sisyphus: Fri Oct 11 2019 Sergey Y. Afonin <asy@altlinux> 3.24.1-alt1 - 3.24.1 - built syslog-ng-geoip2 instead of syslog-ng-geoip - switched to python3-dev - syslog-ng.conf: + used system() source instead of unix-dgram ("/dev/log") (ALT #36454) + logging own Syslog-ng's messages to /var/log/syslog/syslog-ng (In reply to comment #9) > - syslog-ng.conf: > + used system() source instead of unix-dgram ("/dev/log") (ALT #36454) И надо доустановить пакет syslog-ng-journal в случае использования с systemd. |