Nagios hat uns zehn Jahre lang treu gedient. Aber in der dynamischen Welt der Container, in der Pods jede Minute geboren werden und sterben, ist eine statische Monitoring-Konfiguration nicht haltbar. Prometheus mit seiner Service Discovery und dem Pull-Modell ist genau das, was wir brauchen.
Warum nicht Nagios/Zabbix¶
Traditionelles Monitoring funktioniert nach dem Prinzip: Konfigurieren Sie eine Liste von Hosts, definieren Sie Checks, überwachen Sie. Aber in Kubernetes haben Sie keine “Hosts” – Sie haben Pods, die dynamisch zwischen Nodes wechseln, hoch- und herunterskalieren, sterben und wiedergeboren werden.
Prometheus-Architektur¶
Prometheus arbeitet mit einem Pull-Modell – es holt sich aktiv Metriken von definierten Endpoints. In Kubernetes hat es native Service Discovery: Es findet automatisch alle Pods mit der Annotation prometheus.io/scrape: "true" und beginnt, Metriken von ihnen zu sammeln.
PromQL – Eine Sprache, die man liebt oder hasst¶
# Prometheus -- Monitoring für die Container-Welt
rate(http_requests_total[5m])
# 99th percentile latency
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
# Pod CPU utilization
rate(container_cpu_usage_seconds_total{namespace="production"}[5m])
PromQL lernt man schrittweise, aber sobald man es beherrscht, kann man Fragen beantworten, die man mit Nagios nie gestellt hätte.
Grafana-Dashboards¶
Prometheus selbst hat ein minimalistisches Web-UI. Für die Visualisierung verwenden wir Grafana, das eine native Prometheus-Datenquelle hat. Die Community teilt Tausende fertiger Dashboards auf grafana.com.
Alerting mit Alertmanager¶
groups:
- name: application
rules:
- alert: HighErrorRate
expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.1
for: 5m
labels:
severity: critical
annotations:
summary: "High error rate on {{ $labels.service }}"
Anwendungsinstrumentierung¶
Prometheus-Client-Bibliotheken gibt es für Java, Go, Python, Node.js und andere. In Spring Boot fügen Sie einfach Micrometer mit Prometheus-Registry hinzu und haben in wenigen Minuten Metriken. Counter, Gauge, Histogram, Summary – vier Metriktypen decken die meisten Anforderungen ab.
Prometheus ist der Standard für Cloud-natives Monitoring¶
Der Umstieg von Nagios war nicht trivial – wir mussten überdenken, was und wie wir überwachen. Aber das Ergebnis ist unvergleichlich besser. Prometheus mit Grafana und Alertmanager ist jetzt unser Standard-Monitoring-Trio.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns