Nagios nám sloužil věrně deset let. Ale v dynamickém světě kontejnerů, kde se pody rodí a umírají každou minutu, je statická konfigurace monitoringu neudržitelná. Prometheus s jeho service discovery a pull modelem je přesně to, co potřebujeme.
Proč ne Nagios/Zabbix¶
Tradiční monitoring funguje na principu: nakonfigurujte seznam hostů, definujte checky, sledujte. Jenže v Kubernetes nemáte „hosty” — máte pody, které se dynamicky přesouvají mezi nody, scalují nahoru a dolů, umírají a rodí se znovu.
Prometheus architektura¶
Prometheus funguje na pull modelu — sám si chodí pro metriky na definované endpointy. V Kubernetes má nativní service discovery: automaticky najde všechny pody s anotací prometheus.io/scrape: "true" a začne z nich sbírat metriky.
PromQL — jazyk, který milujete nebo nenávidíte¶
# Request rate per second za posledních 5 minut
rate(http_requests_total[5m])
# 99. percentil latence
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))
# CPU utilizace podu
rate(container_cpu_usage_seconds_total{namespace="production"}[5m])
PromQL se učíte postupně, ale jakmile ho ovládnete, dokážete odpovědět na otázky, které byste s Nagiosem nikdy nepoložili.
Grafana dashboardy¶
Prometheus sám má minimalistické webové UI. Pro vizualizaci používáme Grafanu, která má nativní Prometheus datasource. Komunita sdílí tisíce hotových dashboardů na grafana.com.
Alerting s Alertmanagerem¶
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 }}"
Instrumentace aplikací¶
Prometheus klientské knihovny existují pro Javu, Go, Python, Node.js a další. Ve Spring Boot stačí přidat Micrometer s Prometheus registry a máte metriky za pár minut. Counter, Gauge, Histogram, Summary — čtyři typy metrik pokryjí většinu potřeb.
Prometheus je standard pro cloud-native monitoring¶
Přechod z Nagiosu nebyl triviální — museli jsme přehodnotit, co a jak monitorujeme. Ale výsledek je nesrovnatelně lepší. Prometheus s Grafanou a Alertmanagerem je dnes naše standardní monitoring trojice.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns