Kennt jemand ein Tool zum Erkennen und Berichten über sich wiederholende Muster in einer Protokolldatei? [geschlossen]

12

Ich muss einige große verrauschte Protokolldateien (500 m / Tag) von einer Java-Anwendung (log4j) aus überwachen. Im Moment schaue ich mir die Dateien manuell an, grep nach "ERROR" und so weiter. Ein Tool sollte jedoch in der Lage sein, sich wiederholende Muster in der Datei zu erkennen, zu zählen und einen Drilldown für die Details einzelner Einträge bereitzustellen. Kennt jemand ein solches Tool? Eine text- oder webbasierte Benutzeroberfläche wäre schön.

David Tinker
quelle
1
Für mich schreit diese Frage absolut perl.
John Gardeniers
Hmm, es fängt an so auszusehen, als müsste ich ein Bash-Skript mit vielen Greps schreiben. Ich hatte gehofft, dass etwas die Muster automatisch herausfindet.
David Tinker
Im Ernst, genau dafür wurde Perl entwickelt. Sie können ein selbstlernendes Skript für diese Muster schreiben, obwohl dies hier offensichtlich nicht möglich ist.
John Gardeniers
stackoverflow.com/questions/2590251/… hat eine Lösung namens Kettensäge.
John aka hot2use
datadoghq.com/blog/log-patterns <- sehr zu empfehlen, aber obwohl es nicht verrückt teuer ist, ist es auch nicht super billig.
Neokyle

Antworten:

3

Ich habe von Leuten gehört, die Bayes'sche Filterung auf Protokolldateien anwenden, um interessante Dinge im Vergleich zu routinemäßigen Protokolleinträgen zu erkennen. Sie verwendeten Spam-Filter, bei denen die routinemäßigen uninteressanten Einträge als "gut" eingestuft wurden, während die ungewöhnlichen als "Spam" eingestuft wurden und diese Farbe verwendeten, durch die sie wechseln konnten.

Es klingt für mich sehr nach maschinellem Lernen, aber andererseits habe ich es nicht in Aktion gesehen, sondern nur bei Bier davon gehört.

Adamo
quelle
Dies scheint mir völlig vernünftig zu sein, und Sie könnten sogar sehr starke vorherige Annahmen (im Bayes'schen Sinne) über bestimmte Wörter haben, die immer in Serverprotokollen angezeigt werden.
DrewConway
Ja, das würde den Job machen. Kennt jemand eine Implementierung, die ich trainieren könnte?
David Tinker
Man könnte mit CRM114 beginnen, denke ich. Oder warten Sie, bis Drew Conway sein Machine Learning for Hackers veröffentlicht . Ich arbeite immer noch daran, den ursprünglichen Verweis auf das zu finden, was ich vorgeschlagen habe.
Adamo
Ja! Ich habe es 2005 in diesem Salbei-Mitglieder-Thread gelesen . Der Autor der E-Mail erwähnt Spamprobe .
Adamo
6

Splunk wirkt Wunder für diese Art von Sachen. Ich verwende es intern, um alle Protokolle zu sammeln und über die hervorragende browserbasierte Oberfläche schnell zu suchen.

Burhan Khalid
quelle
Leider würden wir wahrscheinlich die unfreie Version brauchen und es ist ein bisschen teuer
David Tinker
3

syslog-ng verfügt über eine Funktion mit dem Namen patterndb. Sie können Muster erstellen und Protokolleinträge in Echtzeit mit ihnen abgleichen und diese Einträge dann an separate Protokolldateien senden.

Stein
quelle
2

Beim Betrachten von syslog-ng und patterndb (+1 auf diese Antwort oben) stieß ich auf ein webbasiertes Tool namens ELSA: http://code.google.com/p/enterprise-log-search-and-archive/ . Es ist F / OSS in Perl, mit einer Weboberfläche und soll sehr schnell sein.

Ich habe es noch nicht ausprobiert, aber sobald ich mit patterndb gefiltert bin, werde ich ELSA ausprobieren.

EdwardTeach
quelle
1

Probieren Sie Petit aus .
Ich bin nicht sicher, ob es mit dem log4j-Format funktioniert, aber Sie können möglicherweise einen benutzerdefinierten Filter dafür schreiben.
Petit hat keine Weboberfläche, es zeigt Grafiken in Ihrer Shell an (ASCII art ftw!).
Es ist sehr nützlich, sich schnell wiederholende Nachrichten zu sehen und herauszufinden, wann sie häufiger auftraten oder häufiger auftraten.

Schwindler
quelle
0

Glogg ist ein sehr guter Protokoll-Explorer, da Sie die Möglichkeit haben, eine Filterbasis auf Zeichenfolge und Farblinie zu erstellen oder alle Vorkommen einer Zeichenfolge abzurufen.

http://glogg.bonnefon.org/

Alexandre Roux
quelle
0

Splunk ist normalerweise eine gute Lösung dafür. Aber Sie haben erwähnt, dass es Ihnen zu teuer ist. Ich empfehle Ihnen daher, sich Logstash oder GrayLog anzusehen .

Raffael Luthiger
quelle
-1

Sie können den LogXtender von SEQREL ausprobieren, der automatisch Muster erkennt und ähnliche Protokolle aggregiert. Der Weg besteht darin, reguläre Ausdrücke im laufenden Betrieb zu erstellen und den zwischengespeicherten regulären Ausdruck zu verwenden, um mit anderen Protokollen übereinzustimmen. Mit zusätzlicher Taxonomieerkennung kann mehr Granularität hinzugefügt werden. Eine kostenlose Version kann unter https://try.logxtender.net heruntergeladen werden .

Mihnea
quelle