Prometheus ist eine kostenlose, webbasierte Open-Source-Überwachungsanwendung, die Metriken von Ihren Diensten sammelt und sie in einer Zeitreihendatenbank speichert. Die Prometheus-Standardkonfiguration exportiert nur Metriken über sich selbst. Sie können es jedoch erweitern, indem Sie Exportprogramme und andere Programme installieren. Es unterstützt ein mehrdimensionales Datenmodell, mehrere Modi der grafischen Darstellung und Dashboarding.
In diesem Beitrag zeigen wir Ihnen, wie Sie die Prometheus-Überwachung unter Debian 11 installieren.
Voraussetzungen
- Ein Server mit Debian 11.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Installieren Sie Prometheus
Bevor Sie beginnen, wird empfohlen, einen dedizierten Benutzer und eine Gruppe für Prometheus zu erstellen. Sie können es mit dem folgenden Befehl erstellen:
groupadd --system prometheus
useradd -s /sbin/nologin --system -g prometheus prometheus
Laden Sie als Nächstes die neueste Version von Prometheus herunter, indem Sie den folgenden Befehl ausführen:
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d '"' -f 4|wget -qi -Sobald Prometheus heruntergeladen ist, können Sie die heruntergeladene Datei mit dem folgenden Befehl anzeigen:
ls -lSie sollten die folgende Ausgabe sehen:
-rw-r--r-- 1 root root 72638078 5. Okt. 16:46 prometheus-2.30.3.linux-amd64.tar.gzExtrahieren Sie als Nächstes die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvf prometheus*.tar.gzAls nächstes ändern Sie das Verzeichnis mit dem folgenden Befehl in das extrahierte Verzeichnis:
CD Prometheus-2.30.3.linux-amd64Erstellen Sie als Nächstes einige erforderliche Verzeichnisse mit dem folgenden Befehl:
mkdir /etc/prometheus
mkdir /var/lib/prometheusKopieren Sie als Nächstes die erforderlichen Konfigurationsdateien und Tools mit den folgenden Befehlen:
mv prometheus.yml /etc/prometheus/prometheus.yml
mv consoles/ console_libraries/ /etc/prometheus/
mv prometheus promtool /usr/local/bin/Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Erstellen Sie eine Systemd-Dienstdatei für Prometheus
Als Nächstes müssen Sie eine systemd-Dienstdatei erstellen, um den Prometheus-Dienst zu verwalten. Sie können es erstellen, indem Sie den folgenden Befehl ausführen:
nano /etc/systemd/system/prometheus.serviceFügen Sie die folgenden Zeilen hinzu:
[Unit]Description=PrometheusDocumentation=https://prometheus.io/docs/introduction/overview/Wants=network-online.targetAfter=network-online.target[Service]Type=simpleUser=prometheusGroup=prometheusExecReload=/bin /kill -HUP $MAINPIDExecStart=/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.external-url=SyslogIdentifier=prometheusRestart=always[Install]WantedBy=multi-user.targetSpeichern und schließen Sie die Datei und legen Sie dann die ordnungsgemäße Eigentümerschaft und Berechtigung für das Prometheus-Konfigurationsverzeichnis fest:
chown -R prometheus:prometheus /etc/prometheus/
chmod -R 775 /etc/prometheus/
chown -R prometheus:prometheus /var/lib/prometheus/Als nächstes laden Sie den systemd-Daemon neu, um die Änderungen zu übernehmen:
systemctl daemon-reloadStarten Sie als Nächstes den Prometheus-Dienst und ermöglichen Sie ihm, beim Systemneustart mit dem folgenden Befehl zu starten:
systemctl start prometheus
systemctl enable prometheusSie können den Status des Prometheus mit dem folgenden Befehl überprüfen:
Systemctl-Status-PrometheusSie erhalten die folgende Ausgabe:
? prometheus.service - Prometheus Geladen:geladen (/etc/systemd/system/prometheus.service; deaktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Sa 2021-10-16 14:06:39 UTC; Vor 4s Dokumente:https://prometheus.io/docs/introduction/overview/ Main PID:18415 (prometheus) Tasks:5 (limit:2341) Memory:19.6M CPU:79ms CGroup:/system.slice/prometheus.service ??18415 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --web.cons>16. Oktober 14:06 :39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.172Z caller=head.go:513 component=tsdb msg="On-disk memory mappa>16. Okt 14:06:39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.172Z caller=head.go:519 component=tsdb msg="Wiedergabe von WAL, dies> 16. Oktober 14:06:39 debian11 prometheus[18415] :level=info ts=2021-10-16T14:06:39.174Z caller=head.go:590 component=tsdb msg="WAL-Segment geladen"> 16. Okt 14:06:39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.174Z caller=head.go:596 component=tsdb msg="WAL-Wiedergabe abgeschlossen> 16. Oktober 14:06:39 debian11 prometheus[18415]:level=info ts=2021-10 -16T14:06:39. 177Z caller=main.go:849 fs_type=EXT4_SUPER_MAGICOct 16 14:06:39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.177Z caller=main.go:852 msg="TSDB gestartet "16. Oktober 14:06:39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.178Z caller=main.go:979 msg="Loading configuration file" filename>16. Oktober 14:06 :39 debian11 prometheus[18415]:level=info ts=2021-10-16T14:06:39.178Z caller=main.go:1016 msg="Laden der Konfiguration abgeschlossen> 16. Oktober 14:06:39 debian11 prometheus[18415] :level=info ts=2021-10-16T14:06:39.179Z caller=main.go:794 msg="Server ist bereit, Webanforderungen zu empfangen ts=2021-10-16T14:06:39.179Z caller=tls_config.go:191 component=web msg="TLS ist deaktiviert>
Standardmäßig lauscht Prometheus auf Port 9090. Sie können dies mit dem folgenden Befehl überprüfen:
ss -antpl | grep 9090
Sie sollten die folgende Ausgabe sehen:
LISTEN 0 4096 *:9090 *:* Benutzer:(("prometheus",pid=18415,fd=7))
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Konfigurieren Sie Nginx als Reverse-Proxy für Prometheus
Als nächstes wird empfohlen, Nginx als Reverse-Proxy für Prometheus zu installieren und zu konfigurieren. Installieren Sie zunächst das Nginx-Webserverpaket mit dem folgenden Befehl:
apt-get install nginx -y
Sobald Nginx installiert ist, erstellen Sie mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Nginx-Host:
nano /etc/nginx/conf.d/prometheus.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; Servername prometheus.example.com; Standort / { Proxy_Pass http://localhost:9090; Proxy_http_Version 1.1; Proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbindung 'upgrade'; Proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}
Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Wenn alles in Ordnung ist, erhalten Sie die folgende Ausgabe:
nginx:Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Status des Nginx-Dienstes auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie sollten die folgende Ausgabe erhalten:
An diesem Punkt ist Nginx installiert und konfiguriert, um Prometheus zu bedienen. Sie können jetzt mit dem nächsten Schritt fortfahren.
Zugriff auf das Prometheus-Dashboard
Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://prometheus.example.com auf das Prometheus-Dashboard zu . Sie sollten die folgende Seite sehen:
node_exporter installieren und konfigurieren
node_exporter ist ein Exportprogramm, das die Metrik des Prometheus-Servers überwacht und erhält. Laden Sie zunächst die neueste Version von node_exporter mit dem folgenden Befehl herunter:
wget https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
Sobald der Download abgeschlossen ist, extrahieren Sie die heruntergeladene Datei mit dem folgenden Befehl:
tar -xvzf node_exporter-1.2.2.linux-amd64.tar.gz
Als nächstes verschieben Sie das extrahierte Verzeichnis in das Verzeichnis /etc/prometheus/:
mv node_exporter-1.2.2.linux-amd64 /etc/prometheus/node_exporter
Legen Sie als Nächstes den richtigen Besitz mit dem folgenden Befehl fest:
chown -R prometheus:prometheus /etc/prometheus/node_exporter
Erstellen Sie als Nächstes eine systemd-Dienstdatei, um den node_exporter-Dienst zu verwalten:
nano /etc/systemd/system/node_exporter.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit]Description=Node ExporterWants=network-online.targetAfter=network-online.target[Service]User=prometheusExecStart=/etc/prometheus/node_exporter/node_exporter[Install]WantedBy=default.target
Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon neu, um die Änderungen zu übernehmen:
systemctl daemon-reload
Starten Sie als Nächstes den Dienst node_exporter und aktivieren Sie ihn so, dass er beim Systemneustart gestartet wird:
systemctl start node_exporter
systemctl enable node_exporter
Sie können den Status des node_exporter mit dem folgenden Befehl überprüfen:
systemctl status node_exporter
Sie erhalten die folgende Ausgabe:
Standardmäßig lauscht node_exporter auf Port 9100. Sie können dies mit dem folgenden Befehl überprüfen:
ss -antpl | grep 9100
Sie sollten die folgende Ausgabe erhalten:
LISTEN 0 4096 *:9100 *:* Benutzer:(("node_exporter",pid=513,fd=3))
Fügen Sie node_exporter zum Prometheus-Server hinzu
Als nächstes müssen Sie den node_exporter zur Prometheus-Konfigurationsdatei hinzufügen. Sie können dies tun, indem Sie die Prometheus-Standardkonfigurationsdatei bearbeiten:
nano /etc/prometheus/prometheus.yml
Unter der 'scrape_config ' Zeile neuen job_name hinzufügen node_exporter durch Hinzufügen der folgenden Zeilen.
- job_name:'node_exporter' static_configs:- Ziele:['localhost:9100']
Speichern und schließen Sie die Datei und starten Sie dann den Prometheus-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet Prometheus neu
Verifiziere Prometheus und node_exporter
Gehen Sie nun zum Prometheus-Dashboard und klicken Sie auf Status => Target . Sie sollten Ihren node_exporter auf dem folgenden Bildschirm sehen:
Gehen Sie jetzt zurück zur Prometheus-Homepage und geben Sie node_memory_MemAvailable_bytes ein in das Abfragefeld und klicken Sie auf 'Ausführen ' Taste. Sie erhalten das folgende Ergebnis:
Sie können auch den node_exporter erhalten Metrikdaten über die URL http://your-server-ip:9100/metrics wie unten gezeigt:
Schlussfolgerung
Herzliche Glückwünsche! Sie haben Prometheus erfolgreich mit node_exporter auf Debian 11 installiert. Wenn Sie Fragen haben, können Sie mich gerne fragen. Weitere Informationen finden Sie in der offiziellen Prometheus-Dokumentation.