Flink ersetzt Logstash, um das Problem der verlorenen Protokollsammlung zu lösen

In einem Fall, in dem die Protokolldaten eines Kunden mithilfe des ELK-Ökosystems auf die Volcano-Engine migriert wurden, versuchten wir aufgrund des Kundenfeedbacks, dass Logstash häufig unter Datenverlust und schlechter Erfassungsleistung litt, Flink zu verwenden, um das herkömmliche Logstash für die Protokolldatenanalyse zu ersetzen Konvertierung. Ebenso wie die in ElasticSearch geschriebenen Komponenten wurden sie vom Kunden anerkannt und haben Benutzer erfolgreich bei der Migration zu Volcano unterstützt. Derzeit unterstützt Flink in der Spitzenzeit dieses Geschäfts bereits das Schreiben von Daten mit mehr als 1.000 k/s.

In diesem Artikel werden hauptsächlich die Schwachstellen bei der Verwendung von Logstash und die Vorteile der Migration zu Flink vorgestellt, weitere Möglichkeiten für Flink untersucht, Logstash im ELK-Ökosystem zu ersetzen, und Benutzer dazu ermutigt, von EL (Logstash) K zu EF (Flink) K zu migrieren.
 

Einführung in Logstash

ELK ist ein Open-Source-Protokoll- und Datenüberwachungs- und Analysesystem, das hauptsächlich aus drei Komponenten besteht: E lasticsearch, L ogstash und K ibana, seine Funktionen umfassen komplette Lösungen von der Protokollsammlung, Analyse, Abfrage, Analyse, Visualisierung usw.
Die obige Abbildung beschreibt die Beziehung zwischen den Komponenten in ELK, basierend auf libbeat Verschiedene Beats-Tools des Frameworks sammeln Protokolle und verschiedene Daten, die direkt in ES geschrieben werden können, oder zur Analyse und Verarbeitung in Logstash geschrieben werden können, bevor sie in ES geschrieben werden. Wie in der folgenden Abbildung dargestellt, besteht Logstash hauptsächlich aus drei Teilen:
  • Eingabe-Plug-in: Verantwortlich für das Lesen von Daten aus verschiedenen Quellen wie Dateien, Beats, Kafka usw.;
  • Filter-Plug-In: Verantwortlich für die Änderung und Verarbeitung von Daten gemäß der angegebenen Konfiguration. Beispielsweise kann das Grok-Plug-In entsprechende Informationen aus dem festen Protokollformat extrahieren, und das Drop-Plug-In kann Funktionen wie Debug-Protokolle verlieren;
  • Ausgabe-Plug-in: Verantwortlich für die Ausgabe von Ergebnisdaten, z. B. das Schreiben verarbeiteter Protokolldaten in ES.

Schwachstellen bei der Logstash-Nutzung

Daten gehen leicht verloren

Logstash verwendet standardmäßig Speicher als Cache für geschriebene Daten. Sobald ein Neustart oder ein abnormaler Exit erfolgt, geht dieser Teil der Daten verloren. Obwohl Logstash zur Lösung dieses Problems auch eine dauerhafte Warteschlange bereitstellt, gehen die Daten bei einem Ausfall einer einzelnen Maschine ebenfalls verloren, da die Daten weiterhin auf die Festplatte der Maschine geschrieben werden. Gleichzeitig wird die regelmäßige Datenplatzierung auch einen großen Einfluss auf die Datenverarbeitungsleistung haben.

Hoher Untersuchungsaufwand

Wenn das Protokolldatenformat nicht den Spezifikationen entspricht (z. B. nicht standardmäßiges JSON) und eine große Datenmenge verloren geht, muss die Ursache des Datenverlusts in allen Verbindungen wie Datenerfassung, Datenanalyse und ES-Schreiben untersucht werden Im Allgemeinen ist es notwendig, das Maschinenprotokoll zu überprüfen und zu sammeln. Bei vielen Verarbeitungsknoten sind auch die Kosten für die Fehlerbehebung relativ hoch.
Zusätzlich zur Unregelmäßigkeit der Protokolldaten selbst geht dieser Teil der Daten auch leicht verloren, wenn die Daten aus anderen Gründen, z. B. verschiedenen Ausnahmen beim Schreiben von ES, nicht korrekt verarbeitet werden können und die Protokolle zur Nachverfolgung angezeigt werden müssen und Positionierung. Obwohl Logstash eine separate Warteschlange für unzustellbare Nachrichten bereitstellt, um diese Situationen zu bewältigen, sind die über diesen Link verlorenen Daten immer noch mit Kosten für die Fehlerbehebung verbunden.

Schlechte Erfassungs- und Analyseleistung

Die verschiedenen von Logstash bereitgestellten Plug-Ins sind grundsätzlich in Ruby implementiert. Obwohl Logstash selbst auch auf der Java-JVM läuft und verschiedene Plug-Ins auch über JRuby auf der JVM laufen, beträgt die Ausführungs- und Ausführungseffizienz der Java-Sprache im Vergleich zu Flink 100 % Es wird niedriger sein.
Wenn die Persistenzwarteschlange aktiviert ist (um sicherzustellen, dass Daten so wenig wie möglich verloren gehen), wird die Logstash-Verarbeitungsleistung weiter reduziert, da Daten häufig auf die Festplatte geschrieben werden müssen. Gleichzeitig ist die schlechte Verarbeitungsleistung von Logstash auch in der Branche ein Konsens.

Unterstützt keine dynamische Erweiterung und Kontraktion von Ressourcen

Da die Ressourcenbereitstellung von Logstash selbst keine dynamische Expansion und Kontraktion unterstützt, führt dies zu einer großen Ressourcenverschwendung in Zeiten außerhalb der Spitzenzeiten. Im Fall dieses Kunden sind die Protokolldaten während der Hauptgeschäftszeit und die Protokolldaten während der Aktivitätsperiode etwa 24-mal so hoch wie die Daten während der Nebensaison (100 W+ QPS während der Hauptgeschäftszeit, 50.000 QPS während der (Schwachzeit) und sie ändern sich zyklisch. Daher kann die Erfassung und Analyse von Protokolldaten in tatsächlichen Geschäftsspitzenzeiten mit sehr wenigen Ressourcen sichergestellt werden. Daher ist es notwendig und notwendig, die dynamische Erweiterung und Kontraktion von Ressourcen zu unterstützen.

Vorteile der Verwendung von Flink

Die Datenverarbeitung unterstützt die Semantik „mindestens einmal“.

Flink führt einen verteilten Prüfpunktmechanismus basierend auf dem Status ein, um eine „mindestens einmalige“ Semantik für den Datenverbrauch sicherzustellen. Der Status wird durch regelmäßige Persistenz im Remote Reliable Storage (HDFS) gespeichert, um sicherzustellen, dass der Status nicht verloren geht.
Es ist zu beachten, dass Flink selbst eine „genau einmalige“ Semantik im strengen Sinne basierend auf dem Zustand erreichen kann, dh Verbrauch und Verarbeitung gehen weder verloren noch sind sie schwer. Wenn ES die Konfiguration von Primärschlüsseln unterstützt, d. h. wenn das Schreiben desselben Primärschlüssels idempotent ist, kann über die gesamte Verbindung hinweg eine „genau einmalige“ Semantik erreicht werden.
Im Fall dieses Kunden haben wir Tools zum Lesen von Kafka verwendet, um die Anzahl der geschriebenen Einträge zu zählen, und sie mit der tatsächlichen Anzahl der von Flink an ES geschriebenen Einträge verglichen. Dies hat die „mindestens einmal“-Semantik des Datenverbrauchs bewiesen und gelöst das Problem des Kunden bei Freunden. Bei der geschäftlichen Nutzung von Logstash kommt es häufig zu Datenverlusten.

Flexible Handhabung von Ausnahmedaten

Für Daten, die in Kafka nicht analysiert werden konnten (z. B. Daten in einem Nicht-JSON-Format), unterstützten wir im Fall dieses Kunden das Schreiben dieses Teils der abnormalen Daten in einen unabhängigen ES-Index und identifizierten auch den Grund für das Schreiben der Daten ( Nicht-Standard-JSON); Für Daten, die ES nicht abnormal schreiben können, schreiben wir diesen Teil der Daten auch in einen unabhängigen ES-Index und zeichnen die Gründe für den Fehler beim Schreiben von ES auf, z. B. die Anzahl der Felder über 1000. der Datentyp und die Vorlagendefinition sind inkonsistent usw.
Es kann Benutzern die Verwaltung abnormaler Protokolldaten erleichtern. Dieser Kunde empfiehlt beispielsweise, alle Upstream-Geschäftsprotokolle im Standard-Json-Format in Kafka zu schreiben. Wenn der Kunde im Gegensatz dazu das Lostash des ursprünglichen Freundes zum Schreiben auf ES verwendete, war dieser Teil des Datenverlusts nicht nur schwer zu beheben (oder überhaupt zu erkennen), sondern auch schwer zu verwalten (der Grund für das Scheitern des Schreibens auf ES war verloren).

Hoher Durchsatz, Verarbeitungsleistung mit geringer Latenz

Als derzeit angesagteste Stream-Verarbeitungs-Engine unterstützt Flink die Verarbeitung von Protokolldaten mit hohem Durchsatz und geringer Latenz. Es kann Daten mit Latenz der zweiten Ebene verarbeiten und wurde in anderen komplexeren Kafka-Datenverarbeitungsszenarien in der Branche umfassend verifiziert. Das ist es stabil und zuverlässig.

Automatische Erweiterung und Kontraktion von Ressourcen

In Byte Serverless Flink unterstützen wir auch die dynamische Anpassung von Ressourcen durch Schreiben von QPS, wodurch größere Ressourcen eingespart werden können. Derzeit wurde diese Funktion tatsächlich innerhalb von Byte verifiziert und hat größere Fortschritte bei der Ressourcennutzung erzielt.

Anspruchsvollere Datenanalysefunktionen

Im Vergleich zum herkömmlichen ELK-Link, der einen einfachen Datenformatabgleich, Inhaltsersetzung und andere Verarbeitungen von Protokolldaten in Logstash durchführt, unterstützt Flink auch eine leistungsfähigere Datenanalyse und -verarbeitung, unterstützt Ereignis- und Geschäftsverarbeitungszeit sowie Fensterberechnung und -aggregation. Entfernen Sie Duplikate usw. Es kann eine leistungsfähigere Datenverarbeitung und -analyse für Protokolldaten durchführen und nach dem Schreiben der verarbeiteten Daten in ES eine OLAP-Datenabfrage und -analyse durchführen.
Diese Datenverarbeitungs- und Analysefunktion wird auch bei Byte häufig genutzt und bringt dem Unternehmen viele praktische Vorteile.

Zusammenfassung von Flink vs. Logstash

Nach einer kurzen Einführung in Logstash, kombiniert mit dem Fall des Kunden, folgt hier ein Vergleich der Vor- und Nachteile von Flink und Logstash:
 

[Volcano Engine Streaming Computing Flink-Version]

Die Volcano Engine Streaming Computing Flink -Version ist eine neue Generation vollständig verwalteter, < a i=3>Cloud nativer< a i=3> a> Echtzeit-Computing-Plattform. Eine Reihe von Codes können Flow und Batch problemlos integrieren und helfen Unternehmen dabei, ihre Big-Data-Plattformen auf Cloud-native, Echtzeit- und intelligente Richtungen umzustellen.
derzeit, Streaming Computing Flink Edition Newcomers First Purchase Exclusive Aktivität in Bearbeitung. Registrierter Benutzer kauft zum ersten Mal Flink-Produkte Jahres- und Monatsabonnement , Sie können es genießen 40 % Rabatt für den ersten Monat , willkommen zum Beraten und Erleben.
„Weitere Produktinformationen erfahren“

[Workshop: Bytedance Cloud Native Big Data Platform Experience Workshop]

Auf der Konferenz Data & AI Con Shanghai 2023, die am 18. November in Shanghai stattfindet, wird es ein Special geben Cloud-nativ Groß angelegte Computing-Übungssitzung , die Sie persönlich absolvieren können Erleben Sie ByteDance Flink Protokollimportlösung, die Logstash ersetzt und mehr Möglichkeiten dazu riesige Geschenke erhalten.
„Scannen Sie den QR-Code, um sich zu registrieren“
 

Verweise

https://elastic-stack.readthedocs.io/en/latest/introduction.html

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-overview.html

https://www.elastic.co/guide/en/logstash/8.10/pipeline.html

https://www.elastic.co/guide/en/logstash/8.10/persistent-queues.html

http://thomaslau.xyz/2019/08/14/2019-08-14-on_logstash_quiz1/

 
Tang Xiaoou, Gründer von SenseTime, ist im Alter von 55 Jahren verstorben Im Jahr 2023 stagniert PHP Wi-Fi 7 wird vollständig verfügbar sein Anfang 2024 Debüt, fünfmal schneller als Wi-Fi 6 Das Hongmeng-System steht kurz vor der Unabhängigkeit und viele Universitäten haben „Hongmeng-Klassen“ eingerichtet Zhihui Das Startup-Unternehmen von Jun refinanziert sich, der Betrag übersteigt 600 Millionen Yuan und die Pre-Money-Bewertung beträgt 3,5 Milliarden Yuan Quark Browser PC-Version startet interne Tests KI-Code-Assistent ist beliebt, und Programmiersprachen-Rankings sind alle Es gibt nichts, was Sie tun können Das 5G-Modem und die Hochfrequenztechnologie des Mate 60 Pro liegen weit vorne MariaDB spaltet SkySQL auf und etabliert sich als unabhängiges Unternehmen Xiaomi antwortet auf Yu Chengdongs „Keel Pivot“-Plagiatsaussage von Huawei
{{o.name}}
{{m.name}}

Guess you like

Origin my.oschina.net/u/5941630/blog/10141911