Prometheus ist eine Datenbank zum speichern von System Metriken, natürlich besonders hinsichtlich Linux, Unix und Windows Systemen. Natürlich gibt es viele Alternativen, aber Prometheus ist wirklich einfach in der Handhabung. In 98% Fälle wollen Nutzer einfach nur Metriken speichern und später in Grafana darstellen.

Wichtige Technische Details schnell erklärt

Prometheus ist eine Pull Anwendung. Also Prometheus fragt entsprechende Systeme an und zieht sich die Daten raus. Das heißt die System die überwacht werden sollen, haben im Normalfall keine zusätzliche last.

Prometheus speichert dabei die Daten nicht wirklich in einer Art Datenbank, sondern in einem eigenen Format. Cache und Co. sind natürlich alle vorhanden.

Leider gibt es keine Konfigurations-GUI für Prometheus, sondern nur eine GUI um den Status abzufragen oder direkt kleine Graphen und anzeigen zu lassen. Aber als Datenschleuder absolut geil.

Prometheus mit Docker betreiben / installieren

## Docker Schnellinstallation

apt update && apt upgrade
apt install curl
 
#Docker Installation
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh


docker volume create prometheus-data
docker volume create prometheus-conf

docker run \
    -p 9090:9090 \
    -v prometheus-data:/prometheus \
    -v prometheus-conf:/etc/prometheus \
    --name prometheus \
    prom/prometheus

### Wer die Retention Time setzen möchte fügt folgendes hinzu. (Aufbewahrungszeit)
--storage.tsdb.retention.time=30d --config.file=/etc/prometheus/prometheus.yml

Daten verwalten und Konfiguration

Prometheus speichert seine Daten in dem Datenpfad “/prometheus”. Das haben wir verknüpft mit dem Docker Volume “prometheus-data”. Dort liegen eure Daten bzw. eure gespeicherten Metriken.

Unter “/etc/prometheus” liegt die Datei “prometheus.yml”. Über diese steuern wir alles was die Datenbank angeht. Dort werden auch die Verbindungen zu den Zielen angegeben.

Damit man die Daten auch findet, hier der Pfad auf eurem Docker Host.

/var/lib/docker/volumes/prometheus-data/_data
/var/lib/docker/volumes/prometheus-conf/_data

Asus RT-AX82U Gaming Router (Ai Mesh WLAN System, Aura RGB, WiFi 6 AX5400, Gaming Engine, Gigabit, 1.5 GHz TC CPU, AiProtection, USB 3.2)
  • WLAN-Router zur Lösung von Empfangs- & Performanceproblemen im Heim-Netzwerk - Empfohlen für eine WLAN-Versorgungsfläche von bis zu 160m²
  • Maximale Kompatibilität mit Modems/Modemrouter der Provider
  • AX5400 WiFi6 Dual-Band WLAN Gesamt-Geschwindigkeit (Simultane WLAN Bandbreite mit bis 4804 Mbits über 5 GHz & 574 Mbits über 2.4 GHz)

Prometheus Konfiguration – prometheus.yml

### Die Globalen Informationen
global:
  scrape_interval: 15s 
  evaluation_interval: 15s 

### Alertmanager Konfiguration ## Standard abgeschaltet. Anderes Thema
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

### Hier werden die Konfigurationen für die Zielhosts angegeben.
scrape_configs:
  # Damit überwacht sich Prometheus selbst
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]

### So sieht eine Beispiel Konfiguration aus. Alle 5 Sekunden wird hier abgefragt.

  - job_name: <SYSTEM-NAMEN>
    scrape_interval: 5s
    static_configs:
      - targets: ['<DEINE-IPs-DER-SYSTEME:9100']

### Es können im selben Format viele weitere Hosts angelegt werden.
### Einfach alles ab job_name Kopieren