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

deps installieren

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

Repo hinzufügen und aktualisieren

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

grafana installieren

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.

start enable verify grafana

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

nginx-Einrichtung

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:

nginx prüfen

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.

Anmeldung graphana

Sobald du eingeloggt bist, gibst du das neue Passwort für deine Grafana-Installation ein und bestätigst es mit Submit.

Passwort ändern

Du siehst das Grafana-Dashboard wie folgt:

Dashboard

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/

Promethes installieren

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

apache2-utils installieren

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

prometheus konfigurieren

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.

prometheus prüfen

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

Node-Exporter installieren

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.

start check node_exporter

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„.

Anmelden prometheus

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:

prometheus dashboard

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:

Listenziele

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.

Datenquelle hinzufügen

Wähle Prometheus als Datenquelle aus.

prometheus

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.

prometheus Details hinzufügen

Scrolle zum Ende und klicke auf Speichern & Testen. Wenn du erfolgreich warst, siehst du die Meldung Successfully queried the Prometheus API.

Datenquelle speichern und testen

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.

Dashboard erstellen

Wähle Dashboard importieren, um das Dashboard zu importieren.

Dashboard 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.

Dashboard-ID laden

Wähle nun das Prometheus-Backend aus und bestätige den Import mit einem Klick.

prometheus als Backend auswählen

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:

Dashboard-Überwachung

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.

Das könnte dich auch interessieren …