10 Open Source-Protokollkollektoren für die zentrale Protokollierung

Der Unterschied zwischen mittelmäßigen und großartigen Produkten liegt in der Protokollierung. Erfahren Sie, warum es so ist und wie Sie alles zusammenbinden können.


Genau wie die Sicherheit ist die Protokollierung eine weitere Schlüsselkomponente von Webanwendungen (oder Anwendungen im Allgemeinen), die aufgrund alter Gewohnheiten und der Unfähigkeit, vorauszusehen, außer Kraft gesetzt wird. Was viele als nutzlose Unmengen digitaler Bänder ansehen, sind leistungsstarke Tools, mit denen Sie in Ihre Anwendungen schauen, Fehler korrigieren, Schwachstellen verbessern und Kunden begeistern können.

Bevor wir zur zentralisierten Protokollierung übergehen, schauen wir uns zunächst an, warum die Protokollierung so wichtig ist.

Zwei Arten (Ebenen) der Protokollierung

Computer sind deterministische Systeme, außer wenn dies nicht der Fall ist.

Als ein professioneller Entwickler, Ich bin auf viele Fälle gestoßen, in denen das beobachtete Verhalten der App jeden tagelang verwirrte, aber der Schlüssel immer in den Protokollen war. Jede Software, die wir ausführen, erstellt (oder sollte zumindest) Protokolle, die uns mitteilen, was sie durchgemacht hat, als die problematische Situation auftrat.

Aus meiner Sicht gibt es zwei Arten der Protokollierung: automatisch generiert Protokolle und vom Programmierer generiert Protokolle. Bitte beachten Sie, dass dies keine Unterscheidung zwischen Lehrbüchern ist. Wenn Sie mich zu dieser Terminologie zitieren, werden Sie in Schwierigkeiten geraten. ��

Das Bild oben zeigt, was als bezeichnet werden kann automatisch generiertes Protokoll.

In diesem speziellen Fall ist es ein WordPress-System, das einen unerwarteten Zustand (einen Hinweis) protokolliert, wenn PHP-Code ausgeführt wird. Protokolle wie diese werden ständig unermüdlich generiert – von Datenbank-Tools wie MySQL, Webservern wie Apache, Programmiersprachen und -umgebungen, Mobilgeräten und sogar Betriebssystemen.

Diese enthalten selten viel Wert und Programmierer kümmern sich nicht einmal darum, sie zu untersuchen, es sei denn, etwas geht schief. In solchen Momenten graben sie sich tief in die Protokolle ein und versuchen zu verstehen, was schief gelaufen ist.

Aber automatisch generierte Protokolle können nur so viel helfen. Wenn beispielsweise mehrere Personen Administratorzugriff auf eine Website haben und eine von ihnen eine wichtige Information löscht, ist es unmöglich, den Schuldigen mithilfe automatisch generierter Protokolle zu erkennen. Aus der Sicht der Systeme, die als Anwendung miteinander verbunden waren, war es nur ein weiterer Arbeitstag – jemand hatte die erforderliche Berechtigung, um eine Aufgabe auszuführen, und so führte das System sie aus.

Was hier benötigt wird, ist eine zusätzliche Ebene expliziter, umfassender Protokollierung, die Spuren für die menschliche Seite der Dinge erstellt. Das nenne ich Vom Programmierer generierte Protokolle, und sie bilden das Rückgrat sensibler Branchen wie des Bankwesens. Hier ist ein Beispiel dafür, wie ein solches Protokollierungsschema aussehen könnte:

Quelle: joomlatools.com

Protokollierung ist Strom

Angesichts dieser beiden Arten von Protokollen in einem System können Sie sie wie folgt nutzen und die Auswirkungen steigern.

Dem Kunden immer einen Schritt voraus sein

“Kundenfreude” ist als nutzloses Marketing-Gimmick bekannt geworden, aber dank der Protokollierung kann es sehr real gemacht werden. Ich kenne digitale Produkte, die ihre Protokolle wie ein Falke überwachen, und sobald ein Kunde etwas auf der Seite kaputt macht, kann er den Kunden anrufen und ihm Hilfe anbieten.

Denken Sie nur darüber nach – innerhalb von Sekunden, nachdem Sie einen hässlichen Fehler erhalten haben, erhalten Sie einen Anruf von der Firma, in dem steht: „Hey, ich verstehe, Sie haben versucht, diesen Artikel in den Warenkorb zu legen, aber er ist weiter gestorben. Ist es okay für mich, diese Zeit hinzuzufügen und die Bestellung für Sie abzuschließen? “

Begeisterter Kunde? Sie wetten!

Team Moral und Produktivität

Wie ich bereits sagte, werden die Entwickler in Ihrem Team frustriert und verlieren immer mehr Zeit, wenn Fehler lange Zeit nicht mehr verfolgt werden. Und hier ist die Sache mit dem Debuggen – es erfordert von Anfang an einen frischen, neugierigen Geist. Wenn eine WTF so viel in Ihr Gehirn eindringt, geht der gesamte Prozess für einen Wurf.

Und was macht das Debuggen schwierig? Nach meiner Erfahrung mangelnde Protokollierung oder mangelnde Protokollierungskenntnisse. Für den Anfang stellen Sie möglicherweise nicht fest, dass Ihre Lieblingsdatenbank auch nur eine weitere Software ist, die Protokolle generiert, oder Sie protokollieren Ihre Anwendung nicht ausführlich (siehe vom Programmierer generierte Protokolle oben)..

Ich erinnere mich besonders an einen Fall, in dem die Anwendung nicht mehr reagierte und niemand wusste warum. Einige Tage später war der Schuldige das Festplatten-E / A-Limit, das aufgrund übermäßigen Datenverkehrs erreicht wurde. Weil sich niemand die Mühe machte, dorthin zu schauen, konnte niemand herausfinden, warum.

Buchungsprotokolle

Was ist, wenn Ihr Kunde zwei Jahre später sagt, dass alle diese Bestellungen nicht von ihm, sondern von einem Hacker aufgegeben wurden??

Welches Argument müsste ihre Anfrage unterhalten oder ablehnen? Wenn Sie über eine umfassende Protokollierung verfügen (IP-Adresse, Datum und Uhrzeit, Kreditkarte usw.), können Sie all dies analysieren und eine Entscheidung treffen. Gut oder schlecht, es wird zumindest eine objektive Grundlage haben, anstatt einem Schuss im Dunkeln zu ähneln.

Quelle: Signatur-reads.com

Gleiches gilt, wenn Sie unter regulatorische Gesichtspunkte fallen oder im Rahmen eines neuen, wichtigen Projekts einer Prüfung durch Dritte unterzogen werden müssen. Wenn Sie kein robustes Protokollierungssystem haben, werden Sie in einem schlechten Licht erscheinen.

Bestehende Systeme verbessern

Wie können Sie ein aktuelles System verbessern??

Sollten Sie nur mehr RAM- und CPU-Threads darauf werfen? Was ist, wenn Ihre App trotz ausreichender Ressourcen langsam ist? Wo ist der Engpass? In den meisten Fällen ist die Protokollierung die Antwort.

Beispielsweise verfügen alle wichtigen Datenbanksysteme über eine Protokollierungsfunktion langsame Abfragen.

Quelle: speedawarenessmonth.com

Wenn Sie das langsame Abfrageprotokoll regelmäßig besuchen, erfahren Sie, welche Vorgänge und welche Zeit Sie am meisten benötigen, und decken so kleine, aber wichtige Bereiche auf, die bearbeitet werden müssen. Oft funktioniert eine kleine Änderung wie diese besser als die Verdoppelung der Hardwarekapazität.

Es wird nicht gezählt, auf wie viele Arten ein gutes Protokollierungssystem Ihnen hilft. Das vielleicht beste Argument ist, dass es sich um eine automatisierte Aktivität handelt, die nach dem Einrichten keine Überwachung benötigt und Sie eines Tages vor dem Ruin bewahrt.

Schauen wir uns einige der erstaunlichen Open Source-Protokollsammler (einheitliche Protokollierungstools) an. Für den Fall, dass Sie sich fragen, haben wir in einem früheren Beitrag kommerzielle Cloud-basierte Protokollierungstools behandelt.

Graylog

Graylog ist einer der führenden Namen in der Branche, wenn es um Protokollierungs- und Visualisierungsfunktionen auf Branchenebene geht. Es ist auch insofern einzigartig, als es Ihre gesammelten Protokolle auf Anzeichen von Sicherheitslücken überprüft und Sie sofort benachrichtigt.

Graylog ist zwar ein zentrales Protokollierungssystem, bietet jedoch die erforderliche Flexibilität, mit der Sie Warnungen, Dashboards und mehr anpassen können.

Greylog ist Open Source, Es gibt jedoch einen Unternehmensplan, wenn Ihre Anforderungen komplex sind.

Mit Kunden wie SAP, Cisco und LinkedIn ist Graylog ein Tool, dem Sie mit geschlossenen Augen vertrauen können.

Logstash

Wenn Sie ein Fan oder Benutzer des Elastic-Stacks sind, Logstash ist einen Besuch wert (der ELK-Stack ist bereits eine Sache, falls Sie es nicht wussten). Wie bei anderen Protokollierungswerkzeugen in dieser Liste ist Logstash vollständig Open Source, So haben Sie die Freiheit, nach Ihren Wünschen bereitzustellen und zu verwenden.

Aber lassen Sie sich nicht irreführen: Logstash ist ein Mutterschiff mit Funktionen, die jedes bescheidene Protokollierungswerkzeug bei weitem überwiegen. Es ist in der Lage, große Datenmengen von mehreren Plattformen zu erfassen, Ihre eigenen Datenpipelines zu definieren und auszuführen, unstrukturierte Protokollspeicherauszüge zu verstehen und vieles mehr.

Die einzige Einschränkung besteht natürlich darin, dass es nur mit der Elastic-Produktsuite funktioniert. Wenn Sie jedoch anfangen und bald skalieren möchten, ist Logstash der richtige Weg!

Fließend

Unter den zentralisierten Protokollierungswerkzeugen, die als mittlere Schicht für die Datenaufnahme fungieren, Flutend ist eine Premiere unter Gleichen. Mit einer hervorragenden Bibliothek von Plugins kann Fluentd Daten aus praktisch jedem Produktionssystem erfassen, in die gewünschte Struktur kneten, eine benutzerdefinierte Pipeline erstellen und sie Ihrer bevorzugten Analyseplattform zuführen, sei es MongoDB oder Elasticsearch.

Fluentd basiert auf Ruby und ist vollständig Open Source, und ist aufgrund seiner Flexibilität und Modularität sehr beliebt.

Da große Unternehmen wie Microsoft, Atlassian und Twilio die Plattform nutzen, hat Fluentd nichts zu beweisen. ��

Gerinne

Wenn wirklich, wirklich große Datenmengen Ihre Herausforderung sind und Sie schließlich alles in etwas wie Hadoop einspeisen möchten, Gerinne ist eine der besten Entscheidungen. Es ist ein “reines” Open Source-Projekt in dem Sinne, dass es von unserer geliebten Apache Foundation verwaltet wird, was bedeutet, dass es keinen Unternehmensplan gibt.

Dies kann genau das sein, wonach Sie suchen. ��

Quelle: beyondcoder.com

Der Quellcode von Flume wurde in Java geschrieben (was mich immer wieder überrascht, wenn es um bahnbrechende Technologie geht) öffnen. Flume ist am besten für Sie geeignet, wenn Sie nach einer verteilten, fehlertoleranten Datenerfassungsplattform für Hochleistungsgeräte suchen.

Octopussy

Ich gebe es null von zehn für die Produktbenennung, aber Octopussy kann eine gute Wahl sein, wenn Ihre Anforderungen einfach sind und Sie sich fragen, worum es bei der ganzen Aufregung in Bezug auf Pipelines, Aufnahme, Aggregation usw. geht.

Meiner Meinung nach deckt Octopussy die Anforderungen der meisten Produkte ab (geschätzte Statistiken sind nutzlos, aber wenn ich raten müsste, würde ich sagen, dass 80% der Anwendungsfälle in der realen Welt behandelt werden)..

Octopussy hat keine großartige Benutzeroberfläche (siehe Hier) überhaupt, aber es gleicht es in Bezug auf Geschwindigkeit und mangelndes Aufblähen aus. Die Quelle ist am verfügbar GitHub, wie erwartet, und ich denke, es ist einen ernsthaften Blick wert.

LOGalyse

LOGalyse war ein kommerzielles Produkt, das kürzlich als Open Source hergestellt wurde. Obwohl ich das Projekt auf GitHub nicht ausführen konnte, wird ein Windows-Installationsprogramm und der gesamte Quellcode heruntergeladen.

Wenn Sie eine Community anstreben, finden Sie Details zu einer Mailingliste Hier.

LOGalyze ist ein relativ flexibles und leistungsstarkes Angebot, das sich gut für Bereitstellungen auf einem System eignet, bei denen die Protokollierung aus bekannten Quellen wie Postfix, Apache usw. kombiniert und die Ausgabe in CSV-, PDF-, HTML- oder ähnlichen Formaten erstellt werden soll. Ja, es macht nicht alles, aber da es einmal ein kommerzielles Produkt war, ist es ziemlich gut.

LogPacker

Bei der Auswahl eines Tools für den Job habe ich zwei Kriterien: Es muss fokussiert sein und durch ein aktives Geschäftsmodell unterstützt werden. Das Problem mit Open-Source-Software besteht im Allgemeinen darin, dass einige Monate / Jahre später die Wahrscheinlichkeit einer Stagnation oder des Todes hoch ist. Es gibt keine Zählung, wie viele Protokollierungswerkzeuge mit Begeisterung gestartet wurden, nur um sie jetzt auf dem GitHub-Friedhof zu finden.

Gemessen an diesem Maßstab, LogPacker ist ein Favorit für mich.

Wie Sie dem Screenshot entnehmen können, dreht sich bei LogPacker alles um Protokolle und sonst nichts. Ihr Vorstoß geht definitiv in Richtung ihrer Cloud-Angebote, aber Sie können es gerne herunterladen und auf Ihren Servern installieren (GitHub-Seite Hier).

Clustering und Aggregation sind für diejenigen verfügbar, die es nicht trivial verwenden möchten, und Unternehmenspläne sind verfügbar, die mit der API arbeiten möchten oder größere Bereitstellungen benötigen. Meiner Meinung nach ist eine erfrischend minimalistische (fokussierte, wenn auch nicht funktionsarme) Protokollierungsverwaltung!

Logwatch

Ich bin sicher, es gibt diejenigen unter uns, die nicht alle Zeremonien mit einem “einheitlichen”, “zentralisierten” Protokollierungssystem verbinden möchten. Ihr Geschäft kommt von einzelnen Servern und sie suchen nach etwas schnellem und effizientem, um ihre Protokolldateien zu überwachen. Sag Hallo zu Logwatch.

Nach der Installation kann LogWatch Ihre Systemprotokolle scannen und einen Bericht des gewünschten Typs erstellen. Es ist jedoch eine etwas veraltete Software (lesen Sie “zuverlässig”) und wurde in Perl geschrieben. Sie benötigen also Perl 5.6+ auf Ihrem Server, um es auszuführen. Ich habe keine Screenshots zum Teilen, da es sich um einen rein dämonisierten Befehlszeilenprozess handelt.

Wenn Sie ein CLI-Junkie sind und die alte Art der Arbeit lieben, werden Sie Logwatch lieben!

Syslog-ng

Das Syslog-ng Das Tool wurde entwickelt, um Syslog-Datendateien (ein etabliertes Client-Server-Protokoll für die Systemprotokollierung) in Echtzeit zu verarbeiten. Im Laufe der Zeit wurden jedoch andere Datenformate unterstützt: unstrukturiert, SQL und NoSQL. Wie das Syslog-Protokoll funktioniert, ist in der folgenden Abbildung ziemlich gut zusammengefasst.

syslog-ng ist ein zuverlässiges Tool zum Sammeln und Klassifizieren von Protokollen in Produktionsqualität, das in C geschrieben wurde und seit langem ein etablierter Name in der Branche ist. Das Beste daran ist die Erweiterbarkeit, mit der Sie Plugins in C, Python, Java, Lua oder Perl schreiben können.

lnav

Abkürzung für (Log Navigator), lnav ist ein reines Terminal-Tool, das auf einem einzelnen Computer und einem einzelnen Verzeichnis funktioniert. Dies ist für diejenigen gedacht, deren Protokollierung in einem einzigen Verzeichnis vereinheitlicht ist oder die Echtzeitprotokolle aus einer einzigen Quelle filtern und anzeigen möchten.

Wenn Sie dachten, lnav sei nichts anderes als verherrlichter Schwanz, würden Sie sich irren. Es gibt verschiedene Funktionen, in die Sie sich verlieben werden: Zeitreihenansicht, hübsches Drucken (für JSON und andere Formate), farbcodierte Protokollquellen, leistungsstarke Filter, die Fähigkeit, mehrere Protokollierungsprotokolle zu verstehen und vieles mehr.

Es ist nur so, dass Sie manchmal eine problemlose, Null-Einrichtung, möglicherweise temporäre Protokollierungsebene wünschen und lnav perfekt zur Rechnung passt!

Fazit

Und da hast du es!

Es war schwierig, eine Liste zu erstellen, um ehrlich zu sein, da die Protokollierung nicht so beliebt ist wie beispielsweise das Content-Management, und alle Mindshare-Funktionen scheinen von drei oder vier Tools erfasst worden zu sein. Trotzdem sind die Bedürfnisse aller unterschiedlich und ich habe versucht, sie umfassend abzudecken.

Von albernen Kommandozeilen-Tools ohne Setup bis hin zu ausgewachsenen Datenjuggernauten – hier ist alles! Habe ich etwas verpasst? Natürlich habe ich! Bitte lassen Sie es mich in den Kommentaren wissen und ich werde es gerne hier hinzufügen (natürlich mit Credits!).

STICHWORTE:

  • Open Source

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map