Prometheus

Spickzettel für Monitoring-System Prometheus.

Links:

TODO

Prometheus in Docker

Quelle: Vortrag "Monitoring mit Prometheus" von Michael Stapelberg

  1. Verzeichnis für lokalen Prometheus anlegen:

    mkdir prometheus
    cd prometheus
  2. Prometheus in Docker starten:

    docker run -p 9090:9090 prom/prometheus
  3. Konfigurations-Seite von Prometheus öffnen: http://localhost:9090/config

  4. Prometheus wieder stoppen

  5. Default-Konfiguration in Zwischenablage kopieren und in prometheus.yml abspeichern:

    vi prometheus.yml
  6. Evtl. Konfiguration ändern (z.B. Target hinzufügen, Details siehe Doku "Configuration").

  7. Prometheus mit Konfiguration starten:

    docker run -v $(pwd):/prometheus -p 9090:9090 prom/prometheus --config.file=/prometheus/prometheus.yml
  8. Grafana in Docker starten:

    docker run -p 3030:3000 grafana/grafana
    • Hinweis: Ich verwende Port 3030, weil ich 3000 oft in node-Projekten verwenden. Der Port kann natürlich beliebig gewählt werden.
  9. Grafana öffnen: http://localhost:3030 (User / Passwort: admin / admin)

  10. Data Source einrichten:

    1. Unter Configuration -> Data Sources auf "Add data source" drücken.
    2. "Prometheus" auswählen
    3. URL eintragen (mit IP von Host-Rechner) - z.B. http://192.168.0.10:9090
    4. Ganz unten auf "Save & Test" drücken
  11. Nun kann man Dashboards anlegen oder per Explore Metriken abfragen (letzteres geht natürlich auch direkt in Prometheus).

Prometheus in Kubernetes

kube-prometheus bietet einfache Installation eines kompletten Stack mit:

kube-prometheus in minikube ausprobieren

Quelle: kube-prometheus

Minikube aktualisieren:

brew upgrade minikube

Minikube starten:

minikube delete && minikube start --kubernetes-version=v1.18.1 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.address=0.0.0.0 --extra-config=controller-manager.address=0.0.0.0

Kubernetes-eigenen metrics-server deaktivieren:

minikube addons disable metrics-server

kube-prometheus clonen:

git clone https://github.com/coreos/kube-prometheus.git

kube-prometheus in minikube deployen:

cd kube-prometheus
kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/

Dashboards anschauen:

Optional: kube-prometheus wieder löschen:

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

kube-prometheus in kube-Cluster installieren

Webhook-Authentifizierung erlauben:

kops set cluster spec.kubelet.authenticationTokenWebhook=true
kops set cluster spec.kubelet.authorizationMode=Webhook

kube-prometheus clonen:

git clone https://github.com/coreos/kube-prometheus.git

kube-prometheus im Cluster deployen:

cd kube-prometheus
kubectl create -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl create -f manifests/