So installierst du Prometheus und Node Exporter auf Rocky Linux

Prometheus ist eine Open-Source-Plattform zur Überwachung und Alarmierung.

Ursprünglich wurde Prometheus im Jahr 2012 von Soundcloud entwickelt. Seitdem wurde das Prometheus-Projekt von einigen bekannten Unternehmen übernommen und ist zu einem größeren Projekt mit sehr aktiven Entwicklern und einer großen Community angewachsen. Im Jahr 2016 wurde das Prometheus-Projekt in die Cloud Native Computing Foundation (CNCF) aufgenommen.

Grundlegende Konzepte, die du kennen musst

Im Grunde sammelt Prometheus Daten und Metriken über HTTP-Endpunkte von den Zielservern und speichert dann alle Daten als Zeitreihen. In Prometheus werden die Zeitreihendaten durch Metriknamen und Schlüssel/Wert-Paare identifiziert.

Prometheus bietet Flexibilität durch die Prometheus Query Language (PromQL). Du kannst PromQL verwenden, um die Prometheus-Zeitreihendatenbank abzufragen.

Auf den Zielservern musst du die„Exporter„-Anwendung installieren, die alle Daten und Metriken für Prometheus bereitstellt. Der „Node Exporter“ ist ein häufig verwendeter Exporter zur Überwachung von Linux-Maschinen.

DerNode Exporter stellt Hardware- und Kernel-bezogene Metriken von Linux-Rechnern zur Verfügung. Es handelt sich um eine einzelne Binärdatei, die Daten und Metriken an den Prometheus-Server übermittelt.

Voraussetzungen

In diesem Artikel erfährst du, wie du das Prometheus Monitoring Tool und den Node Exporter auf einem Rocky Linux 8 System installierst.

Bevor du beginnst, solltest du sicherstellen, dass du die folgenden Voraussetzungen erfüllst:

  • Betriebssystem: Rocky Linux 8.5 (Green Obsidian)
  • Root-Rechte

Für dieses Beispiel verwenden wir das Rocky Linux System mit der IP-Adresse„192.168.1.10„.

Jetzt können wir anfangen.

Neuen Benutzer und Verzeichnis hinzufügen

Zunächst legst du einen neuen Systembenutzer „prometheus“ an und erstellst dann ein neues Konfigurations- und Datenverzeichnis für die Prometheus-Installation.

1. Führe den folgenden Befehl aus, um einen neuen Benutzer„prometheus“ anzulegen.

sudo adduser -M -r -s /sbin/nologin prometheus

2. Danach erstellst du mit folgendem Befehl ein neues Konfigurationsverzeichnis „/etc/prometheus“ und das Datenverzeichnis„/var/lib/prometheus„.

sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

Die gesamte Prometheus-Konfiguration wird im Verzeichnis‚/etc/prometheus‚ verfügbar sein und alle Prometheus-Daten werden automatisch im Verzeichnis‚/var/lib/prometheus‚ gespeichert.

Installation von Prometheus auf Rocky Linux

In diesem Schritt installierst du das Prometheus-Monitoring-System manuell aus dem Tarball oder der tar.gz-Datei.

Wähle die Prometheus-Version unter diesem Link aus. Für dieses Beispiel werden wir die neueste Version von Prometheus installieren.

Prometheus Tarball herunterladen

1. Ändere das Arbeitsverzeichnis in „/usr/src“ und lade die Prometheus-Binärdatei mit dem folgenden Befehl herunter.

cd /usr/src
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz

Nachdem der Download abgeschlossen ist, entpacke die Prometheus-Datei.

tar -xf prometheus-2.31.1.linux-amd64.tar.gz

Nun siehst du ein neues Verzeichnis‚prometheus-VERSION.OS‚.

2. Als Nächstes kopierst du alle Prometheus-Konfigurationen in das Verzeichnis ‚/etc/prometheus‘ und die Binärdatei‚prometheus‚ in das Verzeichnis‚/usr/local/bin‚.

Setze die Umgebungsvariable‚PROM_SRC‚ in das Verzeichnis ‚/usr/src/prometheus-*‚.

export PROM_SRC=/usr/src/prometheus-*

Kopiere die prometheus-Konfiguration„prometheus.yml“ in das Verzeichnis„/etc/prometheus„.

sudo cp $PROM_SRC/prometheus.yml /etc/prometheus/

Kopiere die Binärdateien„prometheus“ und„promtool“ in das Verzeichnis „/usr/local/bin/„.

sudo cp $PROM_SRC/prometheus /usr/local/bin/
sudo cp $PROM_SRC/promtool /usr/local/bin/

Kopiere die Vorlagen und Bibliotheken der Prometheus-Konsole in das Verzeichnis „/etc/prometheus“.

sudo cp -r $PROM_SRC/consoles /etc/prometheus
sudo cp -r $PROM_SRC/console_libraries /etc/prometheus

3. Als Nächstes bearbeitest du die Prometheus-Konfiguration„/etc/prometheus/prometheus.yml“ mit dem Editor nano.

nano /etc/prometheus/prometheus.yml

Bei der Option„scrape_configs“ musst du eventuell Überwachungsaufträge hinzufügen und festlegen, wie alle Daten vom Ziel abgefragt werden sollen.

In der Standardkonfiguration sind der Name des Überwachungsauftrags „prometheus“ und der Zielserver„localhost“ über die Option„static_configs“ vorgegeben.

Ändere das Ziel von „localhost:9090“ in die Server-IP-Adresse„192.168.1.10:9090“ (siehe unten).

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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‘.

static_configs:
– targets: [„192.168.1.10:9090“]

Speichere die Konfiguration und beende sie.

4. Führe nun den folgenden Befehl aus, um die Konfigurations- und Datenverzeichnisse auf den Benutzer„promethues“ zu ändern.

sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Damit hast du die grundlegende Installation von Prometheus abgeschlossen.

Prometheus konfigurieren

Prometheus-Service-Datei einrichten

In diesem Schritt richtest du Prometheus als systemd-Dienst ein.

1. Erstelle eine neue systemd-Dienstdatei „/etc/systemd/system/prometheus.service“ mit dem Editor nano.

sudo nano /etc/systemd/system/prometheus.service

Kopiere die folgende Konfiguration und füge sie ein.

[Unit]
Description=Prometheus
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/ \
–web.console.templates=/etc/prometheus/consoles \
–web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Speichere die Konfiguration und beende sie.

2. Lade den systemd Manager neu, um die neue Konfiguration anzuwenden.

sudo systemctl daemon-reload

3. Führe nun den folgenden Befehl aus, um den Prometheus-Dienst zu starten und zu aktivieren, und überprüfe dann den aktuellen Status des Dienstes.

sudo systemctl enable --now prometheus
sudo systemctl status prometheus

Wenn deine Installation erfolgreich war, siehst du, dass der Prometheus-Dienst aktiv ist und wie unten dargestellt läuft.

Prometheus als systemd-Dienst konfigurieren

Das Prometheus-Überwachungstool ist jetzt über den TCP-Port„9090“ erreichbar.

4. Öffne deinen Webbrowser und gib die IP-Adresse des Servers mit dem Port„9090“ in die Adresszeile ein.

http://192.168.1.10:9090/

Du siehst dann die unten stehende Abfrage des Prometheus-Dashboards.

Prometheus Abfrage Dashboard

Damit ist die Installation von prometheus abgeschlossen. Gehe zum nächsten Schritt über, um den Node Exporter zu installieren.

Installation von Node Exporter auf Rocky Linux

Der Node Exporter ist Teil des prometheus-Projekts. Mit dem Node Exporter kannst du Metriken von Linux-Servern auf den Prometheus-Server exportieren.

In diesem Schritt installierst du den Node-Exporter auf dem Rocky-Linux-System aus der tar.gz-Datei.

Unter diesem Link findest du die neueste Version des Node-Exporters. In diesem Beispiel installieren wir Node-Exporter Version 1.3.0.

Node Exporter herunterladen

1. Wechsle das Arbeitsverzeichnis zu„/usr/src“ und lade die Node-Exporter-Binärdatei mit dem folgenden Befehl herunter.

cd /usr/src/
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz

Wenn der Downloadvorgang abgeschlossen ist, entpacke die Node-Exporter-Datei.

tar -xf node_exporter-1.3.0.linux-amd64.tar.gz

Jetzt erhältst du ein neues Verzeichnis ’node_exporter-VERSION.OS‚.

2. Als Nächstes verschiebst du die Node-Exporter-Binärdatei mit dem folgenden Befehl in das Verzeichnis „/usr/local/bin„.

mv node_exporter-*/node_exporter /usr/local/bin

Gehe zum nächsten Schritt über, um den Node_exporter als systemd-Dienst einzurichten.

Node_exporter als Dienst einrichten

Bevor du eine Node-Exporter-Dienstdatei erstellst, musst du einen neuen Systembenutzer„node_exporter“ anlegen.

1. Führe den folgenden Befehl aus, um einen neuen Systembenutzer anzulegen.

sudo adduser -M -r -s /sbin/nologin node_exporter

2. Als Nächstes erstellst du mit dem nano-Editor eine neue Dienstdatei für den Node-Exporter „/etc/systemd/system/node_exporter.service“.

sudo nano /etc/systemd/system/node_exporter.service

Kopiere die folgende Konfiguration und füge sie ein.

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

Speichere die Konfiguration und beende sie.

3. Lade nun den systemd manager neu, um die neue Konfiguration anzuwenden.

sudo systemctl daemon-reload

4. Starte und aktiviere den Dienst „node_exporter“ mit dem folgenden Befehl.

sudo systemctl enable --now node_exporter

Node Exporter konfigurieren

Überprüfe danach den aktuellen Status des Dienstes „node_exporter“.

sudo systemctl status node_exporter

Stelle sicher, dass der Dienst„node_exporter“ aktiv ist und läuft.

Konfiguriere den Node Exporter als systemd-Dienst

5. Der Node-Exporter läuft auf dem Standardport„9100„. Überprüfe dies mit dem ss-Befehl unten.

ss -aplnt | grep node

Du wirst eine ähnliche Ausgabe wie unten sehen.

State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port   Process
LISTEN   0        128              0.0.0.0:22            0.0.0.0:*       users:(("sshd",pid=683,fd=4))
LISTEN   0        128                    *:9090                *:*       users:(("prometheus",pid=709,fd=8))
LISTEN   0        128                    *:9100                *:*       users:(("node_exporter",pid=5786,fd=3))
LISTEN   0        128                 [::]:22               [::]:*       users:(("sshd",pid=683,fd=6))

Damit hast du die Installation des Node-Exporters auf dem Rocky Linux System abgeschlossen.

Hinzufügen von node_exporter zu Prometheus

Nachdem du die Installation von Prometheus und dem Node-Exporter abgeschlossen hast, fügst du den Node-Exporter zum Prometheus-Server hinzu.

1. Bearbeite die Prometheus-Konfiguration mit dem nano-Editor.

sudo nano /etc/prometheus/prometheus.yml

Füge unter dem Abschnitt„scrape_config“ einen neuen Prometheus-Job mit der folgenden Konfiguration hinzu. Achte darauf, dass du die IP-Adresse des Servers mit deinem Zielserver abgleichst.

  - job_name: 'node_exporter_metrics'
    scrape_interval: 5s
    static_configs:
      - targets: ['SERVER-IP:9100']

Speichere die Konfiguration und beende sie.

2. Starte nun den Prometheus-Dienst neu, um die neue Konfiguration anzuwenden.

sudo systemctl restart prometheus

Und schon hast du den Node-Exporter zum Prometheus-Server hinzugefügt.

Überprüfe die Installation von Prometheus und Node Exporter

1. Gehe zurück zum Prometheus-Dashboard, klicke auf das Menü„Status“ und wähle„Targets„.

Du wirst zwei verschiedene Endpunkte sehen, den„prometheus“ und den„node_exporter_metrics„.

Prometheus Ziel-Metriken

2. Als Nächstes gehst du zum Menü„Graph“ und gibst die PromQL-Abfrage in die Suchleiste ein. In diesem Beispiel überprüfst du das detaillierte Betriebssystem mit der Abfrage„node_os_info„.

Du erhältst dann detaillierte Informationen über dein aktuelles Betriebssystem.

prometheus Beispiele PromQL-Abfrage

3. Ein weiteres Beispiel: Überprüfe die Netzwerkgeschwindigkeiten mit der Abfrage„node_network_speed_bytes“ und gehe dann auf die Registerkarte„Graph„. Du wirst eine ähnliche Ausgabe wie unten sehen.

prometheus Beispiele PromQL-Abfrage

Jetzt hast du Prometheus und den Node-Exporter erfolgreich auf dem Rocky Linux System installiert.

Fazit

Herzlichen Glückwunsch! Du hast die grundlegende Installation und Konfiguration des Prometheus-Monitoring-Systems und des Node-Exporters auf dem Rocky-Linux-System gelernt.

Im nächsten Schritt kannst du einen anderen Prometheus-Exporter für andere Anwendungen und Grafana als Monitoring-Dashboard ausprobieren.

Das könnte dich auch interessieren …