24 November 2015 Veröffentlichungen

Die Beats 1.0.0

Von Monica Sarbu

Als Packetbeat vor knapp 6 Monaten eine Partnerschaft mit Elastic einging, hatten wir die Vision von der Entwicklung eines Frameworks mit Leichtbau-Shippern, die wir „Beats“ nennen, um verschiedenste Betriebsdaten von Servern zu erfassen und diese an Logstash und Elasticsearch zu senden. Heute verkünden wir mit Freude die Veröffentlichung der ersten produktionsfertigen Version der Beats-Plattform und der ersten offiziell unterstützten Beats: Topbeat, Filebeat und Packetbeat.

Am 8. Dezember halten wir ein Webinar über die Beats, das Sie sich hier anschauen können. 

Die Beats-Plattform

Wir wollten eine Plattform entwickeln, mit der unsere Community auf einfache Weise neue Beats schaffen kann. Dafür haben wir libbeat, entwickelt. Das ist die Go-Bibliothek, die die gemeinsamen Bestandteile aller Beats für die Handhabung wiederkehrender Aufgaben enthält, z. B. der Datentransfer mittels Bulk API, das verschlüsselte Senden von Ereignissen an Logstash, Load Balancing über mehrere Logstash-Instanzen und Elasticsearch-Knoten und das Senden von Ereignissen in synchronen und asynchronen Modi. Die libbeat-Plattform enthält außerdem Mechanismen zur Erkennung von Überlast auf nachgeschalteten Servern oder des Netzwerks, sodass die Sendegeschwindigkeit reduziert werden kann.

beats platform.png

Mit anderen Worten hat libbeat, was Sie zum sicheren und effizienten Senden von Ereignissen an Logstash und Elasticsearch brauchen. Darüber hinaus kümmert es sich auch um Konfiguration, CLI-Flags und Logging, sodass Sie sich bei der Entwicklung nur auf die Spezifika Ihres Beats konzentrieren können. Den Rest erledigen libbeat, Logstash, Elasticsearch und Kibana.

Wir freuen uns sehr darüber, dass die Community zusätzlich zu unseren drei offiziellen Beats bereits eigene entwickelt hat, nämlich Dockerbeat, Pingbeat, UWSGIbeat and Nginxbeat. Wenn Sie jetzt inspiriert sind, haben wir hier einen Entwicklungsleitfaden für Sie.

Topbeat

Wir fingen mit Topbeat an, weil wir einen einfachen Beispiel-Beat wollten, der von anderen Beats-Entwicklern als Ausgangspunkt genutzt werden konnte. Aber es stellte sich heraus, dass viele Menschen dessen Einfachheit und Funktionsumfang mochten. Stellen Sie sich das wie einen an all Ihre Server verteilten Top-Befehl vor, der die Metriken nicht auf dem Bildschirm anzeigt, sondern regelmäßig an Logstash oder Elasticsearch sendet. So können Sie systemweite Daten wie Systemauslastung, freien/genutzten Speicher und Festplattennutzung sowie prozessspezifische Metriken (vollständige Liste der Metriken anzeigen). zentral organisieren. Jetzt müssen Sie sich nicht mehr mit dem SSH herumschlagen, um zu sehen, welche Prozesse z. B. RAM auslasten.

Topbeat unterstützt nicht nur Linux, sondern auch OS X und Windows. Sie können ihn also auf jedem Server in Ihrem Netzwerk installieren und die gleichen Betriebssystem-Metriken sammeln, egal welches der unterstützten Betriebssysteme Sie nutzen.

Nachdem Sie Topbeat auf Ihrem Server installiert haben, beginnt er, regelmäßig Metriken an einen zentralen Punkt in Elasticsearch zu senden. Wenn Sie Kibana aufbauend auf Elasticsearch laufen lassen, können Sie Ihre Daten visualisieren und Ihre eigenen anpassbaren Dashboards mit Widgets wie Systemauslastung, Serverübersicht, systemweite Speichernutzung oder CPU-Nutzung, Top-Prozesse, prozessspezifische Speichernutzung oder CPU-Nutzung, Laufwerksnutzungsübersicht und Laufwerksnutzung konfigurieren.

Screen Shot 2015-11-22 at 11.41.24 PM.png

Filebeat

Filebeat ist der Nachfolger des Logstash Forwarder, einem leichtgewichtigen Log-Shipper, der von vielen Unternehmen jahrelang in Produktionsumgebungen eingesetzt wurde. Logstash-Forwarder ist eine simple Go-Anwendung, die alle Ihre Server-Logs an einen zentralen Ort weiterleitet, von dem aus sie dann weiter verarbeitet werden können.

Logstash-Forwarder wurde von dem Schöpfer von Logstash, Jordan Sissel, initiiert und von den Logstash-Entwicklern gepflegt. Leider hinkte die Anwendung in Sachen Verbesserungen und Fehlerbehebungen hinter Logstash selbst hinterher. Aufgrund der offensichtlichen Gemeinsamkeiten mit den Beats entschieden wir uns dazu, Logstash Forwarder in einen Beat umzuwandeln. Also nahmen wir uns den Code von Forwarder, teilten ihn auf, ersetzten die rostigen Teile, fügten Modultests hinzu und setzten dann alles wieder zu Filebeat zusammen.

Die Konfiguration von Filebeat ist simpel. Nach der Installation auf Ihren Servern konfigurieren Sie einfach die Pfade, die Filebeat absuchen soll. Dann beginnt das Programm mit dem Senden Ihrer Logs über Logstash an Elasticsearch zur Weiterverarbeitung. Die Anwendung ist intelligent genug, um mit Log-Rotation, Umbenennungen von Dateien und der vorübergehenden Nichtverfügbarkeit des nachgeschalteten Servers zurechtzukommen, sodass Sie nie eine Log-Zeile verlieren.

Wenn Sie Logstash Forwarder nutzen, erfahren Sie im Migrationsleitfaden die ersten Schritte mit Filebeat.

Screen Shot 2015-11-23 at 11.03.28 AM.png

Packetbeat

Packetbeat ist der erste Beat und auch derjenige, der alles ins Rollen brachte. Nehmen wir an, Sie möchten ein komplexes dezentrales System überwachen und in diesem Fehler beheben. Dabei nutzt jede Komponente andere Programmiersprachen, Web-Frameworks oder Datenbank-Technologien. Die Gemeinsamkeit dieser Komponenten ist die Kommunikation zwischen ihnen über das Netzwerk, die üblicherweise auf Standardprotokollen wie HTTP für REST API-Aufrufe basiert.

Stellen Sie sich Packetbeat als dezentrales Wireshark in Echtzeit vor, die Anfrage und Antwort in einer Transaktion zueinander in Beziehung setzt und Daten über jede Transaktion in Elasticsearch einfügt.

Packetbeat gibt Ihnen Einblicke in Ihre Anwendung, indem es die Kommunikation zwischen den Servern in Ihrem Netzwerk überwacht. Da Packetbeat auf passivem Sniffing des Netzwerk-Traffic basiert, behindert es Ihre Anwendung nicht.

Die Macht von Packetbeat liegt in seiner Open-Source-Herkunft: Jeder kann Unterstützung für neue Protokolle hinzufügen, sogar für patentierte. In den vergangenen Monaten hat die Community Unterstützung für MongoDB, DNS over UDP, und DNS over TCP hinzugefügt. Weitere Community-Beiträge sind momentan noch in Arbeit. Wir helfen den Mitwirkenden gern dabei, ihren Code in Packetbeat zu integrieren, und haben kürzlich einen Entwicklungsleitfaden für neue Protokolle geschrieben.

packetbeat-statistics.png

Der Pfad zu GA

Wollen Sie die ganze Geschichte um das Release 1.0.0 erfahren? Lesen Sie die älteren Blog-Posts zu Zwischen-Releases:

Ein großes Dankeschön an alle, die Code beigesteuert, Probleme gemeldet oder einfach nur die Beats in der Beta-Phase ausprobiert haben. Beginnen Sie Ihr Erlebnis mit Beats 1.0.0 und berichten Sie uns auf discuss, Twitter, oder eröffnen Sie eine Issue auf GitHub.