Prometheus / Grafana

Aus homelab-wiki.de
Version vom 14. Juli 2025, 18:00 Uhr von Homelabadmin (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Prometheus + Grafana Installation auf Debian 12 (IP: 10.0.0.20)

Voraussetzungen

  • Debian 12 Server mit statischer IP (z. B. 10.0.0.20)
  • Root- oder Sudo-Zugriff
  • Internetverbindung
  • Optional: ein zweiter Server/Webserver für Node Exporter (z. B. 10.0.0.30)

System aktualisieren

sudo apt update && sudo apt upgrade -y

Prometheus 2.53.5 installieren

Download und Entpacken

cd /opt
sudo wget https://github.com/prometheus/prometheus/releases/download/v2.53.5/prometheus-2.53.5.linux-amd64.tar.gz
sudo tar -xvf prometheus-2.53.5.linux-amd64.tar.gz
sudo mv prometheus-2.53.5.linux-amd64 prometheus

Benutzer und Verzeichnisse erstellen

sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir -p /etc/prometheus /var/lib/prometheus

Binärdateien kopieren

cd /opt/prometheus
sudo cp prometheus promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool

Konfiguration kopieren

sudo cp -r consoles/ console_libraries/ /etc/prometheus/
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus

Prometheus konfigurieren

sudo nano /etc/prometheus/prometheus.yml

Beispiel-Inhalt:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'webserver'
    static_configs:
      - targets: ['10.0.0.30:9100']

Systemd-Service für Prometheus erstellen

sudo nano /etc/systemd/system/prometheus.service

Inhalt:

[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
  --config.file=/etc/prometheus/prometheus.yml \
  --storage.tsdb.path=/var/lib/prometheus/

[Install]
WantedBy=multi-user.target

Prometheus starten

sudo systemctl daemon-reexec
sudo systemctl enable --now prometheus

Grafana installieren

Repository einrichten

sudo apt install -y software-properties-common
sudo mkdir -p /etc/apt/keyrings
sudo wget -q -O /etc/apt/keyrings/grafana.key https://packages.grafana.com/gpg.key

echo "deb [signed-by=/etc/apt/keyrings/grafana.key] https://packages.grafana.com/oss/deb stable main" | \
  sudo tee /etc/apt/sources.list.d/grafana.list

sudo apt update

Grafana installieren

sudo apt install grafana -y
sudo systemctl enable --now grafana-server

Webinterface: [1](http://10.0.0.20:3000) Standard-Login: admin / admin

Grafana mit Prometheus verbinden

  1. Im Browser öffnen: http://10.0.0.20:3000
  2. Menü: Settings → Data Sources
  3. Wähle Prometheus
  4. URL: http://localhost:9090
  5. Speichern & Testen

Node Exporter auf Webserver (z. B. 10.0.0.30)

Download und Start

cd /opt
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-1.8.0.linux-amd64.tar.gz
tar xvf node_exporter-1.8.0.linux-amd64.tar.gz
cd node_exporter-1.8.0.linux-amd64
./node_exporter &

Testen

curl http://10.0.0.30:9100/metrics

Firewall freischalten (falls aktiv)

sudo ufw allow 9100/tcp

Firewalls (optional)

sudo ufw allow 9090/tcp  # Prometheus
sudo ufw allow 3000/tcp  # Grafana

Übersicht

Komponente IP-Adresse Port Aufgabe
Prometheus 10.0.0.20 9090 Metriken sammeln
Grafana 10.0.0.20 3000 Visualisierung
Node Exporter 10.0.0.30 9100 Metriken vom Webserver

Fehlerbehebung: Grafana UI unter http://10.0.0.20:3000 nicht erreichbar

1. Läuft der Grafana-Dienst?

Prüfen, ob Grafana korrekt gestartet ist:

sudo systemctl status grafana-server

Wenn der Dienst als inactive oder failed angezeigt wird, Logs anzeigen:

sudo journalctl -u grafana-server --no-pager | tail -30

2. Lauscht Grafana auf Port 3000?

ss -tuln | grep 3000

Ausgabe sollte etwa so aussehen:

LISTEN  0  128  0.0.0.0:3000  ...

Wenn keine Ausgabe erscheint, läuft Grafana nicht oder ist falsch konfiguriert.

3. Firewall prüfen

Bei aktivierter UFW:

sudo ufw status

Port freigeben (wenn nötig):

sudo ufw allow 3000/tcp

4. Netzwerkverbindung testen

Vom Client aus (anderer PC im Netzwerk):

ping 10.0.0.20
curl http://10.0.0.20:3000

Wenn beides fehlschlägt, ist die IP-Adresse möglicherweise falsch oder blockiert. Auf dem Server prüfen:

ip a

5. Grafana lauscht nur auf 127.0.0.1?

Grafana ist standardmäßig nur lokal erreichbar. Um externe Zugriffe zu erlauben:

sudo nano /etc/grafana/grafana.ini

Folgende Zeile suchen:

;http_addr =

Ändern in:

http_addr = 0.0.0.0

Dann neu starten:

sudo systemctl restart grafana-server

6. Läuft Grafana in Docker?

Falls Grafana über Docker betrieben wird:

docker ps

Stelle sicher, dass Port 3000 korrekt gemappt ist:

0.0.0.0:3000->3000/tcp

Zusammenfassung der häufigsten Ursachen

Problem Mögliche Ursache Lösung
Dienst läuft nicht Grafana-Server ist abgestürzt systemctl restart grafana-server Kein Zugriff von außen Lauscht nur auf 127.0.0.1 http_addr = 0.0.0.0 setzen Firewall blockiert UFW blockiert Port 3000 sudo ufw allow 3000/tcp IP nicht erreichbar Falsche IP-Adresse oder Routing Mit ip a prüfen Docker falsch konfiguriert Port nicht gemappt Container mit -p 3000:3000 starten