sunfun Posté(e) le 3 décembre 2006 Partager Posté(e) le 3 décembre 2006 bonsoir tout le monde, j'ai installé un serveur debian 2.6.12-2-686 je souhaite mettre en place une centralisation des logs via le demon syslog-ng sur le serveur, j'ai réussi à centraliser les logs du serveur dans un autre fichier que le fichier habituel /var/log/syslog par contre, ce que je souhaite faire, c'est de récupérer les logs des autres machines et d'en faire un traitement après sur le serveur de log (filtrer par service comme DNS, DHCP, etc.) voici la configuration actuelle du fichier /etc/syslog-ng/syslog-ng.conf : # sources # all known message sources source s_all { # message generated by Syslog-NG internal(); # standard Linux log source (this is the default place for the syslog() # function to send logs to) unix-stream("/dev/log"); # messages from the kernel file("/proc/kmsg" log_prefix("kernel: ")); # use the above line if you want to receive remote UDP logging messages # (this is equivalent to the "-r" syslogd flag) #udp(); }; source remote { udp(ip(0.0.0.0) port(514)); }; ###### # destinations # some standard log files destination d_syslog_file { file("/u0/log/$HOST/$HOST.$YEAR$MONTH$DAY-$HOUR.log" owner("root") group("root") perm(0644) create_dirs(yes) dir_perm(0755)); }; filter f_phoenix {host("phoenix") and facility(DAEMON); }; log { source(remote); filter(f_phoenix); destination(d_syslog_file); }; c'est un fichier minimal, je n'ai pas mis toutes les lignes pour ne pas surcharger le post j'arrive à générer le fichier de log de mon propre serveur, mais je n'arrive pas à récupérer les logs des autres serveurs, notamment le serveur phoenix que je mentionne sur le serveur phoenix, notamment dans le fichier /etc/syslog.conf, voici sa configuration : *.* @aquarius aquarius est le nom du serveur de centralisation de log je ne vois pas du tout comment faire pour centraliser les logs j'ai déjà redémarré les serveurs syslog-ng côté serveur et sysklogd côté client avez-vous une idée ? merci de votre aide sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
sunfun Posté(e) le 7 décembre 2006 Auteur Partager Posté(e) le 7 décembre 2006 merci de votre aide sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
sunfun Posté(e) le 9 décembre 2006 Auteur Partager Posté(e) le 9 décembre 2006 bonjour, savez-vous quelle commande puis-je mettre dans la crontab pour purger les logs qui ont plus de 6 jours par exemple ? merci sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
rafailow Posté(e) le 9 décembre 2006 Partager Posté(e) le 9 décembre 2006 Ok pour ce qui est de syslog-ng il y a quelques incohérences... Je te montre un de mes fichiers épuré : Côté serveur : ### I) Options options { chain_hostnames(off); sync(0); stats(43200); use_fqdn(no); }; ### II) Sources source Cluster { tcp (ip ("10.0.0.7") port (514) ); }; ### III) Destinations destination mail_melody_1 { file("/var/log/melody_1/mail.log"); }; ### IV) Filtres filter f_mail_melody_1 { host("10.0.0.5"); }; ### V) Les logs log { source(Cluster); filter(f_mail_melody_1); destination(mail_melody_1); }; en gros je procède comme cela avec syslog-ng, en gros dis toi que tu as 5 étapes pour arriver à tes fins, enfin c'est une rigueur que je m'impose :) Maintenant côté client : ### I) Options options { chain_hostnames(off); sync(0); stats(43200); }; ### II) Sources source src { unix-stream("/dev/log"); internal(); pipe("/proc/kmsg"); }; ### III) Destinations destination mail { tcp (ip ("10.0.0.7") port (514) ); }; ### IV) Filtres filter f_mail { facility(mail) and not match (imapd); }; ### V) Les logs log { source(src); filter(f_mail); destination(mail); }; Sinon, tu as pas mal de ressources sur le net... En ce qui concerne la suppression des logs après une durée, il faut voir du côté de rotatelog... En gros, met daily dans ton fichier de conf et rotate 6 toto.log { daily missingok rotate 6 } Comme toujours, tu as une multitude de ressources sur le web :) voili Lien vers le commentaire Partager sur d’autres sites More sharing options...
sunfun Posté(e) le 10 décembre 2006 Auteur Partager Posté(e) le 10 décembre 2006 bonjour rafailow, tout d'abord, merci d'avoir répondu ensuite, pour syslog-ng, je ne vois pas trop de quelles incohérences tu parles pourrais-tu être plus précis ? en effet, si c'est par rapport aux options, je n'utilise pas tout ensuite, j'utilise une option use_dns(yes) pour bénéficier de la résolution DNS, c'est pour ça que je n'indique pas d'adresse IP dans mon fichier /etc/syslog-ng/syslog-ng.conf ensuite, je vois que tu filtres directement par service en filtrant sur mail.log c'est très intéressant je prends note merci encore sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
rafailow Posté(e) le 10 décembre 2006 Partager Posté(e) le 10 décembre 2006 Oui autant pour moi, j'ai lu très vite et en diagonal ton post et quand j'ai vu un 0.0.0.0, j'y ai vu une incohérence.. désolé Sinon tu as réussi à régler le problème avec syslog-ng? et ton rotatelog? Sinon pour l'exemple cité, ca correspond aux logs mail d'un node d'un cluster mail... Lien vers le commentaire Partager sur d’autres sites More sharing options...
sunfun Posté(e) le 10 décembre 2006 Auteur Partager Posté(e) le 10 décembre 2006 bonsoir rafailow, il n'y a pas de mal alors pour syslog-ng, le problème est résolu mais comme il manque encore des petits détails, comme l'épuration des logs tous les 6 jours que je n'arrive pas à faire je n'utilise pas logrotate, d'ailleurs comment ça marche concrètement ? merci de ton aide sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
rafailow Posté(e) le 11 décembre 2006 Partager Posté(e) le 11 décembre 2006 Pour logrotate le fonctionnement est très simple, par exemple: crée un fichier dans /etc/logrotate.d/exemple /var/log/exemple.log { daily missingok rotate 7 compress notifempty } Avec ca, tu fais un rotation des logs tous les jours, tu gardes cette rotation sur une durée de 7 jours, en prime il te compresse tes logs... Je te donne un exemple concret d'une rotation de logs qui tourne pour apache2 sur une machine en prod : /var/log/apache2/*.log { weekly missingok rotate 52 compress sharedscripts notifempty create 640 root adm prerotate /usr/lib/cgi-bin/awstats_updateall.pl -awstatsprog="/usr/lib/cgi-bin/awstats.pl" now endscript postrotate if [ -f /var/run/apache2.pid ]; then /etc/init.d/apache2 restart > /dev/null fi rename "s/\.1.gz$/.`date -I`.gz/" /var/log/apache2/*.1.gz mv /var/log/apache2/*.gz /var/archived_logs/apache2/ endscript } Là je fais une rotation chaque semaine, je garde les rotations sur une durée de 52 semaines (tu remarqueras que cela est rendu inutile parce que je deplace les logs dans un autre répertoire...) ils sont compressés, j'execute le script awstats avant la rotation et j'execute un renommage des fichiers de logs pour passer de toto.log.1.gz à toto.2006-12-10.gz, ça me permet de m'y retrouver plus facilement et un déplacement des logs après rotation. Je pense que l'exemple sera plus parlant que de longs discours... Bonne chance :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
sunfun Posté(e) le 20 décembre 2006 Auteur Partager Posté(e) le 20 décembre 2006 bonsoir rafailow, merci beaucoup de tes conseils, j'en prends note toutefois, j'ai autre chose à te proposer que logrotate il faut ajouter cette ligne dans la crontab de root 0 0 * * * /usr/bin/find /u0/log -mtime +5 -exec rm {} \; cela signifie que chaque nuit à 00h00, il va regarder dans /u0/log (ou le répertoire dans lequel tu stockes les logs, par défaut, il me semble que c'est /var/log) et faire un check par rapport à la date, et si les logs datent de plus de 5 jours, c'est supprimé merci encore de ton aide précieuse je mets ce sujet en résolu sunfun Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 21 décembre 2006 Partager Posté(e) le 21 décembre 2006 C'est quand même plus propre avec logrotate. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.