Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/10/2010, à 23:49

shensi

Redirection des logs d'un daemon via syslogd

Bonsoir à tous !
Je souhaiterai savoir comment rediriger les info;warning,error d'un daemon fait maison vers un fichier log dans /varlog/mondaemon.log à la mode syslogd ...


Ce que j'ai fait :
- J'ai créé un daemon qui fontionne. il démarre, s'arrête me renvoie le statut. Voici la ligne qui lance le service :

start-stop-daemon --start --quiet --chuid root --background --pidfile $PID --make-pidfile --exec $DAEMON -- $DAEMON_ARGS

J'ai mis dans $DAEMON_ARGS : >>/var/log/mondaemon.log 2>&1

Mais quand je relance mon service (/etc/init.d/mondaemon restart), aucun log !!


Le service apparait bien :

root@home:/etc/init.d# ps -aef |grep mondaemon
root     15387     1 17 00:42 ?        00:00:00 /usr/bin/mondaemon >>/var/log/mondaemon.log 2>&1

seulement aucun log !!!
J'ai essayé du côté de syslogd et j'ai rajouté une entrée comme ceci mais sans résultat :

mondaemon.*      /var/log/mondaemon.log

Pourriez vous me  dire ou se situe mon problème ? Il manque une définition du côté du script /etc/init.d/mondaemon ?

Si besoin, n'hésitez pas je vous donnerai plus d'info...
Cordialement


Distrib: Ubuntu 9.04
Citation : Si chuck Norris te dit que ta mère est bonne... tu peux l'appeler Papa

Hors ligne

#2 Le 02/10/2010, à 01:14

chopinhauer

Re : Redirection des logs d'un daemon via syslogd

Il y a deux problèmes avec ta ligne start-stop-daemon:

* la shell évalue les redirections d'entrée/sortie avant toute expansion des paramètres. Donc $DAEMON_ARGS sera passé au démon et ne causera pas de redirection. En remplaçant le paramètre par sa valeur t'aurait une redirection, sauf pour le point suivant.
* l'utilisation de l'option --background à start-stop-daemon cause la redirection de toute entrée/sortie vers /dev/null lors du lancement du démon. Cela écrasera donc toute redirection faite avant. Seul les erreurs de start-stop-daemon finiront dans le log.

D'habitude les logiciels système n'écrivent pas leurs logs sur la sortie standard, mais utilisent une des deux méthodes suivantes:
* ils utilisent la fonction C syslog qui utilise la méthode BSD de faire des logs. Ces messages seront en suite lus par rsyslog. Cette méthode est utilisé par exemple par ssh qui envoie les messages dans le chenal auth.
* ils ouvrent et écrivent eux-même les fichiers de log (utilisé par Apache, Exim, etc.)


Pensez à donner un bon titre à vos sujets : cela permettra d'aider d'autres utilisateurs dans votre même situation. Ce n'est pas qu'en donnant des solutions qu'on aide, mais aussi en posant des bonnes questions et… facilement trouvables.

Hors ligne

#3 Le 02/10/2010, à 10:54

shensi

Re : Redirection des logs d'un daemon via syslogd

Ok super ! merci pour les info.
Première erreur : effectivement  rediriger les erreurs sur la sortie standard... C'est pas ce que je voulais faire, évidemment. J'ai transformé la les arguments comme suit:

 >>/var/log/mondaemon.log 2>>/var/log/mondaemon.log

Mais toujours rien dans mon log...
J'ai aussi supprimé le paramètre --background. Mais rien ne change, excepté le délai de redémarrage du daemon, il met 10 secondes pour démarrer (voir pas du tout, la ca fait 2minutes et il est jours en starting daemon....). Toujours pas de log.

J'essaye de démoniser un script qui doit se lancer à chaque démarrage du système. Et j'ai besoin des logs de ce service pour être analyser par fail2ban...
Le script en question est un sccript perl. saurais tu comment en perl utiliser la fnction syslog qui me semble fort intéressante?

J'ai essayé plusieurs méthode :
1 - mettre ce script dans /etc/rc.local avec "&" et les redirections vers un fichier de log. Ca marchait très bien. Mais étant perfectionniste, je trouvais pas ça propre !! lol
2 - Créer un daemon pour pouvoir surveiller son état avec "monit" par exemple. Et là j'ai ce problème de redirection de log

Que me conseilles tu ?
Si tu as des infos, tutos pour créer un daemon je suis preneur.
Si tu as des infos sur l'utilisation de la fonction en C syslog je suis preneur aussi.
Et si tu as des conseilles de réalisation je suis preneur aussi
Cordialement

C'est mon premier daemon...Aussi je me permets de rappeler les choses fortes sympatiques que l'on retrouve en cherchant un peu sur le net quand des mecs comme moi pose la qestion :
Pour invoquer un démon:
- tracer un pentacle sur le sol
- faire bruler des herbes d'incantation, de purification de l'esprit et de concentration
- sacrifier une âme pour ton Dieu
- méditer jusqu'a trouver le démon qui te convienne
- ensuite tu as une lutte de ton pouvoir contre le pouvoir du démon, si tu réussis il va t'obéir jusqu'a que tu décides de le libérer, ou qu'il meure ...
A ce moment la, tu peux faire appel à ton démon quand tu le désires, il t'obéira au doigt et à l'oeil !!


Distrib: Ubuntu 9.04
Citation : Si chuck Norris te dit que ta mère est bonne... tu peux l'appeler Papa

Hors ligne

#4 Le 02/10/2010, à 15:53

sputnick

Re : Redirection des logs d'un daemon via syslogd

man 1 logger

wink


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#5 Le 02/10/2010, à 17:37

shensi

Re : Redirection des logs d'un daemon via syslogd

Cool ! Je viens de regarder ca m'a l'air pas mal !
Pourrais tu m'en dire un peu plus ?
Un exemple à la clé ??
Merci d'avance !!


Distrib: Ubuntu 9.04
Citation : Si chuck Norris te dit que ta mère est bonne... tu peux l'appeler Papa

Hors ligne

#6 Le 02/10/2010, à 18:09

sputnick

Re : Redirection des logs d'un daemon via syslogd

Voici :

root@FreAkyLab:~# logger -t '[fake_app]' "Il n'y a pas de Gabonais au numéro demandé. Non môssieur, ce n'est pas non plus la \"Boucherie sans os\""
root@FreAkyLab:~# tail -n1 /var/log/messages.log
Oct  2 19:09:02 localhost [fake_app]: Il n'y a pas de Gabonais au numéro demandé. Non môssieur, ce n'est pas non plus la "Boucherie sans os"
root@FreAkyLab:~#

On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne