Prometheus ist ein Open-Source-Überwachungs-, Abfrage- und Warntool. Das funktionsreiche Tool, das ursprünglich 2012 von Soundcloud entwickelt wurde, wurde von mehreren Unternehmen übernommen, um ihre IT-Infrastruktur zu überwachen und sicherzustellen, dass alle Systeme reibungslos laufen. Prometheus ermöglicht es Ihnen, Zeitreihenmetriken wie CPU- und Speicherauslastung über das HTTP-Protokoll abzufragen und abzurufen und visualisieren Sie sie in Echtzeit-Grafiken. Sie können Prometheus auch so konfigurieren, dass im Falle eines Knoten- oder Dienstausfalls Warnungen gesendet werden, und es mit anderen Überwachungstools von Drittanbietern wie Grafana integrieren für verbesserte Datenvisualisierung. In diesem Leitfaden betrachten wir die Installation von Prometheus auf dem CentOS 8 /RHEL 8-System.
Schritt 1) Erstellen eines Prometheus-Benutzers und einer Prometheus-Gruppe
Zunächst erstellen wir einen Systembenutzer für Prometheus. Führen Sie dazu den folgenden Befehl aus.
[[email protected] ~]# useradd -m -s /bin/false prometheus[[email protected] ~]# id prometheusuid=1002(prometheus) gid=1002(prometheus) groups=1002(prometheus)[[ E-Mail-geschützt] ~]#
Wie Sie vielleicht bemerkt haben, hat der Systembenutzer keine Anmeldeberechtigungen, wie in der Option /bin/false angegeben
Schritt 2) Konfigurationsverzeichnisse für Prometheus erstellen
Sobald der Benutzer für Prometheus erstellt wurde, erstellen wir Konfigurationsverzeichnisse in den Verzeichnissen /etc und /var, in denen Prometheus-Konfigurationsdateien und -daten gespeichert werden. Führen Sie also die folgenden Befehle aus:
[[email protected] ~]# mkdir /etc/prometheus[[email protected] ~]# mkdir /var/lib/prometheus
Setzen Sie den Besitz auf /var/lib/prometheus
[[email protected] ~]# chown prometheus /var/lib/prometheus/
Schritt 3) Prometheus-Tar-Datei herunterladen
Nachdem die Verzeichnisse vorhanden sind, können wir jetzt Prometheus herunterladen. Um die neueste Version zu erhalten, gehen Sie zur Download-Seite, um die neueste Version für Ihre Umgebung zu erhalten. Zum Zeitpunkt der Erstellung dieses Artikels war die neueste Version v 2.14.0. Alternativ führen Sie einfach den folgenden Befehl aus
[[email protected] ~]# dnf install wget -y[[email protected] ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.14.0/prometheus-2.14.0 .linux-amd64.tar.gz -P /tmp
Sobald der Download abgeschlossen ist, extrahieren Sie die Tarball-Datei wie gezeigt
[[email protected] tmp]# tar -zxpvf prometheus-2.14.0.linux-amd64.tar.gz
Dadurch erhalten Sie ein Verzeichnis namens prometheus-2.14.0.linux-amd64
Verwenden Sie den Baumbefehl, um die Verzeichnisstruktur anzuzeigen,
Das extrahierte Verzeichnis enthält 2 Binärdateien Prometheus &Promtool, die wir in den Pfad /usr/local/bin kopieren müssen.
Navigieren Sie also zum extrahierten Verzeichnis und kopieren Sie sie mit dem Befehl:
[[email protected] ~]# cd /tmp/prometheus-2.14.0.linux-amd64[[email protected] prometheus-2.14.0.linux-amd64]# cp prometheus /usr/local/binVerfahren Sie ebenso mit der anderen Binärdatei
[[email protected] prometheus-2.14.0.linux-amd64]# cp promtool /usr/local/binSchritt 4) Erstellen einer Konfigurationsdatei für Prometheus
Um mit der Konfiguration zu beginnen, erstellen Sie eine Datei /etc/prometheus/prometheus.yml und fügen Sie die Konfiguration in die Datei
ein[[email protected] ~]# vi /etc/prometheus/prometheus.yml# Global configglobal: scrape_interval: 15s # Stellen Sie das Scrape-Intervall auf alle 15 Sekunden ein. Standard ist alle 1 Minute. Evaluation_interval:15s # Regeln alle 15 Sekunden auswerten. Der Standardwert ist alle 1 Minute. scrape_timeout:15s # scrape_timeout ist auf den globalen Standardwert (10s) eingestellt.# Eine Scrape-Konfiguration, die genau einen Endpunkt zum Scrapen enthält:# Hier ist es Prometheus selbst.scrape_configs: # Der Jobname wird als Label `job=` hinzugefügt zu jeder Zeitreihe, die von dieser Konfiguration geschabt wurde. - job_name:'prometheus' # metrics_path ist standardmäßig '/metrics' # scheme ist standardmäßig 'http'. static_configs: - Ziele:['localhost:9090'] Dadurch wird nur Ihr lokales System überwacht (Prometheus-Server).
Passen Sie als Nächstes die Firewall wie folgt an, um externe Verbindungen zum Server über Port 9090
zuzulassen[[email protected] ~]# firewall-cmd --add-port=9090/tcp --permanentsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#Schritt 5) Erstellen einer Systemd-Dienstdatei für Prometheus-Server
Damit wir Prometheus als Dienst mit systemd verwalten können, müssen wir eine Systemdatei dafür erstellen. Erstellen Sie also die Datei wie gezeigt und fügen Sie den Inhalt ein,
[[email protected] ~]# vi /etc/systemd/system/prometheus.service[Unit]Description=Prometheus-Zeitreihenerfassung und -verarbeitung ServerWants=network-online.targetAfter=network-online.target[Service]User =prometheusGroup=prometheusType=simpleExecStart=/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.targetDamit die Änderungen wirksam werden, laden Sie systemctl neu,
[[email protected] ~]# systemctl daemon-reloadStarten Sie nun Prometheus und lassen Sie es beim Booten laufen
[[email protected] ~]# systemctl start prometheus[[email protected] ~]# systemctl enable prometheusUm sicherzugehen, dass Prometheus ausgeführt wird, führen Sie den folgenden Befehl aus:
[[email protected] ~]# systemctl status prometheus
Aus der angezeigten Ausgabe können wir deutlich erkennen, dass Prometheus wie erwartet ohne Fehler ausgeführt wird. Außerdem können Sie das Dienstprogramm netstat verwenden, um zu überprüfen, ob der Dienst Port 9090 abhört.
[[email protected] ~]# netstat -tunlp
Das ist großartig! Prometheus läuft wie erwartet auf Port 9090. Gehen Sie jetzt zu Ihrem Browser und durchsuchen Sie die IP Ihres Servers wie gezeigt
http://server-ip:9090
Klicken Sie auf „Status“. “ und klicken Sie dann auf „Ziele ’
Ihr System wird wie abgebildet angezeigt
Schritt 6) Installieren und konfigurieren Sie node_exporter
Knoten-Exporter ist ein Dienstprogramm, das eine Vielzahl von Linux-Systemmetriken wie CPU, Speichernutzung, Dateisysteme und Netzwerkstatistiken sammelt und versendet. In diesem Abschnitt installieren wir node_exporter auf dem Prometheus-Server und auf einem entfernten CentOS 8-Linux-Host und überwachen die Systemmetriken auf den beiden Hosts.
Auf dem Prometheus-Knoten erstellen wir einen Systembenutzer für node_exporter.
[[email protected] ~]# useradd -m -s /bin/false node_exporterGehen Sie als Nächstes zur Download-Seite von Prometheus und laden Sie den node_exporter-Tarball herunter oder verwenden Sie den unten stehenden wget-Befehl, um ihn von der Befehlszeile herunterzuladen,
[[email protected] ~]# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gzFahren Sie nach dem Herunterladen der node_exporter-Datei fort und extrahieren Sie sie wie gezeigt
[[email protected] ~]# tar -zxpvf node_exporter-0.18.1.linux-amd64.tar.gzSie können den Inhalt des extrahierten Ordners mit dem Baumbefehl wie gezeigt überprüfen
[[email protected] ~]# tree node_exporter-0.18.1.linux-amd64
Kopieren Sie als Nächstes die Binärdatei mit dem Namen node_exporter nach /usr/local/bin path
[[email protected] ~]# cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/binLegen Sie als Nächstes die Dateiberechtigungen der kopierten node_exporter-Datei wie gezeigt fest
[[email protected] ~]# chown node_exporter:node_exporter /usr/local/bin/node_exporterAls nächstes müssen wir node_exporter so konfigurieren, dass es als Dienst ausgeführt wird. Fahren Sie also fort und erstellen Sie eine systemd-Dienstdatei wie gezeigt
[[email protected] ~]# vi /etc/systemd/system/node_exporter.serviceFügen Sie dann die unten gezeigte Konfiguration ein und speichern Sie die Datei
[Unit]Description=Prometheus-Knoten ExporterWants=network-online.targetAfter=network-online.target[Service]User=node_exporterGroup=node_exporterType=simpleExecStart=/usr/local/bin/node_exporter[Install]WantedBy=multi-user .ZielDamit die Änderungen wirksam werden, laden Sie systemd manager mit dem Befehl neu:
[[email protected] ~]# systemctl daemon-reloadAls nächstes starten und aktivieren Sie den node_exporter-Dienst
[[email protected] ~]# systemctl start node_exporter[[email protected] ~]# systemctl enable node_exporterUm sicherzugehen, dass der Dienst läuft, führen Sie Folgendes aus:
[[email protected] ~]# systemctl status node_exporter
Um sicherzustellen, dass der Dienst ausgeführt wird, verwenden Sie das netstat-Dienstprogramm, um zu überprüfen, ob Port 9100 wie standardmäßig erwartet überwacht wird.
[[email protected] ~]# netstat -pnltu | grep 9100tcp6 0 0 :::9100 :::* LISTEN 3472/node_exporter[[email protected] ~]#Perfekt! Der Node_exporter-Dienst läuft wie erwartet.
Öffnen Sie als Nächstes Port 9100 in der Firewall wie gezeigt
[[email protected] ~]# firewall-cmd --add-port=9100/tcp --permanentsuccess[[email protected] ~]# firewall-cmd --reloadsuccess[[email protected] ~]#Wiederholen Sie die beschriebenen Schritte auch für das entfernte CentOS 8-Linux-System.
Schließlich müssen Sie das Ziel node_exporter zur Datei prometheus.yml hinzufügen. Hängen Sie die folgenden Zeilen an, um node_exporter für den Prometheus-Server zu definieren
[[email protected] ~]# vi /etc/prometheus/prometheus.yml--------- - job_name:'node_exporter' static_configs: - Ziele:['localhost:9100']
Starten Sie den Prometheus-Dienst neu
[[email protected] ~]# systemctl startet Prometheus neuGehen Sie noch einmal zu Ihrem Browser und klicken Sie auf "Status". “ und klicken Sie auf „Ziele ’
Beachten Sie unbedingt einen neuen Endpunkt im Browser namens node_exporter für den Prometheus-Server
So fügen Sie einen Endpunkt für das Remote-Linux-System hinzu Gehen Sie zurück zur prometheus.yml Datei und fügen Sie die folgende Zeile an
– Ziele:[‘192.168.10.90:9100’]
Der Abschnitt node_exporter sollte nun so aussehen
- job_name:'node_exporter' static_configs: - Ziele:['localhost:9100'] - Ziele:['192.168.10.90:9100']Speichern Sie die Änderungen und starten Sie den Prometheus-Dienst neu
[[email protected] ~]# systemctl startet Prometheus neuAktualisieren Sie den Browser und beachten Sie den zweiten Endpunkt, der für das entfernte CentOS-Linux-System hinzugefügt wurde
Um sicherzustellen, dass Sie Metriken von Ihren konfigurierten Knoten erhalten. Verwenden Sie einfach den Curl-Befehl wie folgt:
# curl http://node-ip:9100/metrics
Um beispielsweise Metriken vom Prometheus-Server anzuzeigen, führen Sie Folgendes aus:
[[email protected] ~]# curl http://localhost:9100/metrics
Für den entfernten CentOS 8-Host habe ich den Befehl ausgeführt:
[[email protected] ~]# curl http://192.168.10.90:9100/metrics
Dies kann auch erreicht werden, indem Sie einen Browser öffnen und die URL durchsuchen
http://192.168.10.90:9100/metrics
Sie können die gewünschten Metriken auch grafisch darstellen. Rufen Sie einfach die Startseite des Prometheus-Servers auf und klicken Sie auf das Dropdown-Menü mit der Bezeichnung „Metrik am Cursor einfügen“. ’.
Wählen Sie die Metrik aus, die Sie grafisch darstellen möchten,
Klicken Sie auf „Ausführen“. “ und klicken Sie auf die „Grafik ’-Tab direkt darunter, um das Diagramm anzuzeigen
Und damit sind wir am Ende dieses Themas angelangt. Sie haben Prometheus erfolgreich installiert und konfiguriert, um Systemmetriken sowohl auf Ihrem Server als auch auf Ihrem Remote-Host zu überwachen. In unserem nächsten Leitfaden werden wir Prometheus mit Grafana integrieren, um Metriken besser visualisieren und analysieren zu können. Fühlen Sie sich frei, Ihr Feedback mit uns zu teilen und teilen Sie den Artikel mit einem Freund.