Я был долговременным наблюдателем сайта, но это - мой первый вопрос. Поэтому сообщите мне, существуют ли какие-либо проблемы с моим сообщением.
Два из серверов в нашей ферме сервера Ubuntu (25 + машины) занимают много времени (10 + минуты) для перезапуска сервиса системного-журнала-ng. Все машины имеют ту же версию системного-журнала-ng (3.5.3). После выполнения strace на сервисе следующий syscall - то, где процесс зависает (строки прежде и, после того, как добавлено для контекста):
опрос ([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 4294967295) = 1 ([{fd=3, revents=POLLIN|POLLHUP}]) <0.000248>
recvfrom (3, "", 8, MESSAGE_WAITALL, ПУСТОЙ УКАЗАТЕЛЬ, ПУСТОЙ УКАЗАТЕЛЬ) = 0 <0.000005>
опрос ([{fd=4, events=POLLIN}], 1, 4294967295 * Стартовая система, регистрирующая системный-журнал-ng [хорошо]) =? ERESTART_RESTARTBLOCK (Прерванный сигналом) <841.792219>
---SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=24591, si_status=0, si_utime=0, si_stime=0}---запись (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 сервисный перезапуск системного-журнала-ng", никакие другие флаги или опции. Не уверенный, какой сигнал прерывает опрос (). Все другие машины перезапускают сервис за несколько секунд.
Я не могу выяснить, является ли это проблемой с системным-журналом-ng или чем-то в конфигурации этих машин. Обычный Google-fu не привел меня никуда. Кто-либо может пролить какой-либо свет на то, как диагностировать эту проблему?
Заранее спасибо!
К сожалению, я не могу помочь в отслеживании вашей исходной проблемы (возможно, проблема с AppArmor? Неясное предположение ...). Но в прошлом я сталкивался с другой, но связанной проблемой с Syslog-ng - он случайно вылетал ночью по причинам, которые очень трудно исправить.
Первоначально пакет Ubuntu содержал классический, Сценарий инициализации SysV , который не может перезапустить вышедшие из строя службы. Я написал и успешно использую для этого родное задание Upstart . Поскольку это полностью меняет способ запуска демона, есть вероятность, что это решит вашу проблему, добавив бонус автозапуска при сбое.
Если вы хотите использовать это, полностью остановите службу (убедитесь, что это ] не работает detached и используйте kill -s TERM ...
, если это так), сохраните файл задания в /etc/init/syslog-ng.conf , сделайте /etc/init.d/syslog-ng символическая ссылка на / lib / init / upstart-job .Затем sudo initctl reload-configuration
и, наконец, service syslog-ng start
.
Я считаю, что только нехватка "рабочей силы" помешала Ubuntu включить надлежащую задачу Upstart практически для любого обслуживание.