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.
Genau wie die Sicherheit ist die Protokollierung eine weitere Schlüsselkomponente von Webanwendungen (oder Anwendungen im Allgemeinen), die aufgrund veralteter Daten ins Abseits gedrängt wirdbits und die Unfähigkeit, nach vorne zu sehen. Was viele als nutzlose Unmengen digitaler Bänder ansehen, sind leistungsstarke Werkzeuge, um in Ihre Anwendungen zu blicken, Fehler zu korrigieren, Schwachstellen zu verbessern und Kunden zu begeistern.
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 EntwicklerIch bin auf viele Fälle gestoßen, in denen das beobachtete Verhalten der App jeden tagelang verblüffte, der Schlüssel aber immer in den Protokollen lag. Jede von uns ausgeführte Software erzeugt (oder sollte zumindest generieren).ate)-Protokolle, die uns sagen, was passiert ist, als die problematische Situation auftrat.
Aus meiner Sicht gibt es zwei Arten der Protokollierung: Auto-Generatorated Protokolle und Programmierer-Generatorated Protokolle. Bitte beachten Sie, dass dies keine Lehrbuchdifferenzierung ist. Wenn Sie mich zu dieser Terminologie zitieren, werden Sie in Schwierigkeiten geraten. 😉

Das Bild oben zeigt, was als bezeichnet werden kann Auto-Generatorated log.
In diesem speziellen Fall handelt es sich um ein WordPress-System, das beim Ausführen von PHP-Code einen unerwarteten Zustand (einen Hinweis) protokolliert. Protokolle wie diese werden generischated ständig unermüdlich – durch Datenbanktools wie MySQL, Webserver wie Apache, Programmiersprachen und Umgebungen, mobile Geräte und sogar Betriebssysteme.
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 Protokolle ein und versuchen zu verstehen, was schief gelaufen ist.
Aber Auto-Generated-Protokolle können nur begrenzt helfen. Wenn beispielsweise mehrere Personen Administratorzugriff auf eine Website haben und einer von ihnen zufällig eine wichtige Information löscht, ist es mithilfe der automatischen Generierung unmöglich, den Schuldigen zu ermittelnated Protokolle. Aus der Sicht der als Anwendung miteinander verbundenen Systeme war es nur ein ganz normaler Tag im Job – jemand hatte die nötige Autorität, um eine Aufgabe auszuführen, und so wurde sie vom System ausgeführt.
Was hier benötigt wird, ist eine zusätzliche Ebene expliziter, umfassender Protokollierung, die erstellt wirdates Spuren für die menschliche Seite der Dinge. Das nenne ich so Programmierer-Generatorated Protokolleund sie bilden das Rückgrat sensibler Branchen wie des Bankwesens. Hier ist ein Beispiel, wie ein solches Protokollierungsschema aussehen könnte:

Protokollierung ist Strom
Angesichts dieser beiden Arten von Protokollen in einem System erfahren Sie hier, wie Sie dies tun können leverAlter sie und ramp up the impact.
Dem Kunden immer einen Schritt voraus sein
„Kundenbegeisterung“ ist als nutzloser Marketing-Gag bekannt, kann aber dank der Protokollierung sehr real umgesetzt werden. Ich kenne digitale Produkte monitor Sie durchsuchen ihre Protokolle wie ein Falke, und sobald ein Kunde etwas auf der Seite kaputt macht, können sie den Kunden anrufen und ihm Hilfe anbieten.

Denken Sie nur darüber nach - innerhalb von Sekunden nach Erhalt einer hässlicher FehlerSie erhalten einen Anruf von der Firma, in dem steht: „Hey, ich verstehe, Sie haben versucht, diesen Artikel in den Warenkorb zu legen, aber er starb weiter. 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, sind die Entwickler in Ihrem Team frustriert, wenn Fehler lange Zeit unentdeckt bleibenated und verlieren immer mehr Zeit damit, ihnen nachzujagen. Und hier ist die Sache mit Debugging – es erfordert von Anfang an einen frischen, neugierigen Geist. Wenn ein WTF-Gedanke auch nur in Ihr Gehirn eindringt, dann das Ganze process macht einen Wurf.

Und was macht das Debuggen schwierig? Nach meiner Erfahrung mangelt es an Protokollierung oder es mangelt an Kenntnissen über die Protokollierung. Zunächst einmal ist Ihnen möglicherweise nicht klar, dass Ihre Lieblingsdatenbank auch nur eine weitere Software dieser Art istates-Protokolle, oder Sie protokollieren nicht umfangreich in Ihrer Anwendung (siehe Programmierer-Generatorated Protokolle über).
Ich erinnere mich besonders an einen Fall, bei dem die Anwendung nicht reagierte und niemand wusste, warum. Ein paar Tage later, der Schuldige war das aufgrund übermäßigen Datenverkehrs erreichte Festplatten-I/O-Limit. 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 all diese Bestellungen nicht von ihm, sondern von einigen aufgegeben wurden? Hacker?
Mit welchem Argument müssten sie ihren Antrag unterstützen oder ablehnen? Bei umfangreicher Protokollierung (IP-Adresse, date und Zeit, Kreditkarte usw.), dann können Sie das alles analysieren und eine Entscheidung treffen. Ob gut oder schlecht, es wird zumindest eine objektive Grundlage haben und nicht einem Schuss im Dunkeln ähneln.

Das Gleiche gilt, wenn Sie unter eine behördliche Aufsichtspflicht fallen oder sich einer solchen unterziehen müssen third-Party-Audit im Rahmen eines neuen, wichtigen Projekts. Wenn Sie nicht über ein robustes Protokollierungssystem verfügen, werden Sie in ein schlechtes Licht gerückt.
Bestehende Systeme verbessern
Wie können Sie das aktuelle 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.

Wenn Sie das langsame Abfrageprotokoll regelmäßig besuchen, erfahren Sie, welche Vorgänge und welche Zeit Sie 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 gibt unzählige Möglichkeiten, wie Ihnen ein gutes Protokollierungssystem hilft. Das vielleicht beste Argument ist, dass es sich um ein Automatikgetriebe handeltated Aktivität, die, sobald sie eingerichtet ist, keine mehr benötigt monitoring, und wird dich eines Tages vor dem Ruin bewahren.
Schauen wir uns einige der erstaunlichen Open Source Log Collectors (einheitliche Protokollierungswerkzeuge) an. Für den Fall, dass Sie sich fragen, haben wir kommerzielle Cloud-basierte Protokollierungstools in einem behandelt früheren Post.
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.

Graylog ist Open Source, aber es gibt ein Unternehmenrise Planen Sie, wenn Ihre Anforderungen komplex sind.
Mit Kunden wie SAP, Cisco und LinkedIn ist Graylog ein Tool, dem Sie mit geschlossenen Augen vertrauen können.
Logstasch
Wenn Sie ein Fan oder Benutzer des Elastic-Stacks sind, Logstasch ist einen Blick wert (der ELK-Stack ist bereits vorhanden, falls Sie es nicht wussten). Wie andere Protokollierungstools auf dieser Liste ist Logstash vollständig Open Source und ermöglicht Ihnen das freedom Sie können es nach Ihren Wünschen einsetzen und verwenden.

Aber lassen Sie sich nicht täuschen: Logstash ist ein Mutterschiff mit Fähigkeiten, die jedes einfache Protokollierungstool bei weitem übertreffen. Es ist in der Lage, große Datenmengen von mehreren zu sammeln platFormulare ermöglichen es Ihnen, 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 Plugin-Bibliothek ist Fluentd in der Lage, Daten von Virtu zu erfassenally Beliebiges Produktionssystem, kneten Sie es in die gewünschte Struktur, erstellen Sie eine benutzerdefinierte Pipeline und geben Sie sie an Ihre bevorzugten Analysen weiter platForm, 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.
Mit großen Unternehmen wie Microsoft, Atlassian und Twilio Verwendung der platForm hat Fluentd nichts zu beweisen. 🙂
Ücretsiz TJ ve AG casinolarda bonus kodlarını spin →
Wenn bzglallyreally Große Datenmengen sind Ihre Herausforderung und Sie selbstally möchte alles in etwas wie Hadoop einspeisen, Ücretsiz TJ ve AG casinolarda bonus kodlarını spin → ist eine der besten Möglichkeiten überhaupt. Es ist ein „reines“ Open-Source-Projekt in dem Sinne, dass es von unserer geliebten Apache Foundation verwaltet wird, was bedeutet, dass es kein Unternehmen gibtrise Plan.
Dies kann genau das sein, wonach Sie suchen. 🙂

Der Quellcode von Flume wurde in Java geschrieben (was mich immer wieder überrascht, wenn es um bahnbrechende Technologie geht) XNUMXh geöffnet. Flume eignet sich am besten für Sie, wenn Sie eine verteilte, fehlertolerante Datenerfassung suchen platForm für schwere Sachen.
Octopussy
ich gebe es zero von zehn für die Produktbenennung, aber Octopussy kann eine gute Wahl sein, wenn Ihre Bedürfnisse einfach sind und Sie sich fragen, was das Ganze soll related zu Pipelines, Aufnahme, Aggregation usw., dreht sich alles um.
Meiner Meinung nach deckt Octopussy die Bedürfnisse der meisten verfügbaren Produkte ab (Schätzung).ated-Statistiken sind nutzlos, aber wenn ich raten müsste, würde ich sagen, dass es 80 % der Anwendungsfälle in der realen Welt abdeckt.

Octopussy hat überhaupt keine großartige Benutzeroberfläche, aber es macht es in Bezug auf Geschwindigkeit und fehlendes Aufblähen wieder wett. Die Quelle ist verfügbar unter GitHubWie erwartet, und ich denke, es ist einen ernsthaften Blick wert.
rsyslog
rsyslog steht für ein raketenschnelles System für Log processing.
Es ist ein Dienstprogramm für Unix-ähnliche Betriebssysteme. Technisch gesehen handelt es sich um einen Nachrichtenrouter mit Dynamikally ladbare Ein- und Ausgänge und ist hochgradig konfigurierbar.
Es kann Eingaben aus mehreren Datenquellen entgegennehmen, 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 eine Windows Agent das sehr eng mit dem Rsyslog-Linux-Agenten zusammenarbeitet. Es dient der Integration zwischen den beiden Umgebungen. Das windowDer Agent wird zum Weiterleiten der Ereignisprotokolle von verwendet windows und Setup-Datei monitor Bedienung.
Nachfolgend finden Sie weitere Funktionen von Rsyslog:
- Flexible Konfigurationen
- Bietet Multithreading-Funktionen
- Schutz vor Protokolldateimanipulation mithilfe von Protokollsignaturen und encryption.
- Unterstützt Big Data platFormen
- Bietet inhaltsbasierte Filterfunktionen
Grafana Loki
Inspiriert durch Prometheus, Grafana Loki ist eine mandantenfähige Protokollaggregationslösung.

Die Loki-Lösung ist kostengünstig, indiziert nur Metadaten und kann an ein beliebtes System wie Kubernetes, Prometheus, Linux, SQL usw. angeschlossen werden. Sie können dies überprüfen Erste Schritte um Ihr zu installieren und zu sehenself wie es funktioniert.
Logwatch
Ich bin mir sicher, dass es diejenigen unter uns gibt, die nicht alle Zeremonien-Assoziationen wollenated mit einem „einheitlichen“, „zentralisierten“ Protokollierungssystem. Ihr Geschäft basiert auf einzelnen Servern und sie suchen nach einer schnellen und effizienten Möglichkeit, ihre Protokolldateien zu überwachen. Nun, sagen Sie Hallo Logwatch.
Nach der Installation kann LogWatch Ihre Systemprotokolle scannen und erstellenate einen Bericht der gewünschten Art. Es ist ein etwas dated Stück Software (sprich „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 eine reine Befehlszeile handelt, dämonisiert process.
Wenn Sie ein CLI-Junkie sind und die alte Art der Arbeit lieben, werden Sie Logwatch lieben!
Syslog-ng
Der Syslog-ng Das Tool wurde entwickelt, um dies zu erreichen process Syslog (ein etabliertes Client-Server-Protokoll zur Systemprotokollierung) Datendateien in Echtzeit. Im Laufe der Zeit wurden jedoch auch andere Datenformate unterstützt: unstrukturiert, SQL und NoSQL. Die Funktionsweise des Syslog-Protokolls ist in der folgenden Abbildung ziemlich gut zusammengefasst.

syslog-von 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.
Inv
Abkürzung für (Log Navigator), Inv ist ein reines Terminal-Tool, das auf einem einzelnen Computer und einem einzelnen Verzeichnis funktioniert. Es 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 weiter als verherrlicht tailf |
grep
du würdest falsch liegen 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 man manchmal eins möchte zero-Ärger, zero Setup, vielleicht temporäre Protokollierungsschicht und lnav passen perfekt!
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!
Als nächstes erkunden Sie einige der besten profiling-Software um die Anwendung zu optimieren.