eBay überwacht Petabyte an Logs pro Tag mit Beats
Mit 1,2 Petabyte an Logs pro Tag und fünf Millionen eingehenden metrischen Datenpunkten pro Sekunde besteht bei eBay wahrlich keine Datenknappheit. Tag für Tag steht das Logging- und Überwachungsteam des E-Commerce-Unternehmens vor der monumentalen Aufgabe, all diese Logs und Metriken zu erfassen und grafisch darzustellen. Wie auch die meisten Unternehmen verwendet eBay eine Vielzahl von Anwendungen (wie Hadoop und MySQL) für verschiedene Anwendungsfälle in unterschiedlichen Teams.
Als mit den Containern eine neue Bereitstellungsform für Anwendungen aufkam, begann das Team, die App mit Docker in Container zu verpacken und mit Kubernetes bereitzustellen, wobei der Lebenszyklus mit Kubernetes verwaltet wurde. Eine der größten Herausforderungen für das Team war jedoch die Tatsache, dass sich Apps und Umgebung ständig entwickeln und es schwierig ist, Schritt zu halten. Auftritt Beats! Filebeat und Metricbeat wurden für die Erfassung und Übertragung von Logs und Metriken aus Docker und Kubernetes ausgewählt.
Außerdem wollte das Team in der Lage sein, Arbeitslasten bei deren Erstellung zu ermitteln. Bevor die Autodiscover-Funktion in Beats eingeführt wurde (neu in 6.2), hat das Team diese Funktion selbst implementiert: Collectbeat. Dieser auf libbeat basierende Beat diente dazu, neue Pods in Kubernetes-Clustern zu entdecken. Collectbeat verwendete die Kubernetes-API, um Arbeitslasten zu entdecken, die Daten zu erfassen und anzureichern und sie anschließend an das interne Überwachungssystem zu übertragen. Dieses System mit dem Namen „Sherlock.io“ wurde speziell entwickelt und kann flexibel an neu eingeführte Technologien angepasst werden.
Damit war zwar der Datenerfassungsaspekt gelöst, aber die Themen Analytics und Visualisierung waren weiterhin offen. Die Erfassung all dieser Daten ist nur hilfreich, wenn die Benutzer bei eBay sie mit vertrauten Beschriftungen analysieren können. Im nächsten logischen Schritt wurden die Daten daher vor der Übertragung mit Metadaten markiert. Also haben Vijay Samuel und sein Team bei eBay ein Modul mit dem Namen „add_kubernetes_metadata“ entwickelt, das Lognachrichten und Metrik-Payloads entgegennimmt und mit Metadaten wie Name und Pod Space ergänzt. Dieses Modul ist jetzt auf GitHub verfügbar und ist ein hervorragendes Beispiel dafür, wie leistungsstark Open Source-Projekte aus der Community sein können.
Natürlich wird eBay fortlaufend weiterentwickelt. Mit der Einführung neuer Technologien kommen neue Anwendungen, mehr Logs und mehr Metriken dazu. Das organische Loggingwachstum bei eBay beträgt 50 % im Vergleich zum Vorjahr. Wie lassen sich also ständig wachsende Datenmengen mit endlichen Ressourcen verarbeiten? Eine Möglichkeit besteht darin, Anwendungen anhand von ebenenbasierten Kontingent- oder Aufbewahrungslimits auf Host- oder Poolebene zu messen. Außerdem können Prioritäten für bestimmte Datentypen vergeben werden. Ereignisse haben die höchste Priorität, danach kommen Metriken für operative Sichtbarkeit und danach die Logs. Um die Prioritäten richtig anzuwenden, haben sie Ereignisplaner hinzugefügt und Autodiscover das Gewichten der Konfigurationen erlaubt.
Möchten Sie mehr über die Tools und Strategien des Teams erfahren? Sehen Sie sich Vijays Präsentation von der Elastic{ON} 2018 an, um mehr über Sherlock.io und die Überwachung von Daten in Kubernetes-Clustern mit Beats zu erfahren. Falls Sie mehr über die Überwachung von Kubernetes und Docker mit dem Elastic Stack erfahren möchten, sehen Sie sich unser Webinar Elastic Stack: Monitoring Kubernetes Applications with Beats (Überwachen von Kubernetes-Anwendungen mit Beats, in englischer Sprache) an.