Назад | Перейти на главную страницу

Служба syslog-ng зависает при перезапуске

Я давно скрывался на сайте, но это мой первый вопрос. Пожалуйста, дайте мне знать, если есть какие-либо проблемы с моим сообщением.

Два сервера в нашей серверной ферме Ubuntu (25+ машин) требуют много времени (10+ минут) для перезапуска службы syslog-ng. На всех машинах установлена ​​одинаковая версия syslog-ng (3.5.3). После выполнения strace в сервисе следующий системный вызов зависает (строки до и после добавлены для контекста):

опрос ([{fd = 4, events = POLLIN}, {fd = 3, events = POLLIN}], 2, 4294967295) = 1 ([{fd = 3, revents = POLLIN | POLLHUP}]) <0.000248>

recvfrom (3, "", 8, MSG_WAITALL, NULL, NULL) = 0 <0,000005>

опрос ([{fd = 4, events = POLLIN}], 1, 4294967295 * Запуск системного журнала syslog-ng [OK]) =? ERESTART_RESTARTBLOCK (прервано сигналом) <841.792219>

--- SIGCHLD {si_signo = SIGCHLD, si_code = CLD_EXITED, si_pid = 24591, si_status = 0, si_utime = 0, si_stime = 0} --- write (5, "\ 21", 1) = 1 <0.000008>

rt_sigreturn () = -1 EINTR (прерванный системный вызов) <0,000005>

опрос ([{fd = 4, events = POLLIN}], 1, 4294967295) = 1 ([{fd = 4, revents = POLLIN}]) <0,000008>

Это результат простого "sudo service syslog-ng restart", никаких других флагов или параметров. Не уверен, какой сигнал прерывает опрос (). Все остальные машины перезапускают службу в считанные секунды.

Я не могу понять, проблема ли это в syslog-ng или в конфигурации этих машин. Обычный гугл-фу ни к чему не привел. Может ли кто-нибудь пролить свет на то, как устранить эту проблему?

Заранее спасибо!

К сожалению, я не могу помочь в отслеживании вашей исходной проблемы (может быть, проблема с AppArmor? Неясное предположение ...). Но я столкнулся с другой, но связанной проблемой с Syslog-ng в прошлом - он случайно вылетал ночью по очень трудно исправить.

Первоначально пакет Ubuntu содержал классический, SysV-type сценарий инициализации, который не может перезапустить аварийные службы. Я написал и успешно использую родная работа Upstart для этого. Поскольку это полностью меняет способ запуска демона, скорее всего, это решит вашу проблему с добавлением бонуса автозапуска при сбое.

Если вы хотите использовать это, полностью остановите службу (убедитесь, что не работает отдельно и использовать kill -s TERM ... если это так), сохраните файл проекта в /etc/init/syslog-ng.conf, делать /etc/init.d/syslog-ng символическая ссылка на / lib / init / выскочка-задание. затем sudo initctl reload-configuration, и наконец service syslog-ng start.

Я считаю, что только нехватка "рабочей силы" помешала Ubuntu включить надлежащую работу Upstart практически для любой службы.