Prometheus ist ein Open-Source-Toolkit, das ursprünglich bei SoundCloud zur Überwachung und Benachrichtigung entwickelt wurde. Das Toolkit ist jetzt ein eigenständiges Open-Source-Projekt und wird unabhängig von Unternehmen gepflegt.
Das Toolkit sammelt Metriken von überwachten Zielen, indem es HTTP-Endpunkte auf diesen Zielen verschrottet. Die meisten Prometheus-Komponenten befinden sich in Go. Einige in Java, Python und Ruby geschrieben.
Prometheus eignet sich gut zur Aufzeichnung beliebiger numerischer Zeitreihen. Es eignet sich sowohl für maschinenzentriertes Monitoring als auch für hochdynamisches serviceorientiertes Architektur-Monitoring. Prometheus vereinfacht nicht nur die Ausführung und Integration in Ihre Umgebung, sondern bietet auch ein umfassendes Datenmodell und eine Abfragesprache.
Das folgende Tutorial zeigt Schritte zur Installation von Prometheus auf CentOS.
Installieren und konfigurieren Sie Prometheus unter CentOS 7
Melden Sie sich als root beim Terminal an und starten Sie die folgenden Befehle.
Schritt 1 – System aktualisieren
yum update -y
Schritt 2 – SELinux deaktivieren
Öffnen Sie die SELinux-Konfiguration und bearbeiten Sie die Datei:
vim /etc/sysconfig/selinux
Ändern Sie „SELINUX=enforcing“ in „SELINUX=disabled“.
Speichern und beenden Sie die Datei. Starten Sie dann das System neu.
reboot
Schritt 3 – Prometheus-Paket herunterladen
Gehen Sie zur offiziellen Prometheus-Download-Seite und kopieren Sie die URL der Linux „tar“-Datei.
Führen Sie den folgenden Befehl aus, um das Paket herunterzuladen. Fügen Sie die kopierte URL nach wget in den folgenden Befehl ein:
wget https://github.com/prometheus/prometheus/releases/download/v2.8.1/prometheus-2.8.1.linux-amd64.tar.gz
Schritt 4 – Prometheus konfigurieren
Fügen Sie einen Prometheus-Benutzer hinzu.
useradd --no-create-home --shell /bin/false prometheus
Erforderliche Verzeichnisse erstellen.
mkdir /etc/prometheus
mkdir /var/lib/prometheus
Ändern Sie den Eigentümer der oben genannten Verzeichnisse.
chown prometheus:prometheus /etc/prometheus
chown prometheus:prometheus /var/lib/prometheus
Gehen Sie jetzt zum heruntergeladenen Speicherort von Prometheus und extrahieren Sie es.
tar -xvzf prometheus-2.8.1.linux-amd64.tar.gz
Benennen Sie es nach Ihren Wünschen um.
mv prometheus-2.8.1.linux-amd64 prometheuspackage
Kopieren Sie die Binärdateien „prometheus“ und „promtool“ aus dem Ordner „prometheuspackage“ nach „/usr/local/bin“.
cp prometheuspackage/prometheus /usr/local/bin/
cp prometheuspackage/promtool /usr/local/bin/
Ändern Sie den Besitz auf Prometheus-Benutzer.
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
Kopieren Sie die Verzeichnisse „consoles“ und „console_libraries“ aus dem „prometheuspackage“ in den „/etc/prometheus folder“
cp -r prometheuspackage/consoles /etc/prometheus
cp -r prometheuspackage/console_libraries /etc/prometheus
Ändern Sie den Besitz auf Prometheus-Benutzer
chown -R prometheus:prometheus /etc/prometheus/consoles
chown -R prometheus:prometheus /etc/prometheus/console_libraries
Prometheus-Konfigurationsdatei hinzufügen und ändern.
Konfigurationen sollten zu „/etc/prometheus/prometheus.yml“
hinzugefügt werdenJetzt erstellen wir die Datei prometheus.yml.
vim /etc/prometheus/prometheus.yml
Fügen Sie der Datei die folgende Konfiguration hinzu.
global: scrape_interval: 10s scrape_configs: - job_name: 'prometheus_master' scrape_interval: 5s static_configs: - targets: ['localhost:9090']
Speichern und beenden Sie die Datei
Ändern Sie den Eigentümer der Datei.
chown prometheus:prometheus /etc/prometheus/prometheus.yml
Konfigurieren Sie die Prometheus-Dienstdatei.
vim /etc/systemd/system/prometheus.service
Kopieren Sie den folgenden Inhalt in die Datei.
[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
Speichern und die Exit-Datei.
Laden Sie den systemd-Dienst neu.
systemctl daemon-reload
Starten Sie den Prometheus-Dienst.
systemctl start prometheus
Dienststatus prüfen.
systemctl status prometheus
Fügen Sie Firewall-Regeln hinzu.
firewall-cmd --zone=public --add-port=9090/tcp --permanent
Firewall-Dienst neu laden.
systemctl reload firewalld
Schritt 5 – Rufen Sie die Prometheus-Weboberfläche auf
Verwenden Sie die folgende URL, um auf die Benutzeroberfläche zuzugreifen.
http://Server-IP:9090/graph
Dann können Sie die folgende Oberfläche sehen.
Schritt 6 – Linux-Server mit Prometheus überwachen
Zunächst müssen Sie den Prometheus-Knoten-Exporter auf einem Linux-Server konfigurieren.
Kopieren Sie die URL des Node Exporters von der offiziellen Downloadseite.
Fügen Sie die kopierte URL nach wget in den folgenden Befehl ein:
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
Extrahieren Sie das heruntergeladene Paket.
tar -xvzf node_exporter-0.17.0.linux-amd64.tar.gz
Erstellen Sie einen Benutzer für den Node-Exporter.
useradd -rs /bin/false nodeusr
Verschieben Sie die Binärdatei aus dem heruntergeladenen extrahierten Paket nach „/usr/local/bin“.
mv node_exporter-0.17.0.linux-amd64/node_exporter /usr/local/bin/
Erstellen Sie eine Servicedatei für den Node-Exporter.
vim /etc/systemd/system/node_exporter.service
Fügen Sie der Datei den folgenden Inhalt hinzu.
[Unit] Description=Node Exporter After=network.target [Service] User=nodeusr Group=nodeusr Type=simple ExecStart=/usr/local/bin/node_exporter [Install] WantedBy=multi-user.target
Speichern und beenden Sie die Datei.
Laden Sie den Systemdämon neu.
systemctl daemon-reload
Node-Exporter-Dienst starten.
systemctl start node_exporter
Fügen Sie eine Firewall-Regel hinzu, um den Knoten-Exporter zuzulassen.
firewall-cmd --zone=public --add-port=9100/tcp --permanent
Firewall-Dienst neu laden.
systemctl restart firewalld
Node-Exporter beim Systemstart aktivieren.
systemctl enable node_exporter
Zeigen Sie die Exporter-URL des Metrik-Browsing-Knotens an.
http://IP-Address:9100/metrics
Konfiguriertes Node-Exporter-Ziel auf Prometheus-Server hinzufügen.
Melden Sie sich beim Prometheus-Server an und ändern Sie die Datei prometheus.yml
Bearbeiten Sie die Datei:
vim /etc/prometheus/prometheus.yml
Fügen Sie die folgenden Konfigurationen unter der Scrape-Konfiguration hinzu.
- job_name: 'node_exporter_centos' scrape_interval: 5s static_configs: - targets: ['10.94.10.209:9100']
Die Datei sollte wie folgt aussehen.
Starten Sie den Prometheus-Dienst neu.
systemctl restart prometheus
Melden Sie sich bei der Weboberfläche des Prometheus-Servers an und überprüfen Sie die Ziele.
http://Prometheus-Server-IP:9090/targets
Sie können auf das Diagramm klicken und alle Servermetriken abfragen und auf Ausführen klicken, um die Ausgabe anzuzeigen. Es zeigt die Konsolenausgabe.
Abfragebrowser:
Konsolenausgabe:
Klicken Sie zum Anzeigen auf die Grafik.
Schritt 7 – MySQL-Server mit Prometheus überwachen
Melden Sie sich bei MySQL an und führen Sie die folgenden Abfragen aus.
CREATE USER 'mysqlexporter'@'localhost' IDENTIFIED BY 's56fsg#4W2126&dfk' WITH max_user_connections 2;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqlexporter'@'localhost';
FLUSH PRIVILEGES;
Laden Sie mysqld_exporter von der offiziellen Download-Seite herunter.
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.11.0/mysqld_exporter-0.11.0.linux-amd64.tar.gz
Extrahieren Sie die heruntergeladene Datei.
tar -xvzf mysqld_exporter-0.11.0.linux-amd64.tar.gz
Fügen Sie einen Benutzer für mysqld_exporter hinzu.
useradd -rs /bin/false mysqld_exporter
Kopieren Sie die mysqld_exporter-Datei nach /usr/bin.
mv mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter /usr/bin
Eigentümer der Datei ändern.
chown mysqld_exporter:mysqld_exporter /usr/bin/mysqld_exporter
Erforderliche Ordner erstellen.
mkdir -p /etc/mysql_exporter
Erstellen Sie eine MySQL-Passwortdatei für mysqld_exporter.
vim /etc/mysql_exporter/.my.cnf
Fügen Sie der Datei die folgenden Konfigurationen hinzu.
[client] user=mysqlexporter password=sdfsg#4W2126&gh
Speichern und beenden Sie die Datei.
Eigentümer ändern.
chown -R mysqld_exporter:mysqld_exporter /etc/mysql_exporter
Erteilen Sie die erforderliche Berechtigung.
chmod 600 /etc/mysql_exporter/.my.cnf
Erstellen Sie eine Servicedatei.
vim /etc/systemd/system/mysql_exporter.service
Fügen Sie der Datei den folgenden Inhalt hinzu.
[Unit] Description=MySQL Server fosslinux After=network.target [Service] User=mysqld_exporter Group=mysqld_exporter Type=simple ExecStart=/usr/bin/mysqld_exporter \ --config.my-cnf="/etc/mysql_exporter/.my.cnf" Restart=always [Install] WantedBy=multi-user.target
Laden Sie den Systemdämon neu.
systemctl daemon-reload
Aktivieren Sie mysql_exporter beim Systemstart.
systemctl enable mysql_exporter
Dienst starten.
systemctl start mysql_exporter
Zeigen Sie die Metriken mit der folgenden URL an.
http://Server_IP:9104/metrics
Gehen Sie nun zum Prometheus-Server und ändern Sie die Datei prometheus.yml.
vim /etc/prometheus/prometheus.yml
Fügen Sie der Datei den folgenden Inhalt hinzu.
- job_name: 'mysql_exporter_fosslinux' scrape_interval: 5s static_configs: - targets: ['10.94.10.204:9104']
Starten Sie Prometheus neu.
systemctl restart prometheus
Sie können hinzugefügte Ziele sehen, indem Sie unter dem Status auf Ziele klicken.
http://IP:9090/targets
Jetzt können Sie die Abfrage mit dem Abfragebrowser auswählen und das Ergebnis des MySQL-Servers abrufen.
Das ist alles über die Installation und Konfiguration des Prometheus-Servers unter CentOS 7. Ich hoffe, Ihnen hat dieses Tutorial gefallen. Teilen Sie uns Ihr Feedback in den Kommentaren unten mit.