GH GambleHub

Überwachung der Infrastruktur

Überwachung der Infrastruktur

1) Ziele und Rahmen

Die Infrastrukturüberwachung ist ein Signalsystem für die Gesundheit, Leistung und Verfügbarkeit der Plattform. Er muss:
  • Warnung vor Fehlern vor dem Benutzer (Früherkennung).
  • Diagnose der Grundursache (von Symptom zu Ursache).
  • Unterstützen Sie SLO-Gatting-Releases und Auto-Rollbacks.
  • Füttere die Post-Incident-Analyse (evidence as data).

Grundprinzipien: Observable by Design, weniger Lärm - mehr Signale, Automatisierung von Reaktionen, ein einheitliches Wahrheitspanel.

2) Der Dreiklang der Beobachtbarkeit

Die Metriken (timeseries): skorost/spros/oschibki/nassyschtschenije (USE/RED).
Protokolle: Ereignisdetaillierung mit Kontext; keine Geheimnisse/PII enthalten.
Traces: Verteilte Behandlungen mit Ursache-Wirkungs-Beziehungen.

Plus:
  • Profiling (CPU/heap/lock/io), eBPF für die Systemebene.
  • Ereignisse/Audits (K8s Events, Änderungen der Config/Secrets).

3) SLI/SLO/SLA - Qualitätssprache

SLI (Indikator): 'availability', 'error _ rate', 'p95 _ latency', 'queue _ lag'.
SLO (Ziel): "erfolgreiche Anfragen ≥ 99. 9% in 30 Tagen".
Error Budget: zulässige Abweichung; wird für Auto-Stop-Releases verwendet.

Beispiel SLO (YAML):
yaml service: "api-gateway"
slis:
- name: success_rate query_good: sum(rate(http_requests_total{status!~"5.."}[5m]))
query_total: sum(rate(http_requests_total[5m]))
slo: 99. 9 window: 30d

4) Überwachungsschichtkarte

1. Hosts/VMs/Nodes: CPU/Load/Steal, RAM/Swap, Disk IOPS/Latency, Filesystem.
2. Netzwerk/LB/DNS: RTT, Pakete/Drops, Backlog, SYN/Timeout, health-probes.
3. Kubernetes/Orchestrator: API-Server, etcd, Controller, Scheduler; pods/nodes, pending/evicted, throttling, kube-events.
4. Dienstleistungen/Container: RED (Rate/Errors/Duration), readiness/liveness.
5. Datenbanken/Caches: QPS, lock wait, replication lag, buffer hit, slow queries.
6. Warteschlangen/Busse: consumer lag, requeue/dead-letter, throughput.
7. Speicher/Cloud: S3/Blob Fehler und Latenz, 429/503 von Anbietern.
8. Perimetergrenzen: WAF/Rate Limits, 4xx/5xx entlang der Routen, CDN.
9. Synthetik: HTTP-Scriptchecks (Einzahlung/Ausgabe), TLS/Zertifikate.
10. Wirtschaft/Kapazität: Kosten pro Service, Utilization, Headroom.

5) Whitebox и Blackbox

Whitebox: Exporteure/SDKs innerhalb der Dienste (Prometheus, OpenTelemetry).
Blackbox: externe Proben aus verschiedenen Regionen (Availability, Latency, TLS Expiry).
Kombinieren: „Merkmal außen“ + „Diagnose innen“.

Beispiel 'blackbox _ exporter':
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) Kubernetes: Schlüsselsignale

Кластер: `apiserver_request_total`, `etcd_server_has_leader`, etcd fsync.
Узлы: `container_cpu_cfs_throttled_seconds_total`, `node_pressure`.
Pods: Pending/CrashLoopBackOff, OOMKilled, Restarts.
Pläne/Limits: Requests vs Limits, PodDisruptionBudget, HPA/VPA.
Netzwerk: NetworkPolicy drops, conntrack exhaustion.

Дашборды: «Cluster health», «Workload saturation», «Top erroring services».

7) DB und Warteschlangen

PostgreSQL/MySQL: replication lag, deadlocks, slow query %, checkpoint I/O.
Redis/Memcached: hit ratio, evictions, rejected connections.
Kafka/RabbitMQ: consumer lag, unacked, requeue, broker ISR, disk usage.

8) RED/USE Metriken und Geschäftskorrelationen

RED: `rate` (RPS), `errors` (4xx/5xx), `duration` (p95/p99).
USE (für Ressourcen): Utilization, Saturation, Errors.
Mit dem Produkt in Verbindung bringen: Einzahlungen/Auszahlungen Erfolg, Betrugsflaggen, Umbau - das sind die „Wächter“ beim Kanarienauswurf.

9) Die Struktur der Warnung

Tier-1 (Paige): Vorfälle, die das SLO betreffen (Verfügbarkeit, 5xx, Latenz, Ausfall von clusterkritischen Komponenten).
Tier-2 (Ticket): Kapazitätsabbau, Fehlerwachstum ohne Auswirkungen auf SLO.
Tier-3 (Informationen): Trends, prädiktive Kapazität, auslaufende Zertifikate.

Regeln für Eskalationen: Zeit der Stille/Komprimierung von Duplikaten, On-Call-Rotation, „follow-the-sun“.

Beispiel Alertmanager Routen:
yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10) Prometheus Regelbeispiele

10. 1 Fehler 5xx mit SLO-Schwelle

yaml groups:
- name: api rules:
- alert: HighErrorRate expr:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m])) > 0. 005 for: 10m labels: { severity: "critical", service: "api-gateway" }
annotations:
summary: "5xx > 0. 5% 10m"
runbook: "https://runbooks/api-gateway/5xx"

10. 2 Brennen von Error-Budget (Multi-Window Burn)

yaml
- alert: ErrorBudgetBurn expr:
(1 - (
sum(rate(http_requests_total{status!~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
)) > (1 - 0. 999) 14 for: 5m labels: { severity: "critical", slo: "99. 9" }
annotations: { summary: "Fast burn >14x for 5m" }

10. 3 Systemsättigung (CPU Throttling)

yaml
- alert: CPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_seconds_total[5m]) > 0. 1 for: 10m labels: { severity: "warning" }
annotations: { summary: "CPU throttling >10%" }

11) Protokolle: Sammlung, Normalisierung, Retention

Standardisierung: JSON-Logs: 'ts', 'level', 'service', 'trace _ id', 'user/tenant'.
Pipeline: Agent (Fluent Bit/Vector) → Puffer → Index/Speicher.
Editorial: PII-Maskierung/Geheimnisse am Rand.
Retention: schnelle Lagerklasse (7-14 Tage), „kaltes“ Archiv (30-180 Tage).
Semantik: error budgets/deprecates - einzelne Kanäle.

12) Traces und OpenTelemetry

Instrumentieren Sie Eingangspunkte (Gateway), kliyent→servis Anrufe, DB/Caches/Warteschlangen.
Binden Sie Metriken an Trace-Attribute (Beispiele) für eine schnelle Navigation.
OTel Collector als zentrales Gateway: Filterung, Sampling, Export in ausgewählte Becends.

Beispiel OTel Collector (Fragment):
yaml receivers: { otlp: { protocols: { http: {}, grpc: {} } } }
processors: { batch: {}, tail_sampling: { policies: [ { name: errors, type: status_code, status_codes: [ERROR] } ] } }
exporters: { prometheus: {}, otlp: { endpoint: "traces. sink:4317" } }
service:
pipelines:
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }
traces: { receivers: [otlp], processors: [tail_sampling,batch], exporters: [otlp] }

13) Synthetik und externe Kontrollen

HTTP-Runs von Business-Szenarien (Login, Einzahlung, Ausgabe, Kauf).
TLS/Domain: Laufzeit der Zertifikate/CAA/DNS health.
Regionalität: Stichproben der wichtigsten Länder/Anbieter (Routing/Blocklisten).
Synthetik muss alertieren, wenn sie für den Benutzer nicht verfügbar ist, selbst bei grüner interner Telemetrie.

14) Profiling und eBPF

Kontinuierliches Profiling: Identifizierung heißer Funktionen, Sperren.
eBPF: Systemereignisse (Syscalls, TCP retransmits), auf dem Markt mit minimalem Overhead.
Profil-Alerts ohne Stranizing (Tickets) und für Regressionen nach der Veröffentlichung - als Rollback-Signal.

15) Dashboards und das „Wahrheitspanel“

Mindestsatz:

1. Platform Overview: SLI/SLO nach Schlüsseldiensten, Error-Budget, Alerts.

2. API RED: RPS/ERRORS/DURATION nach Routen.

3. K8s Cluster: control-plane, узлы, capacity headroom.

4. DB/Cache: lag/locks/slow query %, hit ratio.

5. Queues: backlog/lag, failed/repeat.

6. Per-release: Vergleich der Vorher/Nachher-Metriken (Kanarienfenster).

7. FinOps: cost per namespace/service, idle/oversized ресурсы.

16) Vorfälle, Alert Noise und Eskalation

Deduplizierung: Gruppierung nach Service/Ursache, Unterdrückung von Kaskaden.
Stille/Wartung: Releases/Migrationen sollten nicht alles rot „färben“.
Runbooks: jede kritische Alert mit Diagnoseschritten und einem „Button“ des Rollbacks.
Postmortem: Zeitleiste, was gelernt wurde, welche Signale hinzugefügt/gereinigt wurden.

17) Sicherheit bei der Überwachung

RBAC zum Lesen/Bearbeiten von Regeln/Datasors.
Geheimnisse: Exporteur/Agent-Token - über Secret Manager.
Isolation: Metriken von Kunden/Tenanten - in separate Räume/Leiben.
Integrität: Agenten-/Bildsignatur, Config über GitOps (Merge Revue).

18) Finanzen und Kapazität (FinOps)

Quoten und Budgets; Alerts für abnormales Wachstum.
Right-Sizing: Analyse von Anfragen/Limits, CPU/RAM-Recycling, Spot-Instances für nicht kritische Aufgaben.
„Cost per request/tenant“ als Leistungskennzahl.

19) Anti-Muster

Nur Infrastruktur-Metriken ohne benutzerdefinierte SLIs.
100 + Alert „über alles“ → On-Call-Blindheit.
Logs als einzige Quelle (ohne Metriken und Tracing).
Mutable Dashboards ohne Versionierung/Revue.
Das Fehlen von Synthetik: „alles ist grün“, aber die Front ist nicht zugänglich.
Keine Verknüpfung mit Releases: Man kann nicht beantworten, „was sich zum Zeitpunkt X verändert hat“.

20) Implementierung Checkliste (0-60 Tage)

0-15 Tage

Definieren Sie SLI/SLO für 3-5 Schlüsseldienste.
Grundlegende Exporteure/Agenten einbeziehen, JSON-Protokolle standardisieren.
Konfigurieren Sie Tier-1-Alerts (Verfügbarkeit, 5xx, p95).

16-30 Tage

Fügen Sie Synthetik nach kritischen Szenarien hinzu.
Trails (OTel) auf Input/Critical Services aktivieren.
Dashboards „Per-release“ und error-budget burn-rules.

31-60 Tage

DB/Warteschlangen/Cache mit fortgeschrittenen Signalen abdecken.
eBPF/Profiling für High-CPU-Dienste implementieren.
GitOps für Regeln/Dashboards/Alert, regelmäßige Geräuschreinigung.

21) Reifegradkennzahlen

Die SLO-Abdeckung der Schlüsseldienste ≥ 95%.
MTTA/MTTR (Ziel: min/zehn Minuten).
Der Anteil der Tier-1-Warnmeldungen, die durch eine Auto-Aktion oder einen schnellen Rollback geschlossen werden.
Das Verhältnis „nützlich „/“ laut “alert> 3: 1.
Synthetische Abdeckung aller „monetären“ Wege = 100%.

22) Anwendungen: Mini-Vorlagen

Prometheus - Barrierefreiheit nach Status-Klassen

yaml
- record: job:http:availability:ratio_rate5m expr: sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

Grafana - Hinweis für Kanarienvögel


expr: histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket{version=~"stable    canary"}[5m])) by (le,version))

Alertmanager - Pflicht und Stille

yaml receivers:
- name: pager slack_configs:
- channel: "#oncall"
send_resolved: true inhibit_rules:
- source_match: { severity: "critical" }
target_match: { severity: "warning" }
equal: ["service"]

23) Schlussfolgerung

Monitoring ist kein Satz von Zeitplänen, sondern das Betriebssystem SRE: SLI/SLO als Qualitätsvertrag, Metriken/Traces/Logs als Quellen der Wahrheit, Alerts als gesteuertes Signal, Synthetik als „Stimme des Nutzers“, GitOps als Disziplin des Wandels. Erstellen Sie einen einzigen Pfad vom Host bis zur API, binden Sie ihn an Releases und Rollbacks - und die Plattform ist vorhersehbar, schnell und kostengünstig.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.