API zum Analysieren von Protokolldateien

Ich suche nach einer API, die mir helfen kann, die Protokolldateien zu analysieren, die ich von meinem C#-Code aufrufen kann. Ich benötige keinen Viewer, da die Protokolle nicht angezeigt werden müssen. Das Parsen ist erforderlich, um Daten für eine maschinelle Lernanwendung zu generieren. Also ist jede API, die mir eine Liste von Datensätzen geben kann, gut genug, wenn ich den Pfad angebe.

Ich versuche es selbst zu finden, aber alles, was ich finden kann, sind die Log-Viewer, die versuchen, Daten in ihrem eigenen Stil anzuzeigen, viel Zufallsarbeit leisten, ihre eigene Benutzeroberfläche und Architektur haben. Was ich brauche, ist nur ihre Geschäftslogik in vorzugsweise einer DLL, wenn das Sinn macht. Wenn es sich um einen Webdienst handelt, funktioniert das auch. Solange ich darauf verweisen kann, rufe eine Funktion auf, übergebe den Dateipfad und erhalte die geparsten Daten in JSON oder einem Objekt.

Woher kennt der Dienst/die Software das Format der Protokolleinträge? Verschiedene Logger protokollieren Informationen in sehr unterschiedlichen Formaten. Zum Beispiel unterscheidet sich nginx log so sehr von Rails log.
Ich kann den Benutzer dazu bringen, das Format mithilfe einer einfachen Benutzeroberfläche zu definieren und dieses Format in XML oder etwas anderem zu speichern. Die Software kennt also den Serverpfad (konfigurierbar über die Benutzeroberfläche), den Protokolltyp und das Protokollformat.
Sie wollen also dem Logfile-Parsing-Dienst die Spezifikation der Logdatei mitteilen? Die "Spezifikation" scheint der wichtigste Teil des gewünschten Dienstes zu sein, also schreiben Sie im Grunde den gesamten Dienst sowieso selbst ...
Ich weiss. Die Sache ist, dass sich der Spezifikationsteil ändern kann, also suche ich im Grunde nur eine Klasse, die eine Liste von Parametern und Dateipfaden aufnehmen und sich um die gesamte Synchronität, das Lesen von Dateien und das Verwalten des USN-Journals usw. kümmern kann. Mehr oder weniger , ich suche nach einer Klasse zum Lesen von Dateien, denke ich.
Oh und natürlich, wenn die Klasse damit umgehen kann, die Datei über ein Netzwerklaufwerk zu lesen, sogar noch besser. Wenn ich also eine http- oder ftp-Adresse übergebe, kann es die Datei trotzdem lesen, sich um alles kümmern, was mit Serverfehlern zu tun hat usw.

Antworten (2)

Splunk

Sie können Splunk ausprobieren , eine fortschrittliche Analyse-Überwachungssoftware. Kann als Werkzeug zum Sammeln, Überwachen, Visualisieren und Analysieren von Maschinendaten aus beliebigen Quellen verwendet werden. Es ist eine kommerzielle Version, aber es ist auch eine kostenlose Testversion verfügbar.

Splunk bietet für jedes Feature eine API-Methode . Siehe: Lernprogramm zum Verwalten von Objekten .

Wenn Sie dabei Hilfe benötigen, stellen Sie Splunk-Fragen bei Stack Overflow .

Logstash

Sie können Logstash verwenden , eine serverseitige Open-Source-Datenverarbeitungspipeline, die Daten aus einer Vielzahl von Quellen gleichzeitig aufnimmt.

Sie können die vorhandenen Plugins auf GitHub überprüfen , ob Sie finden, wonach Sie suchen, oder Sie können Ihre eigenen schreiben.