On a installé logstash récemment et c'est vraiment génial pour la visualisation de logs. Pas testé par contre pour l'envoi de mail (qu'on gère par ailleurs avec un système qui ne dédoublonne pas, ce qui nous a permis de nous faire blacklister les ips de nos serveurs par gmail :( ).
Ca demande un peu de boulot pour être exploité pleinement, et un peu de tuning (surtout au niveau d'ElasticSearch). Au final, on a du passer un peu moins d'une semaine (pour une archi d'une dizaine de machines, avec un volume de logs "moyen"), plus autant pour ajouter des identifiants de requêtes dans notre appli web pour arriver à corréler les différents logs.
Avec un peu de background sur le tuning Java, et un ou deux articles de blog, ça passe.
A noter que c'est relativement consommateur de ressources (CPU/RAM), maintenant YMMV.
JFB
Le 3 sept. 2013 à 13:32, Rémy Sanchez a écrit :
Bonjour à tous,
Je déploie actuellement avec grand plaisir des applications Java en charge de faire du traitement de masse sur des données.
Actuellement, on utilise log4j pour sortir ces logs, configuré grosso modo comme tel :
- Les messages de debug sortent dans un fichier debug.log qui est rotaté dès qu'il dépasse 100 Mo
- Les messages autres vont dans des fichiers info.log, warn.log, error.log, qui sont rotatés sur base de la date
- Quand une erreur arrive, on envoie un mail
Donc pour les messages de debug, tout va bien, par contre pour le reste comment dire... Quand on a une erreur lancée pour chaque ligne de donnée (ce qui est arrivé plus d'une fois), alors on a grosso modo la même exception qui monte des millions de fois (mais pas exactement la même).
Cela a plusieurs effets de bord : d'une part faire tomber le serveur mail, et d'autre part saturer les disques et empêcher le fonctionnement du service.
L'idée serait donc d'externaliser la gestion des logs pour 2 raisons :
- Empêcher que les logs nuisent à l'exécution du programme en saturant l'espace disque
- Être capable de gérer les erreurs par lot : si une même exception arrive 2 millions de fois, générer une seule alerte et l'envoyer par mail à la team de maintenance, par exemple
Je cherche donc un système en mesure d'absorber des gros pics de logs, de ne pas consommer des gigas et des gigas de stockage, et de préférence avec une interface de visualisation web sympa. Possiblement compatible avec syslog ou en tout cas avec un appender log4j.
Pour l'instant j'ai trouvé http://three.kibana.org/ qui semble convenir approximativement à ces besoins. Il y a aussi un vieux thread (http://www.frsag.org/pipermail/frsag/2010-July/000226.html) qui liste pas mal de choses, mais qui n'ont pas l'air d'être adaptées au besoin de traiter les choses en bloc. À part Facebook Scribe éventuellement, mais ça a l'air trop perché par rapport au temps que je peux y consacrer.
Je suis preneur de toute proposition/retour d'expérience :)
Merci,
Rémy Sanchez http://hyperthese.net/ _______________________________________________ Liste de diffusion du FRsAG http://www.frsag.org/