Skip to main content

Die Bedeutung des Container-Monitorings

Artikel von
blog hero snyk container purple

2. März 2022

0 Min. Lesezeit

Mit der zunehmenden Beliebtheit von Containern entstehen neue Risiken für die Container-Sicherheit, die Unternehmen potenziell Bußgeldern, Produktivitätsverlusten und Umsatzeinbußen aussetzen. Darüber hinaus können Probleme mit Anwendungen und Infrastruktur verhindern, dass Container möglichst reibungslos funktionieren. Container-Monitoring-Tools helfen Unternehmen dabei, ihre Container-Umgebungen kontinuierlich zu überwachen und so Sicherheit, Leistung und Verfügbarkeit sicherzustellen.

Sehen wir uns Container-Monitoring genauer an: warum es wichtig ist, welche Herausforderungen damit verbunden sind und wie es sowohl bei der Observability als auch bei der Sicherheit hilft.

Container-Monitoring erklärt

Was ist Container-Monitoring?

Beim Container-Monitoring werden Messwerte erfasst und der Zustand containerisierter Anwendungen und Microservices-Architekturen überwacht. Aufgrund der kurzlebigen Natur von Containern und der Einschränkungen bestehender Tools zur Überwachung der Anwendungsleistung kann dieser Prozess für viele Unternehmen schwierig sein. Ziel des Container-Monitorings ist es, sicherzustellen, dass Container-Workloads wie erwartet funktionieren und reibungslos laufen. Container-Monitoring ist ein Teilbereich der Container-Observability, zu der auch Log-Analysen, Benachrichtigungen, Tracing und mehr gehören.

Warum ist Container-Monitoring wichtig?

Jede Container-Architektur erzeugt kontinuierlich Logs, Metriken und Traces. Wer diese riesige Datenmenge versteht, kann nachvollziehen, was auf Host- oder Cluster-Ebene sowie in der Container-Runtime-Umgebung und der Anwendung selbst geschieht. Kontinuierliches Monitoring hilft DevOps-Teams, die MTTR (Mean Time to Recovery) bei Leistungsproblemen zu senken und weitere wichtige KPIs zu erfüllen.

Beim Docker-Container-Monitoring werden beispielsweise Docker-Container-Logs, Metriken und Traces untersucht, um Einblicke in diese besondere Umgebung zu gewinnen. Diese Einblicke unterstützen DevOps-Teams bei der Fehlerbehebung, der Ursachenanalyse, der Bedrohungssuche und allgemein dabei, die Leistung ihrer Container-Anwendungen und -Infrastruktur zu verstehen.

Herausforderungen beim Container-Monitoring

Mit dem Wachstum containerisierter und auf Microservices basierender Anwendungsumgebungen wird auch deren Monitoring immer anspruchsvoller. Da Container nur kurzlebig sind, können sie schnell bereitgestellt oder wieder gelöscht werden. Dadurch lassen sich Änderungen nur schwer nachverfolgen – insbesondere, wenn DevOps-Teams in kurzer Zeit neue Anwendungen auf den Markt bringen.

Außerdem teilen sich Container Ressourcen wie Arbeitsspeicher, CPU und mehr. Das erschwert es, den Ressourcenverbrauch des physischen Hosts zu überwachen oder Muster beim Zustand der Anwendung, mögliche Sicherheitsprobleme und Leistungseinbußen von Containern zu erkennen. Kurz gesagt: Viele herkömmliche Monitoring- und Observability-Lösungen sind nicht für die Überwachung und Fehlerbehebung in containerisierten Umgebungen ausgelegt.

Container-Sicherheit mit Fokus auf Entwickler

Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.

Herkömmliches Monitoring reicht nicht aus

Die Konzepte von Monitoring und Observability sind bei herkömmlichen und containerisierten Anwendungen zwar theoretisch ähnlich, doch in der Praxis ist das Monitoring einer containerisierten Umgebung deutlich komplexer.

Herkömmliche Tools für das Infrastruktur- und Anwendungs-Monitoring haben in verteilten Microservices-Umgebungen oft Schwierigkeiten. Ihre Technologie wurde für die Überwachung monolithischer Anwendungen entwickelt, die einzelnen Servern zugeordnet sind. In einer Container-Umgebung sind Microservices auf Server-Cluster mit unterschiedlichen Workloads, Datenbankmanagementsystemen und mehr verteilt.

Eine einzelne Anwendung kann sich beispielsweise über verschiedene Programmiersprachen, Anwendungen und Infrastrukturkomponenten erstrecken. Anfragen zwischen diesen Services erzeugen Daten (Logs, Metriken und Traces), die von Container-Monitoring-Tools erfasst werden. Da herkömmliche Tools auf eine einfachere Client-Server-Architektur ausgerichtet sind, bleiben viele dieser Service-Aufrufe und die Kommunikation zwischen Containern möglicherweise unberücksichtigt. Cloud-native Monitoring-Tools sind erforderlich, um diese wichtigen Lücken zu schließen.

Ein Container-Monitoring-Tool auswählen

Das passende Container-Monitoring-Tool sollte Ihnen einen Überblick über Ihre Anwendung und deren Infrastrukturkomponenten geben. Sie sollten sehen können, wie die gesamte Anwendung sowohl im geschäftlichen Kontext als auch auf der technischen Plattform funktioniert. Außerdem sollte das Tool Logs und Systemereignisse miteinander verknüpfen, damit Sie potenzielle Probleme erkennen und darauf reagieren können.

Über diese grundlegenden Funktionen hinaus sollten Sie jede Komponente und Ebene genauer untersuchen können, um potenzielle Fehlerquellen zu isolieren und zu identifizieren. Das Container-Monitoring-Tool sollte Ihnen helfen, die Topologie der Services, Anwendungen und Infrastruktur Ihres Container-Ökosystems zu visualisieren und Echtzeit-Warnmeldungen einzurichten, um Probleme zu diagnostizieren und darauf zu reagieren. Auch fortschrittliche Funktionen wie die automatisierte Nutzung von Container-Ressourcen und Empfehlungen zur Vermeidung künftiger Probleme sind wichtig.

Zu den beliebten Open-Source-Observability-Tools gehören Jaeger für Tracing, Prometheus für Metriken, Logstash für Logs und Grafana zur Visualisierung und Analyse erfasster Daten. Im Bereich Observability gibt es zahlreiche Anbieter. Führen Sie daher einen POC durch, um die Lösung zu ermitteln, die am besten zu den Anforderungen Ihres gesamten Ökosystems passt.

Kontinuierliches Monitoring zum Auffinden neuer Schwachstellen

Container-Monitoring-Tools unterstützen die allgemeine System-Observability und die Suche nach Bedrohungen. Darüber hinaus hilft Container-Scanning DevSecOps-Teams dabei, neue Schwachstellen proaktiv aufzuspüren.

Sicherheitslücken in Containern können auf verschiedene Weise entstehen: durch die im Container enthaltene Software, die Interaktion des Containers mit dem Host-Betriebssystem und benachbarten Containern, die Netzwerk- und Speicherkonfigurationen und mehr. Ein Container-Scanner automatisiert die Analyse verschiedener Containerkomponenten, um Sicherheitslücken zu erkennen.

Da Container aus vielen Ebenen bestehen, erfordert umfassende Sicherheit das Scannen von benutzerdefiniertem Code, Open-Source-Abhängigkeiten, Containern und Dockerfiles (und in manchen Fällen auch von Infrastructure-as-Code-Dateien (IaC)). Diese Komponenten müssen bei der modernen Cloud-native-Anwendungssicherheit überwacht werden. Außerdem ist es entscheidend, Container vor der Bereitstellung und Workloads in der Produktionsumgebung zu scannen.

Wie die Sicherheit von Snyk Container das Container-Monitoring ergänzt

Container- und Kubernetes-Sicherheit stellen viele Teams vor Herausforderungen, denn die Tools sind für Entwickler und DevSecOps-Teams oft mit einer steilen Lernkurve verbunden. Container-Monitoring in Kombination mit einem entwicklerorientierten Ansatz für Container-Sicherheit macht Observability zu einem festen Bestandteil des Arbeitsalltags und der Build-Prozesse des Teams.

Eine dedizierte Lösung für Container-Sicherheit wie Snyk Container ergänzt das Container-Monitoring und hilft Teams, proaktiver für die Sicherheit ihrer Container zu sorgen. Snyk Container überwacht Container-Deployments und ermöglicht es Entwicklern, Sicherheitsprobleme mithilfe konkreter Anleitungen schnell zu beheben – angefangen mit Empfehlungen für Basis-Images. Außerdem kann das Tool Dockerfiles erkennen und automatisch Pull Requests (PRs) mit Korrekturen direkt aus Git-Repositories erstellen.

Container-Sicherheit mit Fokus auf Entwickler

Snyk findet und behebt automatisch Schwachstellen in Container-Images und Kubernetes-Workloads.

Auf unserer Seite Security Resources erfahren Sie, wie Snyk Entwickler dabei unterstützt, hochwertigen und sicheren Code zu erstellen.