Quelqu'un connaît-il un outil pour détecter et signaler les motifs répétitifs dans un fichier journal? [fermé]

12

J'ai besoin de surveiller de gros fichiers journaux bruyants (500 m / jour) à partir d'une application Java (log4j). En ce moment, je regarde manuellement les fichiers, grep pour "ERREUR" et ainsi de suite. Cependant, il devrait être possible pour un outil de repérer des motifs répétitifs dans le fichier, de les compter et de fournir une analyse détaillée des détails des entrées individuelles. Quelqu'un connaît un tel outil? Une interface texte ou basée sur le Web serait bien.

David Tinker
la source
1
Pour moi, cette question crie absolument perl.
John Gardeniers
Hmm c'est comme si je devais écrire un script bash avec beaucoup de greps. J'espérais avoir quelque chose pour comprendre les motifs automatiquement.
David Tinker
Sérieusement, c'est exactement pour cela que Perl a été créé. Vous pouvez écrire un script d'auto-apprentissage pour ces modèles, bien que cela soit évidemment hors de portée ici.
John Gardeniers
stackoverflow.com/questions/2590251/… a une solution appelée Chainsaw.
John aka hot2use
datadoghq.com/blog/log-patterns <- je le recommande vivement, mais bien qu'il ne soit pas fou, ce n'est pas super bon marché non plus.
neokyle

Réponses:

3

J'ai entendu parler de personnes appliquant le filtrage bayésien sur les fichiers journaux pour repérer des choses intéressantes par rapport aux entrées de journal de routine. Ils ont utilisé des filtres anti-spam, où les entrées inintéressantes de routine étaient considérées comme "bonnes" tandis que celles inhabituelles étaient considérées comme "spam" et en utilisant cette coloration, elles pouvaient passer.

Cela ressemble beaucoup à des choses d'apprentissage automatique pour moi, mais encore une fois, je ne les ai pas vues en action, j'en ai seulement entendu parler au cours des bières.

adamo
la source
Cela me semble parfaitement raisonnable, et vous pourriez même avoir des hypothèses antérieures très solides (au sens bayésien) sur certains mots qui apparaissent toujours dans les journaux du serveur.
DrewConway
Oui, cela ferait l'affaire. Quelqu'un connaît une implémentation que je pourrais former?
David Tinker
On pourrait commencer avec CRM114, je suppose. Ou attendez que Drew Conway publie son Machine Learning for Hackers . Je travaille toujours pour trouver la référence originale à ce que j'ai proposé.
adamo
Oui! Je l'ai relu en 2005 dans ce fil des membres sages . L'auteur de l'e-mail mentionne spamprobe .
adamo
6

Splunk fait des merveilles pour ce genre de choses. Je l'utilise en interne pour rassembler tous les journaux et faire des recherches rapides via son excellente interface basée sur un navigateur.

Burhan Khalid
la source
Malheureusement, nous aurions probablement besoin de la version non gratuite et c'est un peu cher
David Tinker
3

syslog-ng a une fonction nommée patterndb. Vous pouvez créer des modèles et leur faire correspondre des entrées de journal en temps réel, puis envoyer ces entrées à des fichiers journaux distincts.

Pierre
la source
2

En examinant syslog-ng et patterndb (+1 à cette réponse ci-dessus), j'ai rencontré un outil Web appelé ELSA: http://code.google.com/p/enterprise-log-search-and-archive/ . C'est F / OSS en perl, avec une interface web, et censé être vraiment rapide.

Je ne l'ai pas encore essayé, mais une fois le filtrage à l'aide de patterndb terminé, j'essaierai ELSA.

EdwardTeach
la source
1

Essayez petit .
Je ne sais pas si cela fonctionnera avec le format log4j, mais vous pourrez peut-être écrire un filtre personnalisé pour cela.
Petit n'a pas d'interface web, il affiche des graphiques dans votre shell (ftw art ASCII!).
Il est très utile de voir rapidement les messages répétés et de déterminer quand ils se sont produits ou ont commencé à se produire plus fréquemment.

truqueur
la source
0

Glogg est un très bon explorateur de journaux car vous avez la possibilité de créer un filtre de base sur une chaîne et une ligne de couleur ou de récupérer toutes les occurrences dans une chaîne.

http://glogg.bonnefon.org/

Alexandre Roux
la source
0

Splunk est généralement une bonne solution pour cela. Mais vous avez dit que c'était trop cher pour vous. Je vous recommande donc de regarder Logstash ou GrayLog .

Raffael Luthiger
la source
-1

Vous pouvez essayer LogXtender de SEQREL, qui détecte automatiquement les modèles et agrège les journaux similaires. Pour ce faire, créez des expressions régulières à la volée et utilisez l'expression régulière mise en cache pour faire correspondre d'autres journaux. Avec une détection de taxonomie supplémentaire, plus de granularité peut être ajoutée. Une version gratuite peut être téléchargée sous https://try.logxtender.net .

Mihnea
la source