Verwendung von Prometheus zur Überwachung Ihres CentOS 7-Servers

Einführung

Prometheus ist ein Open-Source-Überwachungssystem, das von SoundCloud entwickelt wurde. Wie andere Überwachungssysteme wie InfluxDB und Graphite speichert Prometheus alle seine Daten in einer Zeitreihendatenbank. Es bietet jedoch ein mehrdimensionales Datenmodell und eine leistungsstarke Abfragesprache, mit der Systemadministratoren nicht nur die Definitionen ihrer Metriken auf einfache Weise optimieren, sondern auch genauere Berichte erstellen können.

Darüber hinaus umfasst das Prometheus-Projekt PromDash (ein browserbasiertes Tool, mit dem benutzerdefinierte Dashboards entwickelt werden können) und einen experimentellen AlertManager, mit dem Alerts per E-Mail, Flowdock, Slack, HipChat und mehr gesendet werden können.

In diesem Lernprogramm erfahren Sie, wie Sie Prometheus Server, Node Exporter und PromDash installieren, konfigurieren und verwenden.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein 64-Bit-CentOS 7-Droplet

  • Ein non-root sudo user, vorzugsweise einer mit dem Namen * prometheus *.

Schritt 1 - Prometheus Server installieren

Erstellen Sie zunächst ein neues Verzeichnis, in dem alle Dateien gespeichert werden, die Sie in diesem Lernprogramm heruntergeladen haben, und wechseln Sie dorthin.

mkdir ~/Downloads
cd ~/Downloads

Verwenden Sie "+ curl +", um den neuesten Build des Prometheus-Servers und der Zeitreihendatenbank von GitHub herunterzuladen.

curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.linux-amd64.tar.gz"

Das Prometheus-Überwachungssystem besteht aus mehreren Komponenten, die jeweils separat installiert werden müssen. Es ist eine gute Idee, alle Komponenten in einem übergeordneten Verzeichnis zu belassen. Erstellen Sie daher eines mit + mkdir +.

mkdir ~/Prometheus

Geben Sie das soeben erstellte Verzeichnis ein.

cd ~/Prometheus

Verwenden Sie "+ tar ", um " prometheus-0.16.0.linux-amd64.tar.gz +" zu extrahieren.

tar -xvzf ~/Downloads/prometheus-0.16.0.linux-amd64.tar.gz

Damit ist die Installation des Prometheus-Servers abgeschlossen. Überprüfen Sie die Installation, indem Sie den folgenden Befehl eingeben:

~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus -version

Sie sollten die folgende Meldung auf Ihrem Bildschirm sehen:

Prometheus Ausgabe

prometheus, version 0.16.0 (branch: HEAD, revision: dcb8ba4)
 build user:       julius@desktop
 build date:       20151009-23:51:17
 go version:       1.5.1

Schritt 2 - Installieren von Node Exporter

Prometheus wurde zum Überwachen von Webdiensten entwickelt. Um die Metriken Ihres CentOS-Servers zu überwachen, sollten Sie ein Tool namens Node Exporter installieren. Node Exporter exportiert, wie der Name schon sagt, viele Messdaten (wie z. B. Festplatten-E / A-Statistiken, CPU-Auslastung, Speichernutzung, Netzwerkstatistiken usw.) in einem Format, das Prometheus versteht.

Rufen Sie das Verzeichnis "+ Downloads " auf und laden Sie mit " curl +" die neueste Version von Node Exporter herunter, die auf GitHub verfügbar ist.

cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"

Erstellen Sie ein neues Verzeichnis mit dem Namen "+ node_exporter " im Verzeichnis " Prometheus +" und rufen Sie es auf:

mkdir ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter

Sie können jetzt den Befehl + tar + verwenden, um + node_exporter-0.11.0.linux-amd64.tar.gz + zu extrahieren.

tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

Schritt 3 - Ausführen von Node Exporter als Dienst

Um das Starten und Stoppen von Node Exporter zu vereinfachen, konvertieren wir es jetzt in einen Service.

Verwenden Sie "+ vi " oder einen anderen Texteditor, um eine Einheitenkonfigurationsdatei mit dem Namen " node_exporter.service +" zu erstellen.

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

Diese Datei sollte den Pfad der ausführbaren Datei "+ node_exporter +" enthalten und auch angeben, welcher Benutzer die ausführbare Datei ausführen soll. Fügen Sie dementsprechend den folgenden Code hinzu:

/etc/init/node_exporter.conf

[Unit]
Description=Node Exporter

[Service]
User=
ExecStart=/home//Prometheus/node_exporter/node_exporter

[Install]
WantedBy=default.target

Speichern Sie die Datei und beenden Sie den Texteditor.

Laden Sie + systemd + neu, damit die gerade erstellte Konfigurationsdatei gelesen wird.

sudo systemctl daemon-reload

Zu diesem Zeitpunkt ist Node Exporter als Dienst verfügbar, der mit dem Befehl + systemctl + verwaltet werden kann. Aktivieren Sie es, damit es beim Booten automatisch startet.

sudo systemctl enable node_exporter.service

Sie können Ihren Server jetzt entweder neu starten oder den Dienst mit dem folgenden Befehl manuell starten:

sudo systemctl start node_exporter.service

Verwenden Sie nach dem Start einen Browser, um die Weboberfläche von Node Exporter anzuzeigen, die unter "+ http: //: 9100 / metrics +" verfügbar ist. Sie sollten eine Seite mit viel Text sehen:

http: // your_server_ip: 9100 / metrics-Auszug

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.00023853100000000002
go_gc_duration_seconds{quantile="0.25"} 0.00023998700000000002
go_gc_duration_seconds{quantile="0.5"} 0.00028122
. . .

Schritt 4 - Prometheus Server starten

Geben Sie das Verzeichnis ein, in dem Sie den Prometheus-Server installiert haben:

cd ~/Prometheus/prometheus-0.16.0.linux-amd64

Bevor Sie Prometheus starten, müssen Sie zunächst eine Konfigurationsdatei mit dem Namen "+ prometheus.yml +" erstellen.

vi ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.yml

Kopieren Sie den folgenden Code in die Datei.

~ / Prometheus / prometheus-0.16.0.linux-amd64 / prometheus.yml

scrape_configs:
 - job_name: "node"
   scrape_interval: "15s"
   target_groups:
   - targets: ['localhost:9100']

Dadurch wird ein Abschnitt "+ scrape_configs " erstellt und ein Job mit dem Namen " node " definiert. Es enthält die URL der Weboberfläche Ihres Node Exporters in einem Array von " Zielen ". Das " scrape_interval +" ist auf 15 Sekunden eingestellt, damit Prometheus die Metriken alle fünfzehn Sekunden abkratzt.

Sie können Ihren Job beliebig benennen, aber wenn Sie ihn als "Knoten" bezeichnen, können Sie die Standardkonsolenvorlagen von Node Exporter verwenden.

Speichern Sie die Datei und beenden Sie sie.

Starten Sie den Prometheus-Server als Hintergrundprozess.

nohup ./prometheus > prometheus.log 2>&1 &

Beachten Sie, dass Sie die Ausgabe des Prometheus-Servers in eine Datei mit dem Namen "+ prometheus.log " umgeleitet haben. Sie können die letzten Zeilen der Datei mit dem Befehl ` tail +` anzeigen:

tail ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.log

Sobald der Server bereit ist, werden die folgenden Meldungen in der Datei angezeigt:

prometheus.log Auszug

INFO[0000] Starting target manager...         file=targetmanager.go line=75
INFO[0000] Listening on :9090                 file=web.go line=118

Verwenden Sie einen Browser, um die Prometheus-Homepage zu besuchen, die unter "+ http: //: 9090 +" verfügbar ist. Sie sehen die folgende Homepage.

Bild: http: //i.imgur.com/cfw7Gnb.png [Prometheus Homepage]

Um sicherzustellen, dass Prometheus Daten vom Node Exporter entfernt, klicken Sie oben auf der Seite auf die Registerkarte * Graph *. Geben Sie auf der angezeigten Seite den Namen einer Metrik (z. B. * nodeprocsrunning *) in das Textfeld * Expression * ein. Drücken Sie dann die blaue Taste * Execute *. Klicken Sie unten auf * Graph * (neben * Console *), und Sie sollten ein Diagramm für diese Metrik sehen:

Prometheus verfügt über Konsolenvorlagen, mit denen Sie Diagramme einiger häufig verwendeter Metriken anzeigen können. Auf diese Konsolenvorlagen kann nur zugegriffen werden, wenn Sie in der Prometheus-Konfiguration den Wert von "+ job_name " auf " node +" setzen.

Rufen Sie "+ http: //: 9090 / consoles / node.html +" auf, um auf die Knotenkonsole zuzugreifen, und klicken Sie auf Ihren Server "` + localhost: 9100 + `", um die Messdaten anzuzeigen:

Schritt 5 - PromDash installieren

Der Prometheus-Server ermöglicht es Ihnen zwar, Diagramme anzuzeigen und mit Ausdrücken zu experimentieren, wird jedoch im Allgemeinen nur zu Debugging-Zwecken oder zum Ausführen einmaliger Abfragen verwendet. Die bevorzugte Methode zur Visualisierung der Daten in der Zeitreihendatenbank von Prometheus ist die Verwendung von PromDash, einem Tool, mit dem Sie benutzerdefinierte Dashboards erstellen können, die nicht nur in hohem Maße konfigurierbar sind, sondern auch besser aussehen.

Geben Sie das + Prometheus + Verzeichnis ein:

cd ~/Prometheus

PromDash ist eine Ruby on Rails-Anwendung, deren Quelldateien auf GitHub verfügbar sind. Um es herunterzuladen und auszuführen, müssen Sie Git, Ruby und einige Build-Tools installieren. Verwenden Sie dazu + yum +.

sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch

Sie können jetzt den Befehl + git + verwenden, um die Quelldateien herunterzuladen.

git clone https://github.com/prometheus/promdash.git

Geben Sie das Verzeichnis + promdash + ein.

cd ~/Prometheus/promdash

PromDash hängt von mehreren Ruby-Edelsteinen ab. Um die Installation dieser Edelsteine ​​zu automatisieren, sollten Sie einen Edelstein namens "+ bundler +" installieren.

gem install bundler

Sie können jetzt den Befehl + bundle + verwenden, um alle Ruby-Edelsteine ​​zu installieren, die PromDash benötigt. Da PromDash in diesem Tutorial für die Arbeit mit SQLite3 konfiguriert wird, schließen Sie die Gems für MySQL und PostgreSQL mit dem Parameter "+ - without +" aus:

bundle install --without mysql postgresql

Möglicherweise müssen Sie einige Minuten warten, bis dieser Befehl ausgeführt wurde. Sobald Sie fertig sind, sollten Sie die folgenden Meldungen sehen:

Ausgabe bündeln

. . .
Your bundle is complete!
Gems in the groups mysql and postgresql were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

Schritt 6 - Einrichten der Rails-Umgebung

Erstellen Sie ein Verzeichnis zum Speichern der mit PromDash verknüpften SQLite3-Datenbanken.

mkdir ~/Prometheus/databases

PromDash verwendet eine Umgebungsvariable mit dem Namen "+ DATABASE_URL ", um den Namen der damit verbundenen Datenbank zu bestimmen. Geben Sie Folgendes ein, damit PromDash eine SQLite3-Datenbank mit dem Namen " mydb.sqlite3 " im Verzeichnis " databases +" erstellt:

echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3" >> ~/.bashrc

In diesem Tutorial führen Sie PromDash im Produktionsmodus aus. Setzen Sie daher die Umgebungsvariable "+ RAILS_ENV " auf " production +".

echo "export RAILS_ENV=production" >> ~/.bashrc

Wenden Sie die Änderungen an, die wir an der Datei + .bashrc + vorgenommen haben.

. ~/.bashrc

Als nächstes erstellen Sie PromDash-Tabellen in der SQLite3-Datenbank mit dem Werkzeug "+ rake +".

rake db:migrate

Da PromDash die Rails-Asset-Pipeline verwendet, sollten alle Assets (CSS-Dateien, Bilder und Javascript-Dateien) des PromDash-Projekts vorkompiliert werden. Geben Sie dazu Folgendes ein:

rake assets:precompile

Schritt 7 - PromDash starten und konfigurieren

PromDash läuft auf Thin, einem leichten Webserver. Starten Sie den Server als Daemon, indem Sie den folgenden Befehl eingeben:

bundle exec thin start -d

Warten Sie einige Sekunden, bis der Server gestartet ist, und rufen Sie dann "+ http: //: 3000 / +" auf, um die PromDash-Homepage anzuzeigen.

Bevor Sie mit der Erstellung Ihrer benutzerdefinierten Dashboards beginnen, sollten Sie PromDash die URL Ihres Prometheus-Servers mitteilen. Klicken Sie dazu oben auf die Registerkarte * Server *. Klicken Sie auf "Neuer Server" und geben Sie Ihrem Prometheus-Server im Formular einen beliebigen Namen. Setzen Sie das Feld * Url * auf + http: //: 9090 + und das Feld * Servertyp * auf * Prometheus *.

image: https://assets.digitalocean.com/articles/prometheus/C0ChfYZ.png [PromDashs Bildschirm zum Erstellen von Servern]

Klicken Sie abschließend auf * Create Server * (Server erstellen), um die Konfiguration abzuschließen. Auf Ihrer Seite wird * Server wurde erfolgreich erstellt. * Angezeigt und Sie können im oberen Menü auf * Dashboards * klicken.

Schritt 8 - Erstellen eines Dashboards

Da ein Promdash-Dashboard zu einem Promdash-Verzeichnis gehören soll, erstellen Sie zunächst ein neues Verzeichnis, indem Sie auf das Symbol * Neues Verzeichnis * klicken. Geben Sie in dem angezeigten Formular einen Namen für Ihr Verzeichnis ein, z. B. * Meine Dashboards *, und klicken Sie dann auf * Verzeichnis erstellen *.

Sobald Sie das Formular abschicken, gelangen Sie zurück zur Homepage. Klicken Sie jetzt auf die Schaltfläche * Neues Dashboard *, um ein neues Dashboard zu erstellen. Geben Sie in dem angezeigten Formular Ihrem Dashboard einen Namen, z. B. * Einfaches Dashboard *, und wählen Sie das gerade erstellte Verzeichnis aus dem Dropdown-Menü aus.

Nach dem Absenden des Formulars sehen Sie das neue Dashboard.

Ihr Dashboard verfügt bereits über ein Diagramm, das jedoch konfiguriert werden muss. Wenn Sie mit der Maus über die Kopfzeile des Diagramms fahren (* Titel *), werden verschiedene Symbole angezeigt, mit denen Sie das Diagramm konfigurieren können. Um den Titel zu ändern, klicken Sie auf das Symbol * Graph and Axis Settings * (vierter von links) und geben Sie einen neuen Titel in das Feld * Graph Title * ein.

Klicken Sie auf das Symbol * Datenquellen *, das sich in der zweiten Zeile links befindet, um dem Diagramm einen oder mehrere Ausdrücke hinzuzufügen. Klicken Sie auf * Ausdruck hinzufügen * und geben Sie in das Feld * Ausdruck eingeben * * nodeprocsrunning * ein.

Klicken Sie nun in der Kopfzeile des Diagramms auf das Symbol * Aktualisieren * (ganz links), um das Diagramm zu aktualisieren. Ihr Dashboard enthält jetzt ein vollständig konfiguriertes Diagramm. Sie können weitere Diagramme hinzufügen, indem Sie unten auf die Schaltfläche * Diagramm hinzufügen * klicken.

Nachdem Sie alle Änderungen vorgenommen haben, klicken Sie rechts auf die Schaltfläche * Save Changes * (Änderungen speichern), um die Änderungen dauerhaft zu speichern. Wenn Sie das nächste Mal die PromDash-Startseite besuchen, wird ein Link zu Ihrem Dashboard angezeigt:

Fazit

Sie haben jetzt ein voll funktionsfähiges Prometheus-Ökosystem auf Ihrem CentOS 7-Server und können mit PromDash Überwachungs-Dashboards erstellen, die Ihren Anforderungen entsprechen.

Obwohl Sie alle Komponenten auf einem einzigen CentOS-Computer installiert haben, können Sie problemlos mehrere Computer überwachen, indem Sie nur Node Exporter auf jedem dieser Computer installieren und die URLs der neuen Node Exporter zum Array "+ goals " von " prometheus" hinzufügen. yml + `.

Weitere Informationen zu Prometheus finden Sie unter documentation.