So installieren Sie Prometheus unter Ubuntu 16.04

Einführung

Prometheus ist ein leistungsstarkes Open-Source-Überwachungssystem, mit dem Kennzahlen Ihrer Dienste erfasst und in einer Zeitreihendatenbank gespeichert werden. Es bietet ein mehrdimensionales Datenmodell, eine flexible Abfragesprache und vielfältige Visualisierungsmöglichkeiten mit Tools wie Grafana.

Standardmäßig exportiert Prometheus nur Metriken über sich selbst (z. Anzahl der empfangenen Anfragen, Speicherverbrauch usw.). Sie können Prometheus jedoch erheblich erweitern, indem Sie exporters installieren, optionale Programme, die zusätzliche Metriken generieren.

Exporteure - sowohl die offiziellen, die das Prometheus-Team unterhält, als auch die von der Community bereitgestellten - liefern Informationen über alles, von Infrastruktur, Datenbanken und Webservern bis hin zu Messagingsystemen, APIs und vielem mehr.

Einige der beliebtesten Optionen sind:

  • node_exporter - Hiermit werden Metriken zur Infrastruktur erstellt, einschließlich der aktuellen CPU-, Speicher- und Datenträgernutzung sowie E / A- und Netzwerkstatistiken, z. B. die Anzahl der von a gelesenen Bytes Festplatte oder die durchschnittliche Auslastung eines Servers.

  • blackbox_exporter - Hiermit werden Metriken generiert, die aus Prüfprotokollen wie HTTP und HTTPS abgeleitet werden, um die Verfügbarkeit von Endpunkten, die Antwortzeit usw. zu bestimmen.

  • mysqld_exporter - Hier werden Metriken zu einem MySQL-Server erfasst, z. B. die Anzahl der ausgeführten Abfragen, die durchschnittliche Antwortzeit für Abfragen und der Cluster-Replikationsstatus.

  • rabbitmq_exporter - Gibt Metriken zum RabbitMQ Messaging-System aus, einschließlich der Anzahl der veröffentlichten Nachrichten und der Anzahl der bereitstehenden Nachrichten zugestellt, und die Größe aller Nachrichten in der Warteschlange.

  • nginx-vts-exporter - Hier werden mithilfe von Nginx Metriken zu einem Nginx-Webserver bereitgestellt VTS-Modul, einschließlich der Anzahl der offenen Verbindungen, der Anzahl der gesendeten Antworten (gruppiert nach Antwortcodes) und der Gesamtgröße der gesendeten oder empfangenen Anforderungen in Byte.

Eine vollständigere Liste der offiziellen und von der Community beitragten Exporteure finden Sie unter Prometheus 'Website.

In diesem Lernprogramm installieren, konfigurieren und sichern Sie Prometheus und Node Exporter, um Metriken zu generieren, mit denen Sie die Leistung Ihres Servers einfacher überwachen können.

Voraussetzungen

Bevor Sie diesem Tutorial folgen, stellen Sie sicher, dass Sie Folgendes haben:

Schritt 1 - Erstellen von Dienstbenutzern

Aus Sicherheitsgründen erstellen wir zunächst zwei neue Benutzerkonten, * prometheus * und * node_exporter *. Wir werden diese Konten im gesamten Lernprogramm verwenden, um die Inhaberschaft der Kerndateien und -verzeichnisse von Prometheus zu isolieren.

Erstellen Sie diese beiden Benutzer und verwenden Sie die Optionen "+ - no-create-home" und "+ - shell / bin / false", damit sich diese Benutzer nicht beim Server anmelden können.

sudo useradd --no-create-home --shell /bin/false prometheus
sudo useradd --no-create-home --shell /bin/false node_exporter

Erstellen Sie vor dem Herunterladen der Prometheus-Binärdateien die erforderlichen Verzeichnisse zum Speichern der Prometheus-Dateien und -Daten. Gemäß den Standard-Linux-Konventionen erstellen wir ein Verzeichnis für die Prometheus-Konfigurationsdateien in "+ / etc " und ein Verzeichnis für die Daten in " / var / lib +".

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

Setzen Sie nun die Benutzer- und Gruppenrechte für die neuen Verzeichnisse auf den Benutzer * prometheus *.

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

Mit unseren Benutzern und Verzeichnissen können wir jetzt Prometheus herunterladen und dann die minimale Konfigurationsdatei erstellen, um Prometheus zum ersten Mal auszuführen.

Schritt 2 - Prometheus herunterladen

Laden Sie zuerst die aktuelle stabile Version von Prometheus herunter und entpacken Sie sie in Ihr Home-Verzeichnis. Die neuesten Binärdateien mit ihren Prüfsummen finden Sie auf der Prometheus-Downloadseite.

cd ~
curl -LO https://github.com/prometheus/prometheus/releases/download//

Verwenden Sie als Nächstes den Befehl + sha256sum +, um eine Prüfsumme der heruntergeladenen Datei zu generieren:

sha256sum

Vergleichen Sie die Ausgabe dieses Befehls mit der Prüfsumme auf der Prometheus-Downloadseite, um sicherzustellen, dass Ihre Datei echt und nicht beschädigt ist.

Output

Wenn die Prüfsummen nicht übereinstimmen, entfernen Sie die heruntergeladene Datei und wiederholen Sie die vorherigen Schritte, um die Datei erneut herunterzuladen.

Entpacken Sie nun das heruntergeladene Archiv.

tar xvf

Dadurch wird ein Verzeichnis mit dem Namen "+" erstellt, das zwei Binärdateien (" prometheus " und " promtool "), " consoles " und " console_libraries +" enthält, die die Webinterface-Dateien, eine Lizenz, einen Hinweis und mehrere enthalten Beispieldateien.

Kopieren Sie die beiden Binärdateien in das Verzeichnis + / usr / local / bin +.

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

Setzen Sie den Benutzer- und Gruppenbesitz für die Binärdateien auf den in Schritt 1 erstellten Benutzer * prometheus *.

sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

Kopieren Sie die Verzeichnisse + console und` + console libraries` nach + / etc / prometheus.

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

Setzen Sie den Benutzer- und Gruppenbesitz für die Verzeichnisse auf den Benutzer * prometheus *. Durch die Verwendung des Flags "+ -R +" wird sichergestellt, dass der Besitz auch für die Dateien im Verzeichnis festgelegt wird.

sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Zuletzt entfernen Sie die übrig gebliebenen Dateien aus Ihrem Home-Verzeichnis, da sie nicht mehr benötigt werden.

rm -rf

Nach der Installation von Prometheus werden die Konfigurations- und Servicedateien zur Vorbereitung der ersten Ausführung erstellt.

Schritt 3 - Prometheus konfigurieren

Verwenden Sie im Verzeichnis "+ / etc / prometheus " " nano " oder Ihren bevorzugten Texteditor, um eine Konfigurationsdatei mit dem Namen " prometheus.yml +" zu erstellen. Vorerst enthält diese Datei gerade genug Informationen, um Prometheus zum ersten Mal auszuführen.

sudo nano /etc/prometheus/prometheus.yml

Definieren Sie in den Einstellungen "+ global +" das Standardintervall für das Scraping von Metriken. Beachten Sie, dass Prometheus diese Einstellungen auf jeden Exporteur anwendet, es sei denn, die Einstellungen eines einzelnen Exporteurs überschreiben die globalen Einstellungen.

Prometheus Konfigurationsdatei Teil 1 - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

Dieser "+ scrape_interval +" - Wert weist Prometheus an, alle 15 Sekunden Metriken von seinen Exporteuren zu sammeln, was für die meisten Exporteure lang genug ist.

Fügen Sie nun Prometheus selbst zur Liste der Exporteure hinzu, von denen aus Sie mit der folgenden Direktive scrape_configs + scrappen können:

Prometheus Konfigurationsdatei Teil 2 - /etc/prometheus/prometheus.yml

...
scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

Prometheus verwendet "+ job_name +", um Exporteure in Abfragen und in Diagrammen zu kennzeichnen. Wählen Sie daher hier eine Beschreibung aus.

Da Prometheus wichtige Daten über sich selbst exportiert, die Sie zur Leistungsüberwachung und zum Debuggen verwenden können, haben wir die globale Direktive "+ scrape_interval +" für häufigere Aktualisierungen von 15 Sekunden auf 5 Sekunden überschrieben.

Zuletzt verwendet Prometheus die Direktiven + static_configs + und + goals +, um festzustellen, wo Exporteure ausgeführt werden. Da dieser Exporter auf demselben Server wie Prometheus ausgeführt wird, können wir anstelle einer IP-Adresse "+ localhost " zusammen mit dem Standardport " 9090 +" verwenden.

Ihre Konfigurationsdatei sollte jetzt so aussehen:

Prometheus-Konfigurationsdatei - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

scrape_configs:
 - job_name: ''
   scrape_interval:
   static_configs:
     - targets: ['']

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Setzen Sie nun den Benutzer- und Gruppenbesitz für die Konfigurationsdatei auf den in Schritt 1 erstellten Benutzer * prometheus *.

sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml

Nach Abschluss der Konfiguration können Sie Prometheus testen, indem Sie es zum ersten Mal ausführen.

Schritt 4 - Prometheus ausführen

Starten Sie Prometheus als * prometheus * -Benutzer und geben Sie den Pfad sowohl zur Konfigurationsdatei als auch zum Datenverzeichnis an.

sudo -u prometheus /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

Die Ausgabe enthält Informationen zum Ladevorgang von Prometheus, zur Konfigurationsdatei und zu den zugehörigen Diensten. Es bestätigt auch, dass Prometheus den Port "+ 9090 +" abhört.

Outputlevel=info ts=2017-11-17T18:37:27.474530094Z caller=main.go:215 msg="Starting Prometheus" version="(version=2.0.0, branch=HEAD, re
vision=0a74f98628a0463dddc90528220c94de5032d1a0)"
level=info ts=2017-11-17T18:37:27.474758404Z caller=main.go:216 build_context="(go=go1.9.2, user=root@615b82cb36b6, date=20171108-
07:11:59)"
level=info ts=2017-11-17T18:37:27.474883982Z caller=main.go:217 host_details="(Linux 4.4.0-98-generic #121-Ubuntu SMP Tue Oct 10 1
4:24:03 UTC 2017 x86_64 prometheus-update (none))"
level=info ts=2017-11-17T18:37:27.483661837Z caller=web.go:380 component=web msg="Start listening for connections" address=0.0.0.0
:9090
level=info ts=2017-11-17T18:37:27.489730138Z caller=main.go:314 msg="Starting TSDB"
level=info ts=2017-11-17T18:37:27.516050288Z caller=targetmanager.go:71 component="target manager" msg="Starting target manager...
"
level=info ts=2017-11-17T18:37:27.537629169Z caller=main.go:326 msg="TSDB started"
level=info ts=2017-11-17T18:37:27.537896721Z caller=main.go:394 msg="Loading configuration file" filename=/etc/prometheus/promethe
us.yml
level=info ts=2017-11-17T18:37:27.53890004Z caller=main.go:371 msg="Server is ready to receive requests."

Wenn eine Fehlermeldung angezeigt wird, überprüfen Sie, ob Sie die YAML-Syntax in Ihrer Konfigurationsdatei verwendet haben, und befolgen Sie die Anweisungen auf dem Bildschirm, um das Problem zu beheben.

Halten Sie Prometheus jetzt an, indem Sie die Tastenkombination "+ STRG + C " drücken, und öffnen Sie dann eine neue Service-Datei " systemd +".

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

Die Servicedatei weist + systemd + an, Prometheus als * prometheus * -Benutzer auszuführen, wobei sich die Konfigurationsdatei im Verzeichnis + / etc / prometheus / prometheus.yml + befindet, und ihre Daten im Verzeichnis + / var / lib zu speichern / prometheus + `Verzeichnis. (Die Details der `+ systemd + - Servicedateien werden in diesem Lernprogramm nicht behandelt. Weitere Informationen finden Sie jedoch unter https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files# wo-sind-systemd-unit-dateien-gefunden [Grundlegendes zu Systemd Units und Unit-Dateien].)

Kopieren Sie den folgenden Inhalt in die Datei:

Prometheus-Servicedatei - /etc/systemd/system/prometheus.service

[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 Sie abschließend die Datei und schließen Sie Ihren Texteditor.

Laden Sie "+ systemd +" neu, um den neu erstellten Dienst zu verwenden.

sudo systemctl daemon-reload

Sie können Prometheus jetzt mit dem folgenden Befehl starten:

sudo systemctl start prometheus

Überprüfen Sie den Status des Dienstes, um sicherzustellen, dass Prometheus ausgeführt wird.

sudo systemctl status prometheus

Die Ausgabe informiert Sie über den Prometheus-Status, die Hauptprozesskennung (PID), die Speichernutzung und vieles mehr.

Wenn der Status des Dienstes nicht "++" lautet, befolgen Sie die Anweisungen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:40:40 UTC; 3s ago
Main PID: 2104 (prometheus)
   Tasks: 7
  Memory: 13.8M
     CPU: 470ms
  CGroup: /system.slice/prometheus.service
...

Wenn Sie bereit sind, fortzufahren, drücken Sie "+ Q ", um den Befehl " status +" zu beenden.

Zuletzt aktivieren Sie den Dienst, um beim Booten zu starten.

sudo systemctl enable prometheus

Jetzt, da Prometheus läuft, können wir einen zusätzlichen Exporter installieren, um Metriken über die Ressourcen unseres Servers zu generieren.

Schritt 5 - Laden Sie den Node Exporter herunter

Um Prometheus über die eigentlichen Messdaten hinaus zu erweitern, installieren wir einen zusätzlichen Exporter namens "Node Exporter". Node Exporter bietet detaillierte Informationen zum System, einschließlich CPU-, Festplatten- und Speicherauslastung.

Laden Sie zunächst die aktuelle stabile Version von Node Exporter in Ihr Ausgangsverzeichnis herunter. Die neuesten Binärdateien mit ihren Prüfsummen finden Sie auf der Download-Seite von Prometheus '.

cd ~
curl -LO https://github.com/prometheus/node_exporter/releases/download//

Verwenden Sie den Befehl + sha256sum +, um eine Prüfsumme der heruntergeladenen Datei zu generieren:

sha256sum

Überprüfen Sie die Integrität der heruntergeladenen Datei, indem Sie die Prüfsumme mit der auf der Downloadseite vergleichen.

Output

Wenn die Prüfsummen nicht übereinstimmen, entfernen Sie die heruntergeladene Datei und wiederholen Sie die vorherigen Schritte.

Entpacken Sie nun das heruntergeladene Archiv.

tar xvf

Dadurch wird ein Verzeichnis mit dem Namen "+" erstellt, das eine Binärdatei mit dem Namen " node_exporter +", eine Lizenz und einen Hinweis enthält.

Kopieren Sie die Binärdatei in das Verzeichnis "+ / usr / local / bin" und setzen Sie den Benutzer- und Gruppeneigentümer auf den Benutzer "* node exporter *", den Sie in Schritt 1 erstellt haben.

sudo cp /node_exporter /usr/local/bin
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter

Zuletzt entfernen Sie die übrig gebliebenen Dateien aus Ihrem Home-Verzeichnis, da sie nicht mehr benötigt werden.

rm -rf

Nachdem Sie Node Exporter installiert haben, können Sie es testen, indem Sie es ausführen, bevor Sie eine Servicedatei dafür erstellen, damit es beim Start gestartet wird.

Schritt 6 - Node Exporter ausführen

Die Schritte zum Ausführen von Node Exporter ähneln denen zum Ausführen von Prometheus. Beginnen Sie mit der Erstellung der Systemd-Servicedatei für Node Exporter.

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

Diese Servicedatei weist Ihr System an, Node Exporter als * node_exporter * -Benutzer mit aktiviertem Standardsatz von Kollektoren auszuführen.

Kopieren Sie den folgenden Inhalt in die Servicedatei:

Dienstdatei für den Knotenexport - /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

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

[Install]
WantedBy=multi-user.target

Collectors definieren, welche Metriken von Node Exporter generiert werden. Die vollständige Liste der Kollektoren von Node Exporter - einschließlich der standardmäßig aktivierten und veralteten - finden Sie unter Node Exporter README-Datei.

Wenn Sie jemals die Standardliste der Kollektoren überschreiben müssen, können Sie das Flag "+ - collectors.enabled +" verwenden, z.

Teil der Dienstdatei für den Knotenexport - /etc/systemd/system/node_exporter.service

...
ExecStart=/usr/local/bin/node_exporter --collectors.enabled
...

Im obigen Beispiel wird Node Exporter angewiesen, Metriken nur mit den Kollektoren "+ meminfo ", " loadavg " und " filesystem +" zu generieren. Sie können die Anzahl der Kollektoren auf wenige oder viele beschränken. Beachten Sie jedoch, dass vor oder nach den Kommas keine Leerzeichen stehen.

Speichern Sie die Datei und schließen Sie Ihren Texteditor.

Laden Sie abschließend + systemd + neu, um den neu erstellten Dienst zu verwenden.

sudo systemctl daemon-reload

Sie können Node Exporter jetzt mit dem folgenden Befehl ausführen:

sudo systemctl start node_exporter

Überprüfen Sie mit dem Befehl "+ status +", ob der Node Exporter ordnungsgemäß ausgeführt wird.

sudo systemctl status node_exporter

Wie zuvor informiert Sie diese Ausgabe über den Status des Node Exporters, die Hauptprozess-ID (PID), die Speichernutzung und vieles mehr.

Wenn der Status des Dienstes nicht "++" lautet, befolgen Sie die Bildschirmmeldungen und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie fortfahren.

Output● node_exporter.service - Node Exporter
  Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:44:46 UTC; 5s ago
Main PID: 2161 (node_exporter)
   Tasks: 3
  Memory: 1.4M
     CPU: 11ms
  CGroup: /system.slice/node_exporter.service

Zuletzt aktivieren Sie Node Exporter, um beim Booten zu starten.

sudo systemctl enable node_exporter

Wenn Node Exporter vollständig konfiguriert ist und wie erwartet ausgeführt wird, werden wir Prometheus anweisen, mit dem Scraping der neuen Metriken zu beginnen.

Schritt 7 - Konfigurieren von Prometheus für Scrape Node Exporter

Da Prometheus nur Exporter abschabt, die im Abschnitt "+ scrape_configs +" seiner Konfigurationsdatei definiert sind, müssen wir einen Eintrag für Node Exporter hinzufügen, genau wie wir es für Prometheus selbst getan haben.

Öffnen Sie die Konfigurationsdatei.

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie am Ende des Blocks "+ scrape_configs " einen neuen Eintrag mit dem Namen " node_exporter +" hinzu.

Prometheus Konfigurationsdatei Teil 1 - /etc/prometheus/prometheus.yml

...
 - job_name: 'node_exporter'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9100']

Da dieser Exporter auch auf demselben Server wie Prometheus ausgeführt wird, können wir localhost anstelle einer IP-Adresse wieder zusammen mit dem Standardport des Node Exporter verwenden, + 9100 +.

Ihre gesamte Konfigurationsdatei sollte folgendermaßen aussehen:

Prometheus-Konfigurationsdatei - /etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s

scrape_configs:
 - job_name: 'prometheus'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9090']
 - job_name: 'node_exporter'
   scrape_interval: 5s
   static_configs:
     - targets: ['localhost:9100']

Speichern Sie die Datei und schließen Sie den Texteditor, wenn Sie fortfahren möchten.

Starten Sie Prometheus abschließend neu, damit die Änderungen wirksam werden.

sudo systemctl restart prometheus

Vergewissern Sie sich erneut mit dem Befehl + status +, dass alles korrekt ausgeführt wird.

sudo systemctl status prometheus

Wenn der Status des Dienstes nicht auf "++" gesetzt ist, befolgen Sie die Anweisungen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, bevor Sie fortfahren.

Output● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
  Active:  (running) since Fri 2017-07-21 11:46:39 UTC; 6s ago
Main PID: 2219 (prometheus)
   Tasks: 6
  Memory: 19.9M
     CPU: 433ms
  CGroup: /system.slice/prometheus.service

Wir haben jetzt Prometheus und Node Exporter installiert, konfiguriert und ausgeführt. Als letzte Vorsichtsmaßnahme vor dem Herstellen einer Verbindung mit der Weboberfläche verbessern wir die Sicherheit unserer Installation durch die grundlegende HTTP-Authentifizierung, um sicherzustellen, dass nicht autorisierte Benutzer nicht auf unsere Messdaten zugreifen können.

Schritt 8 - Prometheus sichern

Prometheus enthält keine integrierte Authentifizierung oder andere allgemeine Sicherheitsmechanismen. Auf der einen Seite bedeutet dies, dass Sie ein hochflexibles System mit weniger Konfigurationsbeschränkungen erhalten. Auf der anderen Seite müssen Sie sicherstellen, dass Ihre Messdaten und das gesamte Setup ausreichend sicher sind.

Der Einfachheit halber verwenden wir Nginx, um unserer Installation eine grundlegende HTTP-Authentifizierung hinzuzufügen, die sowohl Prometheus als auch das bevorzugte Datenvisualisierungstool Grafana vollständig unterstützen.

Beginnen Sie mit der Installation von + apache2-utils +, mit dem Sie auf das Hilfsprogramm + htpasswd + zum Generieren von Kennwortdateien zugreifen können.

sudo apt-get update
sudo apt-get install apache2-utils

Erstellen Sie nun eine Kennwortdatei, indem Sie "+ htpasswd +" angeben, wo Sie die Datei speichern möchten und welchen Benutzernamen Sie für die Authentifizierung verwenden möchten.

sudo htpasswd -c

Das Ergebnis dieses Befehls ist eine neu erstellte Datei mit dem Namen "+ .htpasswd ", die sich im Verzeichnis "+" befindet und den Benutzernamen und eine Hash-Version des von Ihnen eingegebenen Kennworts enthält.

Konfigurieren Sie Nginx als Nächstes so, dass die neu erstellten Kennwörter verwendet werden.

Erstellen Sie zunächst eine Prometheus-spezifische Kopie der Standard-Nginx-Konfigurationsdatei, damit Sie später auf die Standardeinstellungen zurückgreifen können, wenn Sie auf ein Problem stoßen.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/prometheus

Öffnen Sie dann die neue Konfigurationsdatei.

sudo nano /etc/nginx/sites-available/prometheus

Suchen Sie den + location / + Block unter dem + server + Block. Es sollte so aussehen:

/ etc / nginx / sites-available / default

...
   location / {
       try_files $uri $uri/ =404;
   }
...

Da wir den gesamten Datenverkehr an Prometheus weiterleiten, ersetzen Sie die Direktive "+ try_files +" durch den folgenden Inhalt:

/ etc / nginx / sites-available / prometheus

...
   location / {
       auth_basic "";
       auth_basic_user_file ;
       proxy_pass http://localhost:9090;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
   }
...

Diese Einstellungen stellen sicher, dass sich Benutzer zu Beginn jeder neuen Sitzung authentifizieren müssen. Darüber hinaus leitet der Reverse-Proxy alle von diesem Block bearbeiteten Anforderungen an Prometheus weiter.

Wenn Sie mit den Änderungen fertig sind, speichern Sie die Datei und schließen Sie den Texteditor.

Deaktivieren Sie nun die Standard-Nginx-Konfigurationsdatei, indem Sie den Link dazu im Verzeichnis "+ / etc / nginx / sites-enabled +" entfernen und die neue Konfigurationsdatei aktivieren, indem Sie einen Link dazu erstellen.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/prometheus /etc/nginx/sites-enabled/

Überprüfen Sie vor dem Neustart von Nginx die Konfiguration mit dem folgenden Befehl auf Fehler:

sudo nginx -t

Die Ausgabe sollte anzeigen, dass die + Syntax in Ordnung ist + und der + Test erfolgreich ist +. Wenn eine Fehlermeldung angezeigt wird, befolgen Sie die Anweisungen auf dem Bildschirm, um das Problem zu beheben, bevor Sie mit dem nächsten Schritt fortfahren.

Output of Nginx configuration testsnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Laden Sie dann Nginx neu, um alle Änderungen zu übernehmen.

sudo systemctl reload nginx

Stellen Sie sicher, dass Nginx läuft.

sudo systemctl status nginx

Wenn Ihre Ausgabe nicht anzeigt, dass der Status des Dienstes "++" lautet, befolgen Sie die Bildschirmmeldungen und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie fortfahren.

Ausgabe

● nginx.service - A high performance web server and a reverse proxy server
  Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: en
  Active:  (running) since Mon 2017-07-31 21:20:57 UTC; 12min ago
 Process: 4302 ExecReload=/usr/sbin/nginx -g daemon on; master_process on; -s r
Main PID: 3053 (nginx)
   Tasks: 2
  Memory: 3.6M
     CPU: 56ms
  CGroup: /system.slice/nginx.service

Zu diesem Zeitpunkt verfügen wir über einen voll funktionsfähigen und gesicherten Prometheus-Server, sodass wir uns bei der Weboberfläche anmelden können, um mit der Betrachtung der Messdaten zu beginnen.

Schritt 9 - Prometheus testen

Prometheus bietet eine grundlegende Web-Oberfläche zur Überwachung des Status von sich selbst und seinen Exporteuren, zur Ausführung von Abfragen und zur Erstellung von Diagrammen. Aufgrund der Einfachheit der Benutzeroberfläche empfiehlt das Prometheus-Team jedoch, [ref, [installing and using Grafana für alles komplizierter als testen und debuggen.

In diesem Lernprogramm verwenden wir die integrierte Weboberfläche, um sicherzustellen, dass Prometheus und Node Exporter ausgeführt werden, und werfen einen Blick auf einfache Abfragen und Diagramme.

Zeigen Sie mit Ihrem Webbrowser zunächst auf "+ http: // +".

Geben Sie im Dialogfeld HTTP-Authentifizierung den Benutzernamen und das Kennwort ein, die Sie in Schritt 8 ausgewählt haben.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Authentication.png [Prometheus Authentication]

Sobald Sie angemeldet sind, sehen Sie den * Expression Browser *, in dem Sie benutzerdefinierte Abfragen ausführen und visualisieren können.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Welcome.png [Prometheus Dashboard Welcome]

Bevor Sie Ausdrücke ausführen, überprüfen Sie den Status von Prometheus und Node Explorer, indem Sie zuerst auf das Menü * Status * am oberen Bildschirmrand und dann auf die Menüoption * Ziele * klicken. Da Prometheus so konfiguriert wurde, dass es sowohl sich selbst als auch den Node Exporter entfernt, sollten beide Ziele im Status "+ UP +" aufgelistet sein.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Targets.png [Prometheus Dashboard Targets]

Wenn ein Exporter fehlt oder eine Fehlermeldung angezeigt wird, überprüfen Sie den Status des Dienstes mit den folgenden Befehlen:

sudo systemctl status prometheus
sudo systemctl status node_exporter

Die Ausgabe für beide Dienste sollte den Status "+ Aktiv: (wird ausgeführt) +" anzeigen. Befolgen Sie die Anweisungen auf dem Bildschirm, und führen Sie die vorherigen Schritte erneut aus, bevor Sie fortfahren, wenn ein Dienst entweder überhaupt nicht aktiv ist oder noch nicht ordnungsgemäß funktioniert.

Als Nächstes führen wir einige Ausdrücke für Node Exporter aus, um sicherzustellen, dass die Exporter ordnungsgemäß funktionieren.

Klicken Sie zuerst oben auf dem Bildschirm auf das Menü * Graph *, um zum * Expression Browser * zurückzukehren.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-Graph.png [Prometheus Dashboard Graph]

Geben Sie in das Feld * Ausdruck * + node_memory_MemAvailable + ein und klicken Sie auf die Schaltfläche * Ausführen *, um die Registerkarte * Konsole * mit der auf Ihrem Server verfügbaren Speicherkapazität zu aktualisieren.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal.png [Prometheus Dashboard MemTotal]

Standardmäßig gibt Node Exporter diese Menge in Bytes an. Bei der Konvertierung in Megabyte werden mathematische Operatoren verwendet, um das Ergebnis zweimal durch 1024 zu teilen.

Geben Sie in das Feld * Ausdruck * "+ node_memory_MemAvailable / 1024/1024 +" ein und klicken Sie auf die Schaltfläche "Ausführen".

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Dashboard-MemTotal-MB.png [Prometheus Dashboard MemTotal MB]

Auf der Registerkarte * Konsole * werden jetzt die Ergebnisse in Megabyte angezeigt.

Wenn Sie die Ergebnisse überprüfen möchten, führen Sie den Befehl "+ free " auf Ihrem Terminal aus. (Das " -h " - Flag weist " free +" an, in einem für Menschen lesbaren Format zu berichten, und gibt die Menge in Megabyte an.)

free -h

Diese Ausgabe enthält Details zur Speichernutzung, einschließlich des verfügbaren Speichers, der in der Spalte * available * angezeigt wird.

Output              total        used        free      shared  buff/cache   available
Mem:           488M        144M         17M        3.7M        326M        324M
Swap:            0B          0B          0B

Zusätzlich zu den Basisoperatoren bietet die Abfragesprache Prometheus viele Funktionen zum Zusammenfassen von Ergebnissen.

Geben Sie in das Feld * Ausdruck * + avg_over_time (node_memory_MemAvailable [5m]) / 1024/1024 + ein und klicken Sie auf die Schaltfläche * Ausführen *. Das Ergebnis ist der in den letzten 5 Minuten durchschnittlich verfügbare Speicher in Megabyte.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Average-Memory.png [Prometheus Average Memory]

Klicken Sie nun auf die Registerkarte * Graph *, um den ausgeführten Ausdruck als Graph anstatt als Text anzuzeigen.

image: http: //assets.digitalocean.com/articles/install-prometheus-on-ubuntu-16-04/Prometheus-Graph-Average-Memory2.png [Prometheus Graph Average Memory]

Bewegen Sie die Maus auf dieser Registerkarte über das Diagramm, um weitere Informationen zu einem bestimmten Punkt entlang der X- und Y-Achse des Diagramms zu erhalten.

Weitere Informationen zum Erstellen von Ausdrücken in der integrierten Weboberfläche von Prometheus finden Sie im Abschnitt Querying Prometheus der offiziellen Dokumentation.

Fazit

In diesem Tutorial haben wir eine vollständige Prometheus-Installation mit einem zusätzlichen Exporter heruntergeladen, konfiguriert, gesichert und getestet.

Wenn Sie mehr darüber erfahren möchten, wie Prometheus unter der Haube funktioniert, besuchen Sie https://www.digitalocean.com/community/tutorials/how-to-query-prometheus-on-ubuntu-14-04- Teil-1 # Schritt-2-% E2% 80% 94-Installieren-der-Demo-Instanzen [So fragen Sie Prometheus unter Ubuntu 14.04 ab]. (Da Sie Prometheus bereits installiert haben, können Sie den ersten Schritt überspringen.)

Weitere Informationen zu Prometheus finden Sie unter der offiziellen Prometheus-Dokumentation.

Weitere Informationen zum Erweitern von Prometheus finden Sie auf der liste der verfügbaren Exporteure sowie auf der official Grafana website.