diff --git a/docs/12-monitoring.md b/docs/12-monitoring.md new file mode 100644 index 0000000..5d70b55 --- /dev/null +++ b/docs/12-monitoring.md @@ -0,0 +1,220 @@ +# 12 — Monitoring Stack (Prometheus + Loki + Grafana) + +**Datum:** 2026-03-20 +**Namespace:** monitoring +**Node:** rnk-wrk01 (Hauptkomponenten via nodeSelector) + +--- + +## Übersicht + +| Komponente | Aufgabe | +|---|---| +| **Prometheus** | Metriken scrapen, speichern, auswerten | +| **Grafana** | Visualisierung von Metriken und Logs | +| **Alertmanager** | Alerts auswerten und weiterleiten | +| **Node Exporter** | System-Metriken von allen Nodes (CPU, RAM, Disk) | +| **kube-state-metrics** | Kubernetes-Objekt-Status als Metriken | +| **Loki** | Log-Aggregation (wie Prometheus, aber für Logs) | +| **Promtail** | Log-Collector — läuft als DaemonSet auf allen Nodes | + +--- + +## Installation + +### Schritt 1: Helm Repos hinzufügen + +```bash +helm repo add prometheus-community https://prometheus-community.github.io/helm-charts +helm repo add grafana https://grafana.github.io/helm-charts +helm repo update +``` + +### Schritt 2: Namespace erstellen + +```bash +kubectl create namespace monitoring +``` + +### Schritt 3: kube-prometheus-stack installieren + +```bash +helm upgrade --install kube-prometheus-stack prometheus-community/kube-prometheus-stack \ + --namespace monitoring \ + --set grafana.adminPassword=bmw520AUDI \ + --set prometheus.prometheusSpec.nodeSelector."kubernetes\.io/hostname"=rnk-wrk01 \ + --set grafana.nodeSelector."kubernetes\.io/hostname"=rnk-wrk01 \ + --set alertmanager.alertmanagerSpec.nodeSelector."kubernetes\.io/hostname"=rnk-wrk01 \ + --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName=longhorn \ + --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.accessModes[0]=ReadWriteOnce \ + --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=20Gi \ + --set grafana.persistence.enabled=true \ + --set grafana.persistence.storageClassName=longhorn \ + --set grafana.persistence.size=5Gi \ + --wait --timeout=300s +``` + +### Schritt 4: Loki + Promtail installieren + +```bash +helm upgrade --install loki grafana/loki-stack \ + --namespace monitoring \ + --set loki.persistence.enabled=true \ + --set loki.persistence.storageClassName=longhorn \ + --set loki.persistence.size=20Gi \ + --set promtail.enabled=true \ + --wait --timeout=300s +``` + +### Schritt 5: Grafana Ingress erstellen + +```bash +kubectl apply -f - <