Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

10 Open Source-Protokollkollektoren für die zentrale Protokollierung

Holzsammler
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 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 EntwicklerIch 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 erstellen) Protokolle, die uns mitteilen, was sie durchlaufen hat, als die problematische Situation aufgetreten ist.

Aus meiner Sicht gibt es zwei Arten der Protokollierung: automatisch generiert Protokolle und vom Programmierer generiert 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 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, 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 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 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 der expliziten, umfangreichen Protokollierung, die Spuren für die menschliche Seite der Dinge erstellt. Das nenne ich Vom Programmierer generierte Protokolleund sie bilden das Rückgrat sensibler Branchen wie des Bankwesens. Hier ist ein Beispiel, 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 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, 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 Debugging - Es erfordert von Anfang an einen frischen, neugierigen Geist. Wenn ein WTF so viel wie möglich in Ihr Gehirn eindringt, wird der gesamte Prozess abgeworfen.

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 nicht ausführlich in Ihrer Anwendung (siehe Vom Programmierer generierte Protokolle über).

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 all diese Bestellungen nicht von ihm, sondern von einigen aufgegeben wurden? Hacker?

Welches Argument müsste ihre Anfrage unterhalten oder ablehnen? Wenn Sie über eine umfangreiche 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 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.

Quelle: speedawarenessmonth.com

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 keine Möglichkeit zu zählen, wie viele Möglichkeiten ein gutes Protokollierungssystem Ihnen bietet. Vielleicht ist das beste Argument, 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 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 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, Logstasch ist einen Besuch wert (der ELK-Stack ist schon eine Sache, falls Sie es nicht wussten). Wie andere Protokollierungswerkzeuge in dieser Liste ist Logstash vollständig Open Source, sodass Sie die Freiheit haben, es nach Ihren Wünschen bereitzustellen und zu verwenden.

Aber lassen Sie sich nicht irreführen: Logstash ist ein Mutterschiff mit Fähigkeiten, 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!

Fluentd

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. 🙂

Flume

Wenn wirklich, wirklich große Datenmengen Ihre Herausforderung sind und Sie schließlich alles in etwas wie Hadoop einspeisen möchten, Ücretsiz TJ ve AG casinolarda bonus kodlarını spin → 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) XNUMXh geöffnet. 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 ü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 zur Protokollverarbeitung.

Es ist ein Dienstprogramm für Unix-ähnliche Betriebssysteme. In technischer Hinsicht ist es ein Nachrichtenrouter mit dynamisch ladbaren Ein- und Ausgängen und ist hoch 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-Quellen

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

Nachfolgend finden Sie weitere Funktionen von Rsyslog:

  • Flexible Konfigurationen
  • Bietet Multithreading-Funktionen
  • Schutz vor Manipulation von Protokolldateien mithilfe von Protokollsignaturen und Verschlüsselung.
  • Unterstützt Big Data-Plattformen
  • 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 zu installieren und selbst zu sehen, wie es funktioniert.

Logwatch

Ich bin sicher, es gibt diejenigen unter uns, die nicht alle Zeremonien wollen, die mit einem „einheitlichen“, „zentralisierten“ Protokollierungssystem verbunden sind. 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-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.

lnav

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 Sie manchmal eine problemlose, Null-Einrichtung, möglicherweise temporäre Protokollierungsschicht wünschen und lnav perfekt zur Rechnung passt!

Conclusion

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.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder