Mittlerweile hat sich Kubernetes in vielen Unternehmen als perfekte Lösung für die Container-Orchestrierung herauskristallisiert. Um jedoch die Performance von Anwendungen jederzeit sicherstellen zu können, ist die Überwachung von Kubernetes-Umgebungen essenziell. So macht Kubernetes es Entwicklern möglich, Anwendungen auf Basis verteilter Microservices zu programmieren. Damit verbunden sind wiederum neue Herausforderungen, die in herkömmlichen monolithischen Umgebungen nicht existieren. Für ein besseres Verständnis Eurer Microservices-Umgebung, solltet Ihr daher wissen, wie einzelne Anforderungen zwischen den einzelnen Schichten eines Stacks bzw. den verschiedenen Services übermittelt werden. Um die Fehlerbehebung zu optimieren, müssen moderne Monitoring-Tools diese eng miteinander verzahnten Schichten überwachen und zugleich das Verhalten von Anwendungen und Infrastruktur effizient in Beziehung setzen. Denn gerade im Zeitalter von Cloud-Computing und "As-a-Service"-Bereitstellungsmodellen sind die Auswirkung schlechter Anwendungs-/Infrastrukturleistung immens. Mit ein Grund, warum Kunden angesichts des stetig zunehmenden Wettbewerbs bevorzugt zu funktionierenden und wirksamen Lösungen greifen.
Genau hier kommen Splunk und Opentelemetry ins Spiel: OpenTelemetry ist eine Sammlung von Tools, APIs und SDKs, mit denen sich Telemetriedaten (Metriken, Logs und Traces) instrumentieren, generieren, sammeln und exportieren lassen. Darüber hinaus unterstützen sie Euch auch dabei, die Leistung und das Verhalten Eurer Anwendungen zu analysieren. Allerdings ist OpenTelemetry kein Observability-Back-End wie bspw. Splunk, Prometheus oder Jaeger. Back-End-Lösungen, an die Eure gesammelten Anwendungs-Telemetriedaten exportiert und für die spätere Analyse aufbereitet werden.
In diesem Beitrag gebe ich Euch grundlegende Konfigurationsschritte für den Einsatz von Splunk OpenTelemetry Collector an die Hand. Dadurch seid ihr in der Lage, sowohl Kubernetes-Metrikdaten zu erfassen als auch die Leistung Eurer Kubernetes Workloads analysieren zu können.
Damit Ihr mit der Erfassung der Telemetriedaten Eurer Anwendung beginnen und Eure Kubernetes-Workloads besser verstehen könnt, müsst Ihr zunächst den OpenTelemetry Collector bereitstellen. Dabei handelt es sich um eine herstellerunabhängige Implementierung für den Empfang, die Verarbeitung und den Export von Telemetriedaten. Darüber hinaus macht er die Ausfürung, Nutzung und Wartung gleich mehrerer Agents/Collectors überflüssig. Stattdessen wird Euch ein Collector für alle Eure Metriken, Traces und Logs geboten, um jeden einzelnen Leistungsaspekt Eurer Kubernetes-Workloads und -Anwendungen verstehen zu können. Splunk bietet die Distribution von OpenTelemetry Collector unter Verwendung des Open-Source-Kollektorkerns von OpenTelemetry als Upstream und in Verbindung mit der Logsammlung mit FluentD an. Dadurch soll Euch bei der Analyse Eurer Kubernetes-Workloads eine robustere Erfahrung im Splunk Observability-Back-End ermöglicht werden.
Der Splunk OpenTelemetry Connector für Kubernetes installiert den Splunk OpenTelemetry Collector auf Eurem Kubernetes-Cluster. Der Splunk OpenTelemetry Connector für Kubernetes wird wiederum mithilfe eines Helm-Charts bereitgestellt. Dabei handelt es sich um Kubernetes YAML-Manifeste, die in einem einzelnen Paket zusammengefasst sind, um gleich mehrere Komponenten auf Euren Kubernetes-Clustern installieren zu können. Einmal paketiert, ist die Installation eines Helm-Charts in Eurer Cluster mindestens genauso einfach wie eine Helm-Einzelinstallation. Wodurch sich auch die Bereitstellung von Container-Anwendungen deutlich vereinfacht. Achtet aber unbedingt darauf, helm auf dem Host zu installieren, der Euren Kubernetes-Cluster ausführt, bevor Ihr beginnt.
Um mit der Bereitstellung des Splunk OpenTelemetry Connector zu beginnen, meldet Euch bei der Splunk Observability-Konsole an. Anschließend navigiert Ihr Euch zum Hamburger-Menü in der oberen linken Ecke und klickt auf "Data Setup" (Dateneinrichtung).
Wählt im Fenster "Connect Your Data" (Verbindung mit Ihren Daten herstellen) Kubernetes aus und klickt auf "Verbindung hinzufügen". Dadurch wird der Assistent zur Dateneinrichtung angezeigt, der Euch anschließend durch die verschiedenen, erforderlichen Schritte der Installation führt.
Gebt im ersten Schritt Eure benutzerdefinierten Einstellungen für den Cluster in den Verbindungs-Assistenten ein.
Folgende Optionen stehen Euch zur Verfügung:
Im zweiten Schritt zeigt der Assistent für die Dateneinrichtung alle Punkte an, die für die Installation des Splunk OpenTelemetry Connector mithilfe von Helm notwendig sind. Basierend auf den zuvor eingegebenen Daten zu Eurem Kubernetes-Cluster. Die Installation beginnt mit dem Hinzufügen und Aktualisieren des Helm-Chart-Repositorys. Anschließend verwendet Ihr Helm, um den Splunk OpenTelemetry Connector für Kubernetes zu installieren. Um die Installation abzuschließen, braucht Ihr nur noch den Code in jedem Abschnitt zu kopieren.
Für die Bestätigung des erfolgreich ausgeführten Installationsskripts lasst Ihr "kubectl get pods" auf Eurem Kubernetes-Cluster laufen. Dadurch werden alle Pods in Eurem Cluster aufgelistet. Auf diese Weise könnt ihr erkennen, dass sowohl der Collector-Agent als auch der Collector-Empfänger in Eurem Cluster bereitgestellt wurden.
Nach ungefähr 90 Sekunden beginnen die Daten damit, entsprechende Metriken aus Eurem Cluster in die Splunk Observability Cloud zu übertragen. Um diesen Vorgang zu überprüfen, könnt Ihr Euch über das Hamburger-Menü zum Infrastruktur-Dashboard navigieren. Indem Ihr einfach den Punkt "Infrastruktur" auswählt.
Klickt auf den Eintrag "Kubernetes" im Abschnitt "Container" des Dashboards.
Das Dashboard zeigt nun die Clusterdarstellung mit allen Knoten und Pods in Eurer Umgebung an.
Da der Splunk OpenTelemetry Collector jetzt Metrikdaten aus Eurem Kubernetes-Cluster in Splunk Observability Cloud exportiert, könnt Ihr die verschiedenen gesammelten Metriken probemlos weiterverarbeiten. Um zum Beispiel potenzielle Infrastrukturprobleme zu identifizieren, die Eure Kubernetes-Workloads beeinträchtigen. Oder um Daten von Anwendungen zu sammeln, die mit OpenTelemetry instrumentiert wurden.
Kubernetes hat die Bereitstellung von Anwendungen grundlegend verändert und zugleich neue Herausforderungen hervorgebracht. Umso wichtiger ist es, dass Ihr ein umfassendes Verstnändnis für die Funktionsweise Eures Kubernetes-Workloads entwickelt. Ich hoffe, meine exemplarische Darstellung kann Euch dabei helfen, den weiteren Weg mit Kubernetes erfolgreich zu meistern.
Wollt Ihr selbst einmal mit dem Splunk OpenTelemetry Collector mit Kubernetes arbeiten? Dann könnt Ihr Euch hier für eine kostenlose Testversion der Produktsuite registrieren – von Infrastructure Monitoring und APM bis hin zu Real User Monitoring (RUM) und Log Observer. Verschafft Euch einen Echtzeit-Einblick über Eure Infrastruktur und beginnt noch heute mit der schnelleren Problembehebung bei Euren Microservices. Solltet Ihr bereits Bestandskunde sein und mehr über die Einrichtung von OpenTelemetry erfahren wollen, dann werft einfach einen Blick auf unsere Dokumentation.
*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier: https://www.splunk.com/en_us/blog/devops/how-to-deploy-the-splunk-opentelemetry-collector-to-gather-kubernetes-metrics.html
----------------------------------------------------
Thanks!
Splunk
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.