So installierst du Grafana und Prometheus unter Ubuntu 24.04
Grafana ist eine quelloffene und plattformübergreifende Datenvisualisierungsplattform, die von Grafana Labs entwickelt wurde. Grafana bietet eine interaktive Webanwendung zur Datenvisualisierung mit Diagrammen, Grafiken und Warnmeldungen. Mit Grafana kannst du Metriken, Logs und Traces der TSDB abfragen, visualisieren, Alarme einrichten und untersuchen. Es ist ein leistungsfähiges Tool, das Daten aus Zeitreihen-Datenbanken (TSDB) in aufschlussreiche Grafiken und Visualisierungen verwandelt.
In Grafana kannst du deine Zeitreihendaten über die „Datenquelle“ hinzufügen. Grafana unterstützt zahlreiche Datenquellen wie Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor und viele mehr.
In diesem Tutorial lernst du, wie du Grafana, Prometheus und node_exporter auf Ubuntu 24.04 Servern installierst. Außerdem installierst du Nginx als Reverse Proxy für Grafana, integrierst node_exporter und Prometheus und fügst Prometheus als Datenquelle zum Grafana Dashboard hinzu.
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast
- Zwei oder drei Ubuntu 24.04 Server.
- Einen Nicht-Root-Benutzer mit Administrator-Rechten.
Installieren von Grafana auf Ubuntu
Grafana ist eine Webanwendung zur Datenvisualisierung. Um Grafana zu installieren, musst du das Grafana-Repository hinzufügen. In diesem Beispiel installierst du außerdem Nginx als Reverse Proxy für Grafana.
Installieren von Abhängigkeiten und Hinzufügen eines Repositorys
In diesem Abschnitt installierst du die Abhängigkeiten, einschließlich Nginx, und fügst dann das Grafana-Repository hinzu.
Führe zunächst den folgenden Befehl aus, um die Abhängigkeiten für Grafana zu installieren. Gib Y
ein, um die Installation zu bestätigen.
sudo apt install gnupg2 apt-transport-https software-properties-common wget nginx
Füge nun den Grafana GPG-Schlüssel und das Repository mit dem folgenden Befehl hinzu.
wget -q -O - https://packages.grafana.com/gpg.key > grafana.key cat grafana.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/grafana.gpg > /dev/null
echo ‘deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main’ | sudo tee /etc/apt/sources.list.d/grafana.list
Aktualisiere dann deinen Paketindex mit dem unten stehenden Befehl:
sudo apt update
Installieren und Konfigurieren von Grafana
Nachdem du das Grafana-Repository hinzugefügt hast, installierst du das Grafana-Paket mit dem APT-Paketmanager. Dann konfigurierst du Grafana so, dass es unter localhost
mit der Domain hwdomain.io
läuft.
Um Grafana zu installieren, führe den folgenden Befehl apt
aus. Gib Y
ein, um mit der Installation fortzufahren.
sudo apt install grafana
Nachdem die Installation abgeschlossen ist, lade den systemd manager mit dem folgenden Befehl neu:
sudo systemctl daemon-reload
Jetzt kannst du den grafana-server
mit dem folgenden systemctl
Befehl starten und aktivieren. Überprüfe dann, ob der Dienst läuft.
sudo systemctl enable --now grafana-server sudo systemctl status grafana-server
In der folgenden Ausgabe kannst du sehen, dass grafana-server
läuft und aktiviert ist.
Wenn grafana-server
läuft, konfigurierst du ihn so, dass er auf localhost läuft.
Öffne die Grafana-Konfiguration /etc/grafana/grafana.ini
mit dem Editor nano
.
sudo nano /etc/grafana/grafana.ini
Ändere die Standardkonfiguration wie folgt. Achte darauf, dass du die Option domain
mit deinem lokalen Domainnamen für Grafana änderst. In diesem Beispiel wirst du Grafana in der Domain hwdomain.io
ausführen.
[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
domain = hwdomain.io
Wenn du fertig bist, speichere die Datei und beende den Editor.
Führe nun den folgenden Befehl aus, um grafana-server
neu zu starten und deine Änderungen zu übernehmen. Damit sollte Grafana auf localhost mit dem Standard-HTTP-Port 3000
laufen.
sudo systemctl restart grafana-server
Nginx als Reverse Proxy einrichten
In diesem Abschnitt erstellst du einen neuen Nginx-Serverblock als Reverse-Proxy für grafana-server
, der auf localhost
mit dem Port 3000
läuft.
Erstelle eine neue Nginx-Serverblock-Konfiguration /etc/nginx/sites-available/grafana.conf
mit dem nano
Editor.
sudo nano /etc/nginx/sites-available/grafana.conf
Füge die folgende Konfiguration hinzu, um Nginx als Reverse-Proxy für Grafana einzurichten. Achte darauf, dass du die Option server_name
durch deinen Grafana-Domainnamen ersetzt.
# this is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name hwdomain.io;
root /usr/share/nginx/html;
index index.html index.htm;
access_log /var/log/nginx/grafana-access.log;
error_log /var/log/nginx/grafana-error.log;
location / {
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
# Proxy Grafana Live WebSocket connections.
location /api/live {
rewrite ^/(.*) /$1 break;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $http_host;
proxy_pass http://localhost:3000/;
}
}
Speichere die Datei und beende den Editor.
Führe nun den folgenden Befehl aus, um den grafana.conf
Serverblock zu aktivieren und deine Nginx-Syntax zu überprüfen. Wenn du die richtige Syntax hast, siehst du eine Ausgabe test is Successful - syntax is OK
.
sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/ sudo nginx -t
Als Nächstes führst du den folgenden Befehl systemctl
aus, um den Nginx-Webserver neu zu starten und seinen Status zu überprüfen.
sudo systemctl restart nginx sudo systemctl status nginx
Du wirst sehen, dass der Nginx-Webserver läuft:
Als Nächstes rufst du deine Grafana-Domain auf, z. B. http://hwdomain.io/. Wenn deine Installation erfolgreich war, wirst du zur Grafana-Anmeldeseite weitergeleitet.
Melde dich mit dem Standardbenutzer admin
und dem Passwort admin
an.
Sobald du eingeloggt bist, gibst du das neue Passwort für deine Grafana-Installation ein und bestätigst es mit Submit.
Du siehst das Grafana-Dashboard wie folgt:
Installieren und Konfigurieren von Prometheus
Prometheus ist eine Überwachungs- und Alarmierungsplattform. Wenn Grafana läuft, installierst du Prometheus auf dem Server 192.168.5.16
.
Installieren von Prometheus
In diesem Abschnitt installierst du Prometheus manuell, indem du das Binary von Prometheus auf dein System herunterlädst. Zuvor musst du einen neuen Systembenutzer und prometheus
erstellen.
Führe zunächst den folgenden Befehl aus, um einen neuen Benutzer und eine neue Gruppe prometheus
hinzuzufügen.
sudo groupadd --system prometheus sudo useradd -s /sbin/nologin --system -g prometheus prometheus
Erstelle ein neues Datenverzeichnis /var/lib/prometheus
und Konfigurationsverzeichnisse /etc/prometheus
.
sudo mkdir -p /var/lib/prometheus for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
Lade die neueste Version von Prometheus für Linux mit dem folgenden Befehl herunter.
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -
Nach dem Download entpackst du die Prometheus-Binärdatei mit dem Befehl tar
und öffnest sie.
tar xvf prometheus*.tar.gz cd prometheus*/
Verschiebe die Binärdateien prometheus
und promtool
in das Verzeichnis /usr/local/bin
. Verschiebe dann die Konfigurationsverzeichnisse und die Datei prometheus.yml
in das Verzeichnis /etc/prometheus
.
sudo mv prometheus promtool /usr/local/bin/ sudo mv consoles console_libraries prometheus.yml /etc/prometheus/
Zuletzt führst du den folgenden Befehl aus, um die Berechtigung und den Eigentümer des Prometheus-Konfigurations- und Datenverzeichnisses auf den Benutzer prometheus
zu ändern.
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done sudo chown -R prometheus:prometheus /var/lib/prometheus/
Prometheus konfigurieren
Nachdem du Prometheus installiert hast, sicherst du Prometheus mit der basic_auth
oder der einfachen Authentifizierung.
Installiere das Paket apache2-utils
mit dem folgenden apt
Befehl.
sudo apt install apache2-utils -y
Führe nun den folgenden htpasswd
Befehl aus, um das bcrypt Passwort für den Benutzer admin zu generieren. Gib dein Passwort ein, wiederhole es und kopiere dann das generierte Passwort.
htpasswd -nB admin
Als nächstes führst du den Befehl nano
aus, um eine neue Datei /etc/prometheus/web.yml
zu erstellen.
sudo nano /etc/prometheus/web.yml
Füge die folgende Konfiguration hinzu und achte darauf, dass du das bcrypt-Passwort änderst.
# basic_auth
basic_auth_users:
admin: $2y$05$s8U/BrE5JhSO31XKSbtj8u8cPECULs3emEhlDfCB2GW1UefQ9x00C
Speichere und beende die Datei, wenn du fertig bist.
Öffne nun die Standard-Prometheus-Konfiguration /etc/prometheus/prometheus.yml
mit nano
.
sudo nano /etc/prometheus/prometheus.yml
Ändere die Standardkonfiguration job_name
für prometheus
wie folgt und achte darauf, dass du den Benutzer und das Passwort für basic_auth
änderst.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
# add settings for certificate and authentication
scheme: http
basic_auth:
username: "admin"
password: "password"
static_configs:
# if using a valid certificate, set the same hostname in the certificate
- targets: ["localhost:9090"]
Speichere und beende die Datei.
Führe abschließend den folgenden Befehl aus, um die Eigentümerschaft der Dateien prometheus.yml
und web.yml
auf den Benutzer prometheus
zu ändern.
sudo chown prometheus: /etc/prometheus/{prometheus.yml,web.yml}
Prometheus als systemd-Dienst ausführen
Erstelle eine neue systemd-Dienstdatei /etc/systemd/system/prometheus.service
mit dem folgenden nano
Editor.
sudo nano /etc/systemd/system/prometheus.service
Füge die folgenden Zeilen in die Datei ein. Damit lässt du Prometheus im Hintergrund als systemd-Dienst laufen und sicherst die Webkonsole über die Datei web.yml
.
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.config.file=/etc/prometheus/web.yml \
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Speichere die Datei und beende den Editor.
Führe nun den folgenden Befehl aus, um den systemd manager neu zu laden und deine Änderungen zu übernehmen.
sudo systemctl daemon-reload
Starte und aktiviere den Dienst prometheus
mit dem unten stehenden Befehl systemctl
und vergewissere dich, dass der Dienst läuft.
sudo systemctl enable --now prometheus sudo systemctl status prometheus
In der folgenden Ausgabe kannst du sehen, dass der prometheus
Dienst läuft und aktiviert ist.
Installation von node_exporter
Jetzt, wo Grafana und Prometheus laufen, musst du node_exporter herunterladen und installieren. Mit dem node_exporter kannst du Daten für die grundlegende Systemüberwachung abrufen.
Lade die Binärdatei von node_exporter mit dem unten stehenden Befehl curl
herunter.
curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -
Nach dem Download entpackst du den node_exporter und öffnest ihn.
tar -xvf node_exporter*.tar.gz cd node_exporter*/
Kopiere nun die Binärdatei node_exporter
in das Verzeichnis /usr/local/bin
.
sudo cp node_exporter /usr/local/bin
Danach führst du den folgenden Befehl aus, um eine neue systemd-Dienstdatei /etc/systemd/system/node_exporter.service
für den node_exporter zu erstellen.
sudo tee /etc/systemd/system/node_exporter.service <<EOF [Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=prometheus ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=default.target EOF
Lade den systemd Manager mit folgendem Befehl neu:
sudo systemctl daemon-reload
Jetzt kannst du den Dienst node_exporter mit dem folgenden Befehl starten und aktivieren. Überprüfe dann den Status des Dienstes node_exporter.
sudo systemctl enable --now node_exporter sudo systemctl status node_exporter
Du wirst sehen, dass der node_exporter-Dienst läuft und mit dem Sammeln und Auffüllen von Daten beginnen wird. Der node_exporter-Dienst läuft auf dem Standardport 9100
.
Einbindung von node_exporter in Prometheus
In diesem Abschnitt wirst du node_exporter in Prometheus integrieren und hinzufügen.
Öffne die Standardkonfiguration von Prometheus /etc/prometheus/prometheus.yml
.
sudo nano /etc/prometheus/prometheus.yml
Füge ein neues job_name
mit dem Namen node_exporter
hinzu und verweise mit dem Ziel auf das target
wie z.B. 192.168.5.16:9100
.
- job_name: "node_exporter"
static_configs:
- targets: ["192.168.5.100:9100"]
Speichere und beende die Datei, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um den prometheus
Dienst neu zu starten und die Änderungen zu übernehmen.
sudo systemctl restart prometheus
Als Nächstes rufst du den Prometheus-Server http://192.168.5.16:9090 über deinen Webbrowser auf und wirst zu einer einfachen Authentifizierung aufgefordert.
Gib deinen Benutzernamen und dein Passwort ein und klicke auf „Anmelden„.
Nachdem du dich im Prometheus-Dashboard angemeldet hast, gibst du node_memory_Active_bytes
in die Abfrage ein und klickst auf Ausführen. Du siehst das Diagramm des aktuellen aktiven Speichers wie das folgende:
Klicke abschließend auf Status > Ziele und vergewissere dich, dass sowohl prometheus
als auch node_exporter
aktiv sind und ausgeführt werden, wie in der folgenden Abbildung zu sehen ist:
Integration von Prometheus mit Grafana als Datenquelle
Jetzt, da Prometheus bereit ist, fügst du Prometheus als Datenquelle zu Grafana hinzu und integrierst es. Dann erstellst du ein neues Dashboard-System für die Überwachung.
Im Grafana Dashboard klickst du auf Verbindungen > Datenquellen > Datenquelle hinzufügen, um eine neue Datenquelle in Grafana hinzuzufügen.
Wähle Prometheus als Datenquelle aus.
Gib die Prometheus-URL wie http://192.168.5.16:9090/ ein und gib den Benutzernamen und das Passwort für deinen Prometheus-Server an.
Scrolle zum Ende und klicke auf Speichern & Testen. Wenn du erfolgreich warst, siehst du die Meldung Successfully queried the Prometheus API
.
Nachdem du Prometheus als Datenquelle hinzugefügt hast, erstellst du ein neues Grafana Dashboard für die Systemüberwachung.
Klicke auf das Menü Dashboard > Dashboard erstellen.
Wähle Dashboard importieren, um das Dashboard zu importieren.
Besuche https://grafana.com/grafana/dashboards/ und finde dein passendes Dashboard. In diesem Beispiel lädst du das Grafana Dashboard mit der ID 15172.
Klicke auf Laden, um das Dashboard zu importieren.
Wähle nun das Prometheus-Backend aus und bestätige den Import mit einem Klick.
Wenn alles gut geht, sollte dein Grafana-Dashboard erstellt werden. Unten siehst du einen Screenshot des Grafana-Dashboards mit der Überwachung von Prometheus und node_exporter:
Fazit
Herzlichen Glückwunsch! Du hast die Installation von Grafana, Prometheus und node_exporter auf Ubuntu 24.04 Servern abgeschlossen. Du hast Grafana mit Nginx als Reverse Proxy laufen lassen, Prometheus mit Passwortauthentifizierung gesichert, node_exporter mit Prometheus integriert, Prometheus als Datenquelle zu Grafana hinzugefügt und das Grafana-Dashboard importiert.