Prometheus / Grafana: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K Schützte „Prometheus / Grafana“ ([Bearbeiten=Nur Administratoren erlauben] (unbeschränkt) [Verschieben=Nur Administratoren erlauben] (unbeschränkt)) |
Keine Bearbeitungszusammenfassung |
||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= 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
- Im Browser öffnen:
http://10.0.0.20:3000
- Menü:
Settings → Data Sources
- Wähle
Prometheus
- URL:
http://localhost:9090
- 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
|