2 votes

Le service Syslog-ng se bloque au redémarrage

Je suis un habitué du site depuis longtemps, mais c'est ma première question. Alors, s'il vous plaît, faites-moi savoir s'il y a des problèmes avec mon message.

Deux des serveurs de notre ferme de serveurs Ubuntu (25+ machines) prennent beaucoup de temps (10+ mins) pour redémarrer le service syslog-ng. Toutes les machines ont la même version de syslog-ng (3.5.3). Après avoir fait un strace sur le service, le syscall suivant est celui où le processus se bloque (les lignes avant et après ont été ajoutées pour le contexte) :

poll([{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>

poll([{fd=4, events=POLLIN}], 1, 4294967295 * Starting system logging syslog-ng [ OK ]) = ? ERESTART_RESTARTBLOCK (Interrompu par un signal) <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 (Appel système interrompu) <0.000005>

poll([{fd=4, events=POLLIN}], 1, 4294967295) = 1 ([{fd=4, revents=POLLIN}]) <0.000008>

C'est le résultat d'un simple "sudo service syslog-ng restart", sans autre drapeau ni option. Je ne suis pas sûr du signal qui interrompt le poll(). Toutes les autres machines redémarrent le service en quelques secondes.

Je n'arrive pas à déterminer s'il s'agit d'un problème avec syslog-ng ou d'un élément de la configuration de ces machines. La recherche habituelle sur Google ne m'a mené nulle part. Quelqu'un peut-il m'éclairer sur la manière de résoudre ce problème ?

Merci d'avance !

0 votes

Avez-vous effectué une surveillance des ressources/des tendances pendant que cela se passe ?

0 votes

Les ressources semblent correctes. Le haut de la page ne montre pas d'utilisation anormale du processeur, et la mémoire vive reste constante.

0 votes

Je pense que la sortie que vous avez montrée est un mélange de sortie strace et de sortie du script de démarrage. Pourriez-vous essayer à nouveau d'envoyer la sortie de strace vers un fichier ? Qu'y a-t-il sur le descripteur de fichier 4 ? Ma première hypothèse serait un problème de résolution DNS.

0voto

sam_pan_mariusz Points 2013

Malheureusement, je ne peux pas vous aider à localiser votre problème initial (peut-être un problème avec AppArmor ? une supposition approximative...). Mais j'ai rencontré un problème différent mais apparenté avec Syslog-ng dans le passé - il avait l'habitude de se planter aléatoirement dans la nuit pour des raisons très difficiles à résoudre.

À l'origine, le paquet d'Ubuntu contient classic, SysV -type init script, qui ne peut pas redémarrer les services plantés. J'ai écrit et utilisé avec succès un emploi natif Upstart pour cela. Puisque cela change complètement la façon dont le démon est démarré, il y a de fortes chances pour que cela résolve votre problème, avec le bonus autorestart-on-crash en plus.

Si vous souhaitez l'utiliser, arrêtez complètement le service (assurez-vous qu'il est ne pas courir détaché et utiliser kill -s TERM ... si c'est le cas), sauvegarder un fichier de travail sur /etc/init/syslog-ng.conf , faire /etc/init.d/syslog-ng un lien symbolique vers /lib/init/upstart-job . Ensuite, sudo initctl reload-configuration et enfin service syslog-ng start .

Je crois que seul le manque de "main d'œuvre" a empêché Ubuntu d'inclure un travail Upstart correct pour presque tous les services.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X