11 Open-Source-Protokollsammler für die zentrale Protokollierung

Veröffentlicht in: Articles | 0

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

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 Acht gelassen wird. Was viele als nutzlose Reams von Digital Tape sehen, sind leistungsstarke Tools, um in Ihre Anwendungen zu schauen, Fehler zu korrigieren, Schwachstellen zu verbessern und Kunden zu begeistern.,

Bevor wir zur zentralen Protokollierung übergehen, schauen wir uns zunächst an, warum die Protokollierung eine so große Sache ist.

Zwei Arten (Ebenen) der Protokollierung

Computer sind deterministische Systeme, außer wenn sie es nicht sind.

Als professioneller Entwickler bin ich auf viele Fälle gestoßen, in denen das beobachtete Verhalten der App tagelang alle verblüffte, aber der Schlüssel war immer in den Protokollen. Jede Software, die wir ausführen, erzeugt (oder sollte zumindest generieren) Protokolle, die uns sagen, was es durchgemacht hat, als die problematische Situation auftrat.,

Jetzt ist die Protokollierung, wie ich sie sehe, von zwei Arten: automatisch generierte Protokolle und vom Programmierer generierte Protokolle. Bitte beachten Sie, dass dies keine Lehrbuchdifferenzierung ist, und wenn Sie mich zu dieser Terminologie zitieren, werden Sie in Schwierigkeiten geraten. 😉

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

In diesem speziellen Fall handelt es sich um ein WordPress-System, das eine unerwartete Bedingung (einen Hinweis) protokolliert, wenn PHP-Code ausgeführt wird., Protokolle wie diese werden ständig unermüdlich generiert — von Datenbanktools wie MySQL, Webservern wie Apache, Programmiersprachen und-umgebungen, mobilen Geräten und sogar Betriebssystemen.

Diese enthalten selten viel Wert, und Programmierer kümmern sich nicht einmal darum, sie zu untersuchen, außer wenn etwas schief geht. In solchen Momenten graben sie sich tief in die Baumstämme 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 Site haben und eine von ihnen eine wichtige Information löscht, ist es unmöglich, den Täter mithilfe automatisch generierter Protokolle zu erkennen. Aus der Sicht der Systeme, die als Anwendung zusammengebunden waren, war es nur ein weiterer Tag im Job — 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, umfangreicher Protokollierung, die Trails für die menschliche Seite der Dinge erstellt., Dies sind, was ich als Programmierer generierte Protokolle, und sie bilden das Rückgrat der sensiblen Branchen wie Banken. Hier ist ein Beispiel dafür, wie ein solches Protokollierungsschema aussehen könnte:

Source: joomlatools.com

Die Protokollierung ist power

Angesichts dieser beiden Arten von Protokollen in einem System können Sie sie nutzen und die Auswirkungen erhöhen.

Dem Kunden voraus bleiben

„Customer Delight“ 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 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, die sagt: „Hey, ich verstehe, dass Sie versucht haben, diesen Artikel in den Warenkorb zu legen, aber er starb weiter. Ist es okay für mich, dieses Mal hinzuzufügen und die Bestellung für Sie abzuschließen?“

Zufriedener Kunde? Sie wetten!,

Teammoral und Produktivität

Wie ich bereits sagte, wenn Fehler lange Zeit nicht verfolgt werden, werden die Entwickler in Ihrem Team frustriert und verlieren immer mehr Zeit, um ihren Schwänzen nachzujagen. Und hier ist die Sache mit dem Debuggen — es erfordert von Anfang an einen frischen, neugierigen Geist. Wenn ein WTF-Gedanke so viel wie 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 Kenntnis der Protokollierung., Für den Anfang können Sie nicht erkennen, dass Ihre Lieblings-Datenbank ist auch nur ein weiteres Stück Software, die Protokolle erzeugt, oder Sie werden nicht ausgiebig in Ihrer Anwendung anmelden (siehe Programmierer generierten Protokolle oben).

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

Audit Trails

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

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

Quelle: Signatur-liest.,com

Dasselbe gilt, wenn Sie unter eine regulatorische Kontrolle geraten oder sich im Rahmen eines neuen, wichtigen Projekts einem Audit durch Dritte unterziehen müssen. Wenn Sie kein robustes Protokollierungssystem haben, werden Sie in einem schlechten Licht angezeigt.

Verbesserung bestehender Systeme

Wie gehen Sie mit der Verbesserung des aktuellen Systems um?

Sollten Sie nur mehr RAM-und CPU-Threads darauf werfen? Was ist, wenn Ihre App trotz genügend Ressourcen langsam ist? Wo ist der Engpass? Meistens ist die Protokollierung die Antwort.,

Zum Beispiel verfügen alle wichtigen Datenbanksysteme über eine Funktion zum Protokollieren langsamer Abfragen.

Source: speedawarenessmonth.com

Wenn Sie das langsame Abfrageprotokoll regelmäßig besuchen, erfahren Sie, welche Vorgänge am häufigsten ausgeführt werden und decken daher kleine, aber wichtige Bereiche auf, die Arbeit benötigen. Oft funktioniert eine kleine Änderung wie diese besser als die Verdoppelung der Hardwarekapazität.

Es gibt keine Zählung, wie viele Möglichkeiten ein gutes Logging-System Ihnen hilft., Das vielleicht beste Argument ist, dass es sich um eine automatisierte Aktivität handelt, die einmal eingerichtet wurde, keine Überwachung benötigt und Sie eines Tages vor dem Ruin bewahrt.

Wenn das nicht im Weg ist, schauen wir uns einige der erstaunlichen Open-Source-Protokollsammler (Unified Logging Tools) 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 branchenspezifische Protokollierungs-und Visualisierungsfunktionen geht., Es ist auch insofern einzigartig, als es Ihre gesammelten Protokolle nach Anzeichen von Sicherheitslücken durchsucht und Sie sofort benachrichtigt.

Während Graylog ein zentrales Protokollierungssystem ist, bietet es die Flexibilität, die Sie benötigen, sodass Sie Warnungen, Dashboards und mehr anpassen können.

Greylog ist open-source, aber es gibt einen enterprise-plan, wenn Ihre Anforderungen Komplex sind.

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

Logstash

Wenn Sie ein Fan oder Benutzer des Elastic Stacks sind, lohnt sich Logstash (der ELK Stack ist bereits eine Sache, falls Sie es nicht wussten). Wie andere Protokollierungstools in dieser Liste ist Logstash vollständig Open Source, sodass Sie nach Belieben bereitstellen und verwenden können.

Aber lassen Sie sich nicht in die Irre fü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 sammeln, ermöglicht es Ihnen, Ihre eigenen Datenpipelines zu definieren und auszuführen, machen Sinn für unstrukturierte Log-Dumps und vieles mehr.,

Natürlich ist die einzige Einschränkung, dass es nur mit der Elastic Suite von Produkten funktioniert, aber wenn Sie anfangen und bald skalieren möchten, ist Logstash der richtige Weg!

Fluentd

Flutend ist unter zentralisierten Protokollierungstools, die als mittlere Ebene für die Datenaufnahme fungieren, 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, ist vollständig Open Source und aufgrund seiner Flexibilität und Modularität sehr beliebt.

Mit großen Unternehmen wie Microsoft, Atlassian und Twilio, die die Plattform nutzen, hat Fluentd nichts zu beweisen. 🙂

Flume

Wenn wirklich wirklich große Datensätze Ihre Herausforderung sind und Sie schließlich alles in so etwas wie Hadoop einspeisen möchten, ist Flume 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 sein oder auch nicht, was Sie genau suchen. 🙂

Quelle: beyondcoder.com

In Java geschrieben (was mich weiterhin erstaunt, wenn es um bahnbrechende Technologien geht), ist der Quellcode von Flume völlig offen. Flume eignet sich am besten für Sie, wenn Sie nach einer verteilten, fehlertoleranten Datenaufnahmeplattform für Hochleistungsgeräte suchen.,

Octopussy

Ich gebe Null von zehn für die Produktbenennung, aber Octopussy kann eine gute Wahl sein, wenn Ihre Anforderungen einfach sind und Sie sich fragen, was all das Aufhebens um Pipelines, Verschlucken, Aggregation usw. ist., ist alles über.

Meiner Meinung nach deckt Octopussy die Bedürfnisse der meisten Produkte ab (geschätzte Statistiken sind nutzlos, aber wenn ich raten müsste, würde ich sagen, es kümmert sich um 80% der Anwendungsfälle in der realen Welt).

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

Rsyslog

Rsyslog steht für ein raketenschnelles System zur Protokollverarbeitung.

Es ist ein Dienstprogramm für Unix-ähnliche Betriebssysteme. Technisch gesehen handelt es sich um einen Message Router mit dynamisch ladbaren Ein-und Ausgängen und ist hochgradig konfigurierbar.

Es kann Eingaben von mehreren Datenquellen annehmen, transformieren und die Ausgabe an mehrere Ziele senden. Mit Rsyslog können Sie 1 Million Nachrichten pro Sekunde über lokale Ziele übermitteln.,

Rsyslog bietet auch einen Windows-Agenten, der sehr eng mit dem Rsyslog Linux-Agenten arbeitet. Es wird für die Integration zwischen den beiden Umgebungen verwendet. Dieser Windows-Agent wird verwendet, um die Ereignisprotokolle von Windows weiterzuleiten und den Dateiüberwachungsdienst einzurichten.

Im Folgenden sind weitere Funktionen von Rsyslog angeboten:

  • Flexible Konfigurationen
  • Bietet Multi-Threading-Funktionen
  • Protokolldatei Manipulation Schutz mit Protokollsignaturen und Verschlüsselung.,
  • Unterstützt Big-Data-Plattformen
  • Bietet Content-basierte Filterfunktionen

LOGalyze

LOGalyze war ein kommerzielles Produkt, das vor kurzem Open Source gemacht wurde. Obwohl ich das Projekt auf GitHub nicht konnte, machen sie ein Windows-Installationsprogramm und den gesamten Quellcode herunterladbar.

Wenn Sie sich für eine Community interessieren, finden Sie hier Details zu einer Mailingliste.

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

LogPacker

Wenn es um die Auswahl eines Tools für den Job geht, habe ich zwei Kriterien: Es muss fokussiert sein und es muss von einem aktiven Geschäftsmodell unterstützt werden. Das Problem mit Open-Source-Software, im Allgemeinen, ist, dass ein paar Monate / Jahre auf der Straße, Chancen auf Stagnation oder Tod sind hoch. Es gibt keine Zählung, wie viele Protokollierungswerkzeuge mit Begeisterung gestartet wurden, nur um jetzt auf dem GitHub-Friedhof zu finden.,

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

Wie Sie dem Screenshot entnehmen können, dreht sich bei LogPacker alles um Protokolle und sonst nichts. Ihr Push ist definitiv in Richtung ihrer Cloud-Angebote, aber Sie sind mehr als willkommen, es herunterzuladen und auf Ihren Servern zu 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., Eine erfrischend minimalistische (fokussierte, wenn auch nicht funktionsarme) Einstellung zum Protokollierungsmanagement, meiner Meinung nach!

Logwatch

Ich bin sicher, dass es unter uns diejenigen gibt, die nicht alle Daten mit einem „einheitlichen“ „zentralisierten“ Protokollierungssystem verknüpfen möchten. Ihr Geschäft kommt von einzelnen Servern und sie suchen nach etwas Schnellem und Effizientem zum Ansehen ihrer Protokolldateien. Nun, 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 zu teilen, da es sich um einen rein befehlszeilengesteuerten Prozess handelt.

Wenn Sie ein CLI-Junkie sind und eine Liebe für die Old-School-Art haben, Dinge zu tun, werden Sie Logwatch lieben!

Syslog-ng

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

syslog-ng ist ein zuverlässiges Protokollsammlungs-und Klassifizierungswerkzeug in Produktionsqualität, das in C geschrieben wurde und seit langem ein etablierter Name in der Branche ist. Der beste Teil ist seine Erweiterbarkeit, so dass Sie Plugins in C, Python, Java, Lua oder Perl schreiben können.

lnav

Kurz für (Log Navigator), lnav ist ein reines Terminal-Tool, das auf einer einzigen Maschine, einzelnes Verzeichnis funktioniert., Es ist für diejenigen, die ihre Protokollierung in einem einzigen Verzeichnis vereinheitlicht haben oder Echtzeit-Protokolle aus einer einzigen Quelle filtern und anzeigen möchten.

Wenn Sie dachten, lnav war nichts weiter als verherrlichte tailf |grep Sie würden falsch sein. Es gibt verschiedene Funktionen, mit denen Sie sich verlieben können: Zeitreihenansicht, Pretty-Printing (für JSON und andere Formate), farbcodierte Protokollquellen, leistungsstarke Filter, die Möglichkeit, mehrere Protokollierungsprotokolle zu verstehen, und vieles mehr.,

Es ist nur so, dass Sie manchmal eine problemlose, Null-Setup -, vielleicht-temporäre Protokollierungsschicht wünschen, und lnav passt perfekt zur Rechnung!

Fazit

Und da hast du es!

Es war eine schwer zu kompilierende Liste, um ehrlich zu sein, da Protokollierung nicht so beliebt ist wie beispielsweise Content Management, und alle Mindshare scheint von drei oder vier Tools erfasst worden zu sein. Dennoch sind alle Bedürfnisse unterschiedlich, und ich habe versucht, sie umfassend zu decken.

Von albernen Befehlszeilen-Tools ohne Setup bis hin zu ausgewachsenen Datenjongleuren ist alles hier! Habe ich etwas vermisst? Natürlich habe ich!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.