Transformation von Log-Plugins zur Verbesserung der Observability

Yong Qian

February 24, 2023

Technology

Heutzutage sind Protokolle in API-Gateways von entscheidender Bedeutung, insbesondere für die Fehlererkennung und Problembehebung, was Betriebs- und Wartungskosten spart. API-Gateway-Protokolle haben auch einen großen Wert bei der Unterstützung der Datensammlung. Um die Beobachtbarkeit und Systemstabilität zu verbessern, unterstützt das Open-Source-API-Gateway Apache APISIX viele Protokoll-Plugins wie elasticsearch-logger, kafka-logger, loggly und error-log-logger.

Der Wert von Gateway-Protokollen

Da Unternehmen im digitalen Zeitalter schnell wachsen, werden Softwarearchitekturen immer komplexer, was die Fehlererkennung und -diagnose erheblich erschwert. Dies unterstreicht erneut die Bedeutung der Software-Beobachtbarkeit.

Protokolle sind eine der drei Säulen der Beobachtbarkeit. Sie bieten Systemadministratoren und Entwicklern Einblicke in den Betriebszustand eines Systems, was die rechtzeitige Identifizierung und Lösung von Problemen erleichtert.

Darüber hinaus können Protokolle zusätzliche Zwecke erfüllen, wie z.B. Data Mining, Auditing und Sicherheitsüberwachung, was dazu beiträgt, die Compliance und Sicherheit des Systems aufrechtzuerhalten.

Ein API-Gateway verbindet die Anwendung mit der Außenwelt und ermöglicht es Organisationen, API-Aufrufe besser zu verwalten und zu überwachen, einschließlich der kritischen Funktion der Aufzeichnung von API-Aufrufprotokollen.

API Gateway Log

Wir werden den Wert von API-Gateway-Protokollen in den folgenden Abschnitten aus zwei Perspektiven analysieren.

Der Wert für den Betrieb

Ob es sich um traditionelle Systemwartung (Operations & Maintenance) oder moderne SRE (Site Reliability Engineering) handelt, die Entdeckung und Behebung von Fehlern hat immer oberste Priorität, um die Stabilität des Systems zu gewährleisten. Dies liegt daran, dass jede Sekunde Ausfallzeit erhebliche Geschäftsverluste verursachen und das Benutzererlebnis für jedes große Online-Geschäft beeinträchtigen kann.

Das API-Gateway steht an vorderster Front des gesamten Systems und kann eine "Wächter"-Rolle übernehmen. Wir können eine Fülle von kritischen Daten aus seinen Zugriffsprotokollen extrahieren, die für das Betriebssystem von entscheidender Bedeutung sind:

  • Analysieren Sie Upstream- und Downstream-Statuscodes, um die Verfügbarkeit der Website und die Verfügbarkeit bestimmter Upstream-Dienste zu überwachen.
  • Verwenden Sie Zugriffsprotokolle, um den Website-Traffic zu überwachen und Angriffe wie DDoS rechtzeitig zu erkennen.
  • Analysieren Sie Traffic-Trends, um eine Referenz für die Skalierung von Geschäftssystemen nach oben oder unten zu bieten.
  • Verfolgen Sie die Bearbeitungszeiten von Anfragen, um leistungsbezogene Berichte auf Interface-Ebene zu erstellen, die als Datenreferenz für die Optimierung der Leistung von Geschäftssystemen dienen.

Die oben genannten Punkte sind einige der besten Praktiken für API-Gateway-Protokolle, die in der Branche weit verbreitet sind und in den Betriebs- und Wartungssystemen vieler Unternehmen implementiert werden.

Der geschäftliche Wert

Im Vergleich zum allgemein anerkannten betrieblichen Wert wird der geschäftliche Wert von Gateway-Protokollen oft übersehen.

Beispielsweise ist bei der Analyse des Benutzerverhaltens die Codierung die häufigste Methode zur Datensammlung durch Ereignisverfolgung in Programmen. Für ein gut gestaltetes API können Gateway-Protokolle jedoch natürlich solche Anforderungen erfüllen. Dadurch können wir viele Dinge tun, wie z.B.:

  • Analysieren Sie die Client-IP, um die geografische Verteilung des Traffics zu bestimmen.
  • Analysieren Sie den HTTP-Referer, um die Quelle des Benutzerzugriffs auf jede Seite zu verstehen.
  • Wir können direkt kritische Geschäftskennzahlen für die aggregierte Statistik wichtiger APIs erhalten. Beispielsweise können wir durch die Zählung der erfolgreichen Aufrufe von APIs für Benutzerregistrierung und Bestellaufgabe die Anzahl neuer Benutzer und Bestellungen innerhalb eines bestimmten Zeitraums erhalten.

Natürlich sind Gateway-Protokolle weniger flexibel als die Ereignisverfolgung und können keine benutzerdefinierten Datensammlungsanforderungen erfüllen; sie haben jedoch genug geschäftlichen Wert, um grundlegende Data-Mining-Anforderungen zu erfüllen.

Apache APISIX ist ein dynamisches, Echtzeit- und leistungsstarkes Cloud-native API-Gateway, das reichhaltige Traffic-Management-Funktionen wie Lastenausgleich, dynamisches Upstream, Canary-Release, Circuit Breaking, Identitäts-Authentifizierung und Beobachtbarkeit bietet.

Viele seiner Fähigkeiten werden über Plugins bereitgestellt, darunter Dutzende von Protokollierungs-Plugins. Im Folgenden wird das typische Protokollierungs-Plugin in APISIX als Beispiel verwendet, um zu erklären, wie Gateway-Protokolle mit einem Protokollanalysesystem integriert werden können, um mehr Wert zu schöpfen.

Einführung in typische Protokollierungs-Plugins von APISIX

elasticsearch-logger

Elastic Search And Apache APISIX

Elastic Search ist eine verteilte Open-Source-Such- und Analyse-Engine, die zur Verarbeitung großer Datenmengen verwendet wird und in der Protokollanalyse hoch angesehen ist. Das komplementäre Daten-Dashboard Kibana kann leicht verschiedene statistische Diagramme anpassen, um die Anforderungen der Organisation an die visuelle Abfrageanalyse zu erfüllen.

In praktischen Anwendungen, da die meisten traditionellen Softwareprotokolle in lokalen Dateien gespeichert werden, wird ein Projekt im Elastic-Search-Ökosystem namens Filebeat verwendet, um Protokolldateien auf lokalen Maschinen zu überwachen und inkrementelle Protokolle an den Elastic-Search-Server zu senden.

Das elasticsearch-logger-Plugin von APISIX kann jedoch direkt APISIX-Zugriffsprotokolle an den Elastic-Search-Server senden, was mehrere Vorteile bietet:

  • Die Bereitstellung der Filebeat-Komponente ist nicht erforderlich, was zu einer kürzeren Verarbeitungskette und reduzierten Rechenressourcen führt.
  • Die Protokolle werden nicht auf der Festplatte gespeichert, sodass keine Sorge um die Festplattennutzung besteht. Zugriffsprotokolle können jedoch sehr umfangreich sein, und wenn die Dateirotation nicht ordnungsgemäß behandelt wird, kann dies schnell die Festplatte der Maschine füllen und zu einem Ausfall führen. Darüber hinaus kann die Interaktion mit der Festplatte auch die Leistung des Gateways verringern.

kafka-logger

Gateway-Zugriffsprotokolle haben eine herausragende Eigenschaft: Das Volumen der Protokolldaten ist proportional zum Volumen der Geschäftsanfragen: Je mehr Anfragen, desto mehr Protokolle.

Online-Geschäfte zeigen typischerweise periodische Muster im Anfragevolumen. Beispielsweise erleben Lebensmittellieferplattformen während der Mahlzeiten tendenziell hohen Traffic, während Video-Websites nach der Arbeit Spitzenzeiten erleben.

Dies stellt eine erhebliche Herausforderung für Protokollspeichersysteme dar, und sicherzustellen, dass das System während der Traffic-Spitzen angemessen funktioniert, ist eine entscheidende Fähigkeit für jeden ElasticSearch-Administrator.

Apache APISIX And Kafka

Eine Nachrichtenwarteschlange ist das beste Werkzeug, um den Traffic auszugleichen. Die Einführung einer Nachrichtenwarteschlange zwischen dem Gateway und dem Speichersystem, um einen Protokollpuffer bereitzustellen, wird den Druck auf das Speichersystem während der Spitzenzeiten erheblich verringern.

Zu diesem Zweck bietet APISIX kafka-logger, das Zugriffsprotokolle an Kafka-Server liefert und direkte Auswirkungen auf die Protokollspeicherung vermeidet.

loggly

In den letzten Jahren hat das Konzept von [SaaS (Software as a Service)] (https://en.wikipedia.org/wiki/Software_as_a_service) allmählich an Popularität gewonnen und wird von vielen kleinen und mittelständischen Unternehmen aufgrund seiner niedrigen Einstiegsschwelle und des Pay-as-you-go-Preismodells geschätzt. Im Bereich der Protokollanalyse sind viele SaaS-Produkte entstanden, und loggly hat sich mit seinen reichhaltigen Protokollquellen und Analysefähigkeiten zu einem Marktführer entwickelt.

Vor diesem Hintergrund hat die aktive APISIX-Community gebrauchsfertige Loggly-Plugins entwickelt, die nur die Konfiguration der Anmeldeinformationen erfordern, um APISIX-Zugriffsprotokolle direkt an den Loggly-Dienst zu senden, was die Nutzung sehr bequem macht.

Ähnlich wie das Loggly-Plugin bietet APISIX auch google-cloud-logging, sls-logger und tencent-cloud-cls Plugins, die eine einfache Integration mit den Protokolldiensten der wichtigsten Cloud-Anbieter ermöglichen.

Apache APISIX Log SaaS

error-log-logger

Die oben eingeführten Plugins dienen alle zur Sammlung von Zugriffsprotokollen. Es gibt jedoch eine weitere Art von Protokoll in APISIX, nämlich das Fehlerprotokoll (error.log), das für die Diagnose von Gateway-Fehlern entscheidend ist.

Daher bietet APISIX das error-log-logger-Plugin, um Fehlerprotokolle an einen Remote-Server zur Speicherung und Analyse zu senden. In der Praxis kann die Protokollierungsebenenkonfiguration von APISIX verwendet werden, um detailliertere Debug- oder Info-Protokolle zu drucken, die detailliertere Gateway-Betriebsstatusprotokolle enthalten. Mit diesen Protokollen könnten die meisten Probleme lokalisiert werden.

Zusammenfassung

Die Gateway-Protokolle enthalten einen enormen Wert, und wir können anhand der reichhaltigen Protokoll-Plugins im Apache-APISIX-Projekt erkennen, dass die Unternehmensnutzer in der Community den Wert von Gateway-Protokollen anerkennen. Darüber hinaus verringern diese Plugins die Kosten für die Einrichtung eines Protokollsystems für neue Nutzer weiter.

Darüber hinaus verfügt APISIX über zwei weitere Arten von Beobachtbarkeits-Plugins: metrics und tracing. In Kombination mit Protokoll-Plugins werden sie die Beobachtbarkeit des Gateways weiter verbessern und dazu beitragen, die Systemstabilität aufzubauen.

Tags: