28 Oktober 2015 Veröffentlichungen

Logstash 2.0.0 veröffentlicht

Von Suyog Rao

Wir freuen uns, den heutigen Release von Logstash 2.0.0 verkünden zu können! Mit diesem Release werden einige wichtige Änderungen in der Funktionalität für einige Konfigurationen eingeführt. Lesen Sie daher bitte unser Change Log oder die neue Dokumentation für wichtige Änderungen, um Einzelheiten zu erfahren.

Sie können unsere früheren Posts über Änderungen in weiteren 2.0.0-Pre-Releases lesen:

Hier ist eine Zusammenfassung der wesentlichen Änderungen in 2.0:

Kompatibilität mit Elasticsearch 2.0

Elasticsearch 2.0 ist ab heute allgemein verfügbar und enthält viele neue Funktionen und Verbesserungen. Logstash 2.0 ist ohne weitere Anpassungen mit diesem Release kompatibel. Vorherige Releases von Logstash nutzten standardmäßig den Java Node-Client, um mit Elasticsearch zu kommunizieren, 2.0 nutzt standardmäßig den HTTP-Client. So können Nutzer ihre Daten nahtlos mit Elasticsearch abrufen, anreichern, speichern und analysieren.

HTTP hat funktionelle Parität mit anderen Protokollen (Node und Transport) und ist nur geringfügig langsamer, wenn es mit einem einzelnen Client verbunden ist, dafür kann man aber viel leichter damit arbeiten und es verwalten. Wenn das HTTP-Protokoll verwendet wird, kann man Elasticsearch-Versionen aktualisieren, ohne gleichzeitig ein Logstash-Upgrade vornehmen zu müssen. Weitere detaillierte Informationen (einschließlich Leistungszahlen) über den Wechsel zu HTTP als Standard finden Sie im beta1-Blog.

Wir unterstützen weiterhin die anderen Protokolle (Node, Transport), aber das Plugin für ihre Verwendung muss manuell installiert werden:

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java

Kompatibilitäts-Matrix

Die unten stehende Tabelle führt Logstashs Kompatibilität mit den Elasticsearch-Versionen auf.

enter image description here

Kompatibilität mit Shield 2.0

Dieser Release ist kompatibel mit dem Elastic Shield 2.0-Release. Für das HTTP-Protokoll müssen keine zusätzlichen Plugins installiert werden. Bitte befolgen Sie die hier beschriebene Dokumentation. Für das Transportprotokoll muss ein separates Plugin installiert werden zur Integration mit Shield 2.0. und höher:

bin/plugin install --version 2.0.0 logstash-output-elasticsearch_java_shield

Leistungsverbesserungen

Dieser Release beinhaltet zudem Leistungverbesserungen in vielen Bereichen, sodass Sie Ihre Daten schneller mit Logstash verarbeiten können. Im Folgenden finden Sie einige davon beschrieben:

  • Benutzer-Agent- und GeoIP-Filter: In beiden Filtern haben wir die Lookups verbessert, indem wir einen LRU-Cache hinzugefügt haben. Dieser nutzt die Tatsache, dass IPs und User-Agents, die man für gewöhnlich in Web-Requests findet, häufig in geclusterter Sequenz erscheinen. Im Falle des User-Agent-Filters stellten wir einen Sprung von etwa 3,7x bei unserem Beispiel-Datensatz fest. Für GeoIP betrug der Leistungsschub im Vergleich zur alten Version 1,69x.
  • JSON-Verarbeitung: Wir haben ein Update auf eine neue Version von JrJackson vorgenommen, die in Logstash verwendete JSON-Serialisierung/Deserialisierungsbibliothek. Neben Fehlerbehebungen bietet dies einen guten Leistungsschub im Zusammenhang mit JSON.
  • Bessere Filter-Worker-Defaults: Vor diesem Release hatte der filterworker einen Default-Wert von 1, was bedeutete, dass es einen einzelnen Worker zur Verarbeitung von Ereignissen bei Eintritt in die Filterphase gab. Jetzt ist der Standardwert der Einstellung filterworkers auf die Hälfte der CPU-Cores des Rechners festgelegt. Durch die Erhöhung der Anzahl der Worker ist Parallelismus in der Filterausführung möglich, was für die Verarbeitung aufwendigerer Prozesse wie komplexe Grok-Muster oder der User-Agent-Filter wichtig ist.

Filebeat Support

Falls Sie es noch nicht mitbekommen haben: Wir veröffentlichten vor Kurzem eine Beta-Version von Filebeat – dem Logstash-Forwarder der nächsten Generation. Filebeat ist ein Agent zur Lieferung dateibasierter Logs an Logstash zur weiteren Verarbeitung. 2.0.0 funktioniert mithilfe des Plugins logstash-input-beats sofort mit der Filebeat-Version 1.0.0-beta4.

Shutdown-Handling

In früheren Logstash-Releases wurde bei Auslösung eines Shutdowns ein Exception-Mechanismus genutzt, um den Plugins zu signaliseren, dass sie herunterfahren sollten. Dieser Prozess war problematisch, da regelmäßig Drittanbiertercode verwendet wurde. Wenn Logstash nicht wusste, wie es mit diesen Exceptions umgehen sollte, war das Resultat oft unvorhersehbares Verhalten. Dies haben wir behoben, indem wir für jedes Plugin API-Aufrufe (beispielsweise stop) hinzufügten, damit sie sich kontrolliert selber stoppen können. Das bedeutete Updates für über 200 Plugins im Logstash-Ökosystem, um diese an die neuen API anzupassen! Obwohl die Fehler beim Shutdown in Logstash nicht komplett behoben sind – eine verzögerte Ausgabe kann den Shutdown immer noch verlangsamen – sind alle wichtigen API-Änderungen in 2.0 vorhanden und wir können in Punkt-Releases zu bestimmten Fehlerbehebungen zurückkehren.

Plugin-Entwickler: Wenn Sie Plugins für Logstash 1.5 entwickelt haben, finden Sie im Dokument mit den wichtigsten Änderungen eine Liste der neuen APIs im Zusammenhang mit dem Shutdown. Im Verzeichnis Beispieleingabe finden Sie auch Beispielcode, wie der neue Shutdown-Mechanismus zu nutzen ist.

Dokumentation

Die aktuelle Dokumentation für 2.0 und alle Plugins ist hier verfügbar. In dieser Referenz finden Sie jegliche Konfigurationsänderungen.

Update auf 2.0 vornehmen

Lesen Sie, bevor Sie das Update auf 2.0 vornehmen, bitte die Update-Einleitung in unseren Referenzdokumenten.

Feedback

Herzlichen Dank an unsere Nutzer und Unterstützer, die dazu beigetragen haben, dass 2.0 ein erfolgreicher Release ist. Wir wissen die Tests der Pre-Realeases und zahlreichen Patches zu schätzen, die zu diesem Relase beigesteuert wurden. Halten Sie sich mit unserer Roadmap über künftige Verbesserungen und Releases etc. auf dem Laufenden. Testen sie 2.0 noch heute und lassen Sie uns Ihre Meinung wissen!