Prometheus / Grafana: Unterschied zwischen den Versionen

Aus homelab-wiki.de
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Zeile 155: Zeile 155:
|-
|-
| Node Exporter || 10.0.0.30 || 9100 || Metriken vom Webserver
| 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:
<pre>
sudo systemctl status grafana-server
</pre>
Wenn der Dienst als <code>inactive</code> oder <code>failed</code> angezeigt wird, Logs anzeigen:
<pre>
sudo journalctl -u grafana-server --no-pager | tail -30
</pre>
== 2. Lauscht Grafana auf Port 3000? ==
<pre>
ss -tuln | grep 3000
</pre>
Ausgabe sollte etwa so aussehen:
<pre>
LISTEN  0  128  0.0.0.0:3000  ...
</pre>
Wenn keine Ausgabe erscheint, läuft Grafana nicht oder ist falsch konfiguriert.
== 3. Firewall prüfen ==
Bei aktivierter UFW:
<pre>
sudo ufw status
</pre>
Port freigeben (wenn nötig):
<pre>
sudo ufw allow 3000/tcp
</pre>
== 4. Netzwerkverbindung testen ==
Vom Client aus (anderer PC im Netzwerk):
<pre>
ping 10.0.0.20
curl http://10.0.0.20:3000
</pre>
Wenn beides fehlschlägt, ist die IP-Adresse möglicherweise falsch oder blockiert. Auf dem Server prüfen:
<pre>
ip a
</pre>
== 5. Grafana lauscht nur auf 127.0.0.1? ==
Grafana ist standardmäßig nur lokal erreichbar. Um externe Zugriffe zu erlauben:
<pre>
sudo nano /etc/grafana/grafana.ini
</pre>
Folgende Zeile suchen:
<pre>
;http_addr =
</pre>
Ändern in:
<pre>
http_addr = 0.0.0.0
</pre>
Dann neu starten:
<pre>
sudo systemctl restart grafana-server
</pre>
== 6. Läuft Grafana in Docker? ==
Falls Grafana über Docker betrieben wird:
<pre>
docker ps
</pre>
Stelle sicher, dass Port 3000 korrekt gemappt ist:
<pre>
0.0.0.0:3000->3000/tcp
</pre>
== Zusammenfassung der häufigsten Ursachen ==
{| class="wikitable"
! Problem !! Mögliche Ursache !! Lösung
|-
| Dienst läuft nicht || Grafana-Server ist abgestürzt || <code>systemctl restart grafana-server</code>
| Kein Zugriff von außen || Lauscht nur auf <code>127.0.0.1</code> || <code>http_addr = 0.0.0.0</code> setzen
| Firewall blockiert || UFW blockiert Port 3000 || <code>sudo ufw allow 3000/tcp</code>
| IP nicht erreichbar || Falsche IP-Adresse oder Routing || Mit <code>ip a</code> prüfen
| Docker falsch konfiguriert || Port nicht gemappt || Container mit <code>-p 3000:3000</code> starten
|}
|}

Aktuelle Version vom 14. Juli 2025, 18:00 Uhr

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