Prometheus / Grafana: Unterschied zwischen den Versionen

Aus homelab-wiki.de
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „c“
 
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
c
= Prometheus + Grafana Installation auf Debian 12 (IP: 10.0.0.20) =
 
== Voraussetzungen ==
* Debian 12 Server mit statischer IP (z. B. <code>10.0.0.20</code>)
* Root- oder Sudo-Zugriff
* Internetverbindung
* Optional: ein zweiter Server/Webserver für Node Exporter (z. B. <code>10.0.0.30</code>)
 
== System aktualisieren ==
<pre>
sudo apt update && sudo apt upgrade -y
</pre>
 
== Prometheus 2.53.5 installieren ==
=== Download und Entpacken ===
<pre>
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
</pre>
 
=== Benutzer und Verzeichnisse erstellen ===
<pre>
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir -p /etc/prometheus /var/lib/prometheus
</pre>
 
=== Binärdateien kopieren ===
<pre>
cd /opt/prometheus
sudo cp prometheus promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus /usr/local/bin/promtool
</pre>
 
=== Konfiguration kopieren ===
<pre>
sudo cp -r consoles/ console_libraries/ /etc/prometheus/
sudo cp prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus /var/lib/prometheus
</pre>
 
== Prometheus konfigurieren ==
<pre>
sudo nano /etc/prometheus/prometheus.yml
</pre>
 
Beispiel-Inhalt:
<pre>
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']
</pre>
 
== Systemd-Service für Prometheus erstellen ==
<pre>
sudo nano /etc/systemd/system/prometheus.service
</pre>
 
Inhalt:
<pre>
[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
</pre>
 
=== Prometheus starten ===
<pre>
sudo systemctl daemon-reexec
sudo systemctl enable --now prometheus
</pre>
 
== Grafana installieren ==
=== Repository einrichten ===
<pre>
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
</pre>
 
=== Grafana installieren ===
<pre>
sudo apt install grafana -y
sudo systemctl enable --now grafana-server
</pre>
 
Webinterface: [http://10.0.0.20:3000](http://10.0.0.20:3000) 
Standard-Login: <code>admin</code> / <code>admin</code>
 
== Grafana mit Prometheus verbinden ==
# Im Browser öffnen: <code>http://10.0.0.20:3000</code>
# Menü: <code>Settings → Data Sources</code>
# Wähle <code>Prometheus</code>
# URL: <code>http://localhost:9090</code>
# Speichern & Testen
 
== Node Exporter auf Webserver (z. B. 10.0.0.30) ==
=== Download und Start ===
<pre>
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 &
</pre>
 
=== Testen ===
<pre>
curl http://10.0.0.30:9100/metrics
</pre>
 
=== Firewall freischalten (falls aktiv) ===
<pre>
sudo ufw allow 9100/tcp
</pre>
 
== Firewalls (optional) ==
<pre>
sudo ufw allow 9090/tcp  # Prometheus
sudo ufw allow 3000/tcp  # Grafana
</pre>
 
== Übersicht ==
{| class="wikitable"
! 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:
<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