So aktualisieren Sie Prometheus 1.x auf Prometheus 2.0 unter Ubuntu 16.04

Der Autor hat den Fonds Diversity in Tech ausgewählt, um eine Spende in Höhe von 200 USD als Teil des Write for zu erhalten DOnations program.

Einführung

Prometheus ist ein Open-Source-Überwachungssystem, mit dem Kennzahlen aus Ihren Diensten erfasst werden. Prometheus 2.0 bringt viele Änderungen und Verbesserungen mit sich, z. B. eine neue Zeitreihendatenbank, eine bessere Ressourcennutzung, ein neues Konfigurationsformat für Warnungen und eine bessere Alertmanager-Erkennung.

In diesem Tutorial aktualisieren Sie eine vorhandene Prometheus 1.x-Installation auf Prometheus 2.0. Die neue Zeitreihendatenbank in Prometheus 2.0 mit der Bezeichnung "+ tsdb +" ist nicht mit Prometheus 1.x kompatibel. Dies bedeutet, dass Sie die Daten von Ihrer Prometheus 1.x-Instanz nicht mit Prometheus 2 lesen können. Um diese Einschränkung zu umgehen, konfigurieren Sie Prometheus 1.x als schreibgeschützten Datenspeicher, um Ihre alten Daten verfügbar zu machen.

Prometheus 2 verwendet ein neues Format für Warnungsregeln. Aktualisieren Sie daher Ihre vorhandenen Warnungsregeln auf das neue Format und arbeiten Sie mit Alertmanager.

Schließlich verwenden Sie die Web-Benutzeroberfläche, um sicherzustellen, dass Prometheus wie vorgesehen funktioniert.

Dieses Tutorial behandelt nur die wichtigsten Änderungen. Bevor Sie ein Upgrade auf die neueste Version durchführen, sollten Sie Announcing Prometheus 2.0 lesen, um sicherzustellen, dass Sie von keiner der folgenden Änderungen betroffen sind die anderen Änderungen.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie:

  • Ein Ubuntu 16.04-Server wird über den folgenden Link eingerichtet: [Erstes Server-Setup mit dem Ubuntu 16.04-Lernprogramm], einschließlich eines sudo-Benutzers ohne Rootberechtigung und einer Firewall.

  • Prometheus 1.x ist auf Ihrem Server installiert, einschließlich der Prometheus-Web-Benutzeroberfläche. Sie können Ihre Prometheus-Version herausfinden, indem Sie den Befehl + prometheus -version + ausführen. Die Ausgabe enthält Ihre Prometheus-Version sowie Build-Informationen.

In diesem Tutorial werden die folgenden Dinge in Bezug auf Ihre Prometheus-Installation vorausgesetzt:

  • Sie haben einen Benutzer * prometheus * angelegt.

  • Sie haben das Verzeichnis "+ / etc / prometheus +" erstellt, in dem sich die Konfigurationsdateien von Prometheus befinden.

  • Sie haben das Verzeichnis "+ / var / lib / prometheus +" erstellt, in dem die Daten von Prometheus gespeichert sind.

  • Die ausführbaren Dateien + prometheus + und + promtool + befinden sich in + / usr / local / bin +.

  • Sie haben Prometheus so konfiguriert, dass es als Systemdienst mit dem Namen "+ prometheus +" ausgeführt wird.

Schritt 1 - Upgrade von Prometheus auf 1.8.2

Um mit Prometheus 2.0 auf Ihre alten Daten zugreifen zu können, müssen Sie Ihre aktuelle Prometheus-Installation auf die Version "+ 1.8.2 " aktualisieren und dann Prometheus 2.0 so einrichten, dass es mit der Funktion " remote_read +" von der alten Version liest.

Überprüfen Sie mit dem Befehl "+ prometheus -version " Ihre aktuelle Prometheus-Version. Die Ausgabe enthält die Versions- und Build-Informationen. Wenn Sie bereits Version ` 1.8.2 +` ausführen, überspringen Sie diesen Schritt.

prometheus -version
prometheus -version outputprometheus, version  (branch: master, revision: 3afb3fffa3a29c3de865e1172fb740442e9d0133)
 build user:       root@0aa1b7fc430d
 build date:       20170612-11:44:05
 go version:       go1.8.3

Beenden Sie Prometheus, bevor Sie fortfahren, damit Sie seine Dateien ersetzen können:

sudo systemctl stop prometheus

Sie finden Prometheus 1.8.2 zusammen mit den Prüfsummen auf der Seite GitHub Releases des Projekts. Sie benötigen eine Datei mit dem Namen "+". Laden Sie das Prometheus-Archiv und die Prüfsumme mit den folgenden " curl +" - Befehlen in Ihr Ausgangsverzeichnis herunter:

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

Um sicherzustellen, dass Sie ein echtes, nicht beschädigtes Archiv haben, verwenden Sie den Befehl + sha256sum +, um eine Prüfsumme für das Archiv zu generieren und mit einer Datei + sha256sums.txt + zu vergleichen.

sha256sum -c  2>&1 | grep OK
Checksums checkprometheus-1.8.2.linux-amd64.tar.gz:

Wenn Sie in der Ausgabe kein "+ OK +" sehen, entfernen Sie das heruntergeladene Archiv und führen Sie die vorherigen Schritte erneut aus, um es erneut herunterzuladen.

Nun entpacke das Archiv.

tar xvf

Kopieren Sie die ausführbaren Dateien + prometheus + und + promtool + in das Verzeichnis + / usr / local / bin +.

sudo cp prometheus-1.8.2.linux-amd64/prometheus /usr/local/bin
sudo cp prometheus-1.8.2.linux-amd64/promtool /usr/local/bin

Setzen Sie den Benutzer- und Gruppenbesitz für die Dateien auf den Benutzer * prometheus *.

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

Starten Sie abschließend Prometheus, um sicherzustellen, dass es wie beabsichtigt funktioniert.

sudo systemctl start prometheus

Zuletzt überprüfen Sie den Status des Dienstes.

sudo systemctl status prometheus

Sie sehen die folgende Ausgabe:

Prometheus service status● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
  Active:  (running) since Mon 2018-01-01 21:44:52 UTC; 2s ago
Main PID: 1646 (prometheus)
   Tasks: 6
  Memory: 17.7M
     CPU: 333ms
  CGroup: /system.slice/prometheus.service
          └─1646 /usr/local/bin/prometheus -config.file /etc/prometheus/prometheus.yml -storage.local.path /var/lib/prometheus/
...

Wenn der Servicestatus nicht "++" lautet, folgen Sie den Protokollen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Überprüfen Sie die Prometheus-Version, um sicherzustellen, dass Version "++" ausgeführt wird.

prometheus -version
prometheus -version outputprometheus, version  (branch: HEAD, revision: 5211b96d4d1291c3dd1a569f711d3b301b635ecb)
 build user:       root@1412e937e4ad
 build date:       20171104-16:09:14
 go version:       go1.9.2

Wenn "+ version +" nicht angezeigt wird, stellen Sie sicher, dass Sie die richtige Datei heruntergeladen haben, und wiederholen Sie die Schritte in diesem Abschnitt.

Entfernen Sie zuletzt die heruntergeladenen Dateien, da Sie diese nicht mehr benötigen.

rm -rf

Als Nächstes konfigurieren Sie Ihre vorhandene Installation neu, damit Prometheus 2.0 nach der Installation nicht beeinträchtigt wird.

Schritt 2 - Konfigurieren von Prometheus 1.8.2 als separaten Dienst

Wir möchten Prometheus 1.8.2 beibehalten, damit wir auf die alten Daten zugreifen können, aber wir müssen sicherstellen, dass unsere alte Installation Prometheus 2 bei der Installation nicht beeinträchtigt. Zu diesem Zweck hängen wir "+ 1 " an den Namen aller Prometheus-bezogenen Verzeichnisse und ausführbaren Dateien an. Beispielsweise wird die ausführbare Datei " prometheus " zu " prometheus1 +". Wir aktualisieren auch die Service-Definition und stellen sie so ein, dass sie auf einem anderen Port ausgeführt wird.

Beenden Sie Prometheus, bevor Sie fortfahren, damit Sie die Dateien und Verzeichnisse umbenennen können.

sudo systemctl stop prometheus

Im Verzeichnis "+ / usr / local / bin " finden Sie zwei ausführbare Prometheus-Dateien - " prometheus " und " promtool ". Benennen Sie diese in " prometheus1 " bzw. " promtool1 +" um:

sudo mv /usr/local/bin/prometheus /usr/local/bin/prometheus1
sudo mv /usr/local/bin/promtool /usr/local/bin/promtool1

Prometheus verfügt über zwei zugeordnete Verzeichnisse: "+ / etc / prometheus " zum Speichern von Konfigurationsdateien und " / var / lib / prometheus +" zum Speichern von Daten. Benennen Sie diese Verzeichnisse ebenfalls um.

sudo mv /etc/prometheus /etc/prometheus1
sudo mv /var/lib/prometheus /var/lib/prometheus1

Wir werden Prometheus 1.8.2 als schreibgeschützten Datenspeicher ausführen, damit wir keine Daten von Exporteuren erfassen können. Um dies zu gewährleisten, entfernen wir den gesamten Inhalt aus der Konfigurationsdatei mit dem folgenden Befehl "+ truncate +". Erstellen Sie vor dem Entfernen des Dateiinhalts eine Sicherungskopie der Datei, damit Sie sie später zum Konfigurieren von Prometheus 2.0 verwenden können.

sudo cp /etc/prometheus1/prometheus.yml /etc/prometheus1/prometheus.yml.bak

Dann leeren Sie den Inhalt der Konfigurationsdatei mit + Truncate.

sudo truncate -s 0 /etc/prometheus1/prometheus.yml

Benennen Sie als Nächstes die Service-Datei von "+ prometheus " in " prometheus1 +" um.

sudo mv /etc/systemd/system/prometheus.service /etc/systemd/system/prometheus1.service

Öffnen Sie die Prometheus-Servicedatei im Texteditor.

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

Sie werden Prometheus 2.0 auf dem Standardport von "+ 9090 " ausführen, ändern Sie also den Port, auf dem Prometheus 1.8.2 lauscht, auf " 9089 ". Ersetzen Sie die Anweisung " ExecStart +" durch die folgende Konfiguration:

ExecStart - /etc/systemd/system/prometheus.service

...
ExecStart=/usr/local/bin/ \
   -config.file /etc//prometheus.yml \
   -storage.local.path /var/lib// \
   -web.listen-address ":"
...

Speichern Sie die Datei und schließen Sie Ihren Texteditor. Laden Sie + systemd + neu, um die Änderungen zu übernehmen.

sudo systemctl daemon-reload

Starten Sie den Dienst "+ prometheus1 +".

sudo systemctl start prometheus1

Überprüfen Sie den Status des Dienstes, um sicherzustellen, dass er wie beabsichtigt funktioniert.

sudo systemctl status prometheus1

Wie zuvor enthält die Ausgabe Informationen zum Prozess, wie z. B. PID, Status und mehr:

Service status output● prometheus1.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus1.service; disabled; vendor preset: enabled)
  Active:  (running) since Mon 2018-01-01 21:46:42 UTC; 3s ago
Main PID: 1718 (prometheus1)
   Tasks: 6
  Memory: 35.7M
     CPU: 223ms
  CGroup: /system.slice/prometheus1.service
          └─1718 /usr/local/bin/prometheus1 -config.file /etc/prometheus1/prometheus.yml -storage.local.path /var/lib/prometheus1/
...

Wenn der Servicestatus nicht "++" lautet, folgen Sie den Protokollen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Aktivieren Sie den Dienst, um sicherzustellen, dass er beim Systemstart gestartet wird.

sudo systemctl enable prometheus1

Zu diesem Zeitpunkt kratzt Prometheus 1.8.2 keine Exporteure. Dies stellt die Datenkonsistenz sicher, sobald Prometheus 2.0 eingerichtet wurde, das die aktuelle Installation als schreibgeschützten Datenspeicher für die alten Daten verwendet. Im nächsten Schritt werden wir Prometheus 2.0 installieren und Prometheus 1.8.2 verwenden, um auf unsere alten Daten zuzugreifen.

Schritt 3 - Konfigurieren von Prometheus 2.0

In diesem Schritt konfigurieren wir Prometheus 2.0 so, dass Exporteure gelöscht und Prometheus 1.8.2 als schreibgeschützter Datenspeicher verwendet werden, damit wir auf unsere vorhandenen Daten zugreifen können.

Bevor Sie mit dem Tutorial fortfahren, installieren Sie Prometheus 2, indem Sie die Schritte 1 und 2 unter https://www.digitalocean.com/community/tutorials/how-to-install-prometheus-on-ubuntu-16-04#step-2-% ausführen. E2% 80% 94-downloading-prometheus [So installieren Sie Prometheus unter Ubuntu 16.04] Tutorial.

Nachdem Sie Prometheus installiert haben, erstellen Sie eine neue Konfigurationsdatei. Das Format der Konfigurationsdatei hat sich nicht geändert, sodass Sie Ihre Prometheus 1.x-Konfigurationsdatei mit Prometheus 2 verwenden können. Kopieren Sie die Sicherungskopie Ihrer vorhandenen Prometheus-Konfiguration, die Sie im vorherigen Schritt erstellt haben, in das Verzeichnis "+ / etc / prometheus / +".

sudo cp /etc/prometheus1/prometheus.yml.bak /etc/prometheus/prometheus.yml

Setzen Sie den Benutzer- und Gruppenbesitz für die neu erstellte Konfigurationsdatei auf den Benutzer * prometheus *.

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

Die einzige Änderung, die Sie an dieser Datei vornehmen, besteht darin, Prometheus 2.0 anzuweisen, Prometheus 1.8.2 als schreibgeschützten Datenspeicher zu verwenden, damit Sie auf die alten Daten zugreifen können. Öffnen Sie die Konfigurationsdatei im Texteditor.

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie am Ende der Konfigurationsdatei die Direktive + remote_read + hinzu, die von einer entfernten Prometheus-Instanz liest. Sagen Sie ihm, er soll aus "+ localhst: 9089 +", Ihrer Prometheus 1.8.2-Instanz, lesen:

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

...

remote_read:
   - url: http://localhost:/api/v1/read

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

Bevor Sie Prometheus 2.0 zum ersten Mal ausführen, aktualisieren wir die Warnungsregeln und konfigurieren den Warnungsmanager für die Zusammenarbeit mit Prometheus. Wenn Sie keine Benachrichtigungsregeln oder den Benachrichtigungsmanager verwenden, überspringen Sie den nächsten Schritt.

Schritt 4 - Konfigurieren der Warnung (optional)

Prometheus 1.x-Warnregeln wurden mithilfe einer benutzerdefinierten Syntax definiert. Ab Version 2.0 definieren Sie Warnungsregeln mit YAML. Um die Migration zu vereinfachen, kann der Prometheus-Befehl "+ promtool +" alte Regeldateien in das neue Format konvertieren. Wenn Sie keine Warnungsregeln verwenden, können Sie diesen Schritt überspringen.

Kopieren Sie zunächst alle Regeln, die Sie haben, aus dem Verzeichnis "+ / etc / prometheus1 " in das Verzeichnis " / etc / prometheus +".

sudo cp /etc/prometheus1/*.rules /etc/prometheus/

Stellen Sie außerdem sicher, dass Sie über "+ promtool +" Version 2.0 verfügen, indem Sie den folgenden Befehl ausführen:

promtool --version

Die Ausgabe enthält + promtool + Versions- und Build-Informationen.

promtool --versionpromtool, version 2.0.0 (branch: HEAD, revision: 0a74f98628a0463dddc90528220c94de5032d1a0)
 build user:       root@615b82cb36b6
 build date:       20171108-07:11:59
 go version:       go1.9.2

Wenn die Version nicht 2.0 ist, stellen Sie sicher, dass Sie die ausführbare Datei "+ promtool +" an den richtigen Speicherort kopiert haben.

Navigieren Sie nun zum Verzeichnis "+ / etc / prometheus" oder "".

cd /etc/prometheus

Führen Sie den folgenden Befehl "+ promtool " für jede " .rules +" - Datei aus, die Sie im Verzeichnis haben:

sudo promtool update rules .rules

Dadurch wird aus einer bereitgestellten Datei eine neue Datei mit dem Namen "+ .rules.yml +" erstellt. Wenn auf dem Bildschirm eine Fehlermeldung angezeigt wird, befolgen Sie die Bildschirmprotokolle, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Stellen Sie sicher, dass der Benutzer- und Gruppenbesitz für die von + promtool + erstellten Dateien korrekt eingestellt ist.

sudo chown prometheus:prometheus .rules

Zuletzt aktualisieren Sie die Prometheus-Konfigurationsdatei, um Ihre neu erstellten Regeldateien anstelle der alten zu verwenden. Öffnen Sie die Konfigurationsdatei in Ihrem Editor.

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie das Suffix "+ .yml " wie folgt an jeden Eintrag in der Direktive " rule_files +" an:

...
rule_files:
 - alert1.rules
 - alert2.rules
...

Speichern Sie die Datei und beenden Sie den Editor.

Entfernen Sie jetzt die alten Warnungsregeldateien, da sie nicht mehr benötigt werden.

sudo rm

Als nächstes konfigurieren wir Prometheus so, dass es den Alertmanager erkennt. Das Flag "+ -alertmanager.url +" existiert nicht mehr. Stattdessen führte Prometheus 2.0 Alertmanager Service Discovery ein, das viele neue Funktionen und eine bessere Integration mit Diensten wie Kubernetes bietet. Wenn Sie Alertmanager nicht verwenden, überspringen Sie den Rest dieses Schritts.

Öffnen Sie die Datei + prometheus.yml + erneut in Ihrem Editor:

sudo nano /etc/prometheus/prometheus.yml

Die folgende Direktive "+ alerting " weist Prometheus an, den Alertmanager zu verwenden, der auf dem Droplet-Port ": 9093 +" ausgeführt wird. Sie können den folgenden Inhalt an einer beliebigen Stelle in die Datei einfügen:

/etc/prometheus/prometheus.yml

global:
...

alerting:
 alertmanagers:
 - static_configs:
   - targets:
     - alertmanager:9093

rule_files:
...

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

Prometheus kann nun die Benachrichtigungsregeln verwenden und mit dem Benachrichtigungsmanager kommunizieren, und wir sind bereit, sie zum ersten Mal auszuführen.

Schritt 5 - Prometheus 2.0 ausführen

Um Prometheus 2.0 als Dienst ausführen zu können, müssen wir eine Dienstdatei erstellen. Wir können mit der Servicedatei beginnen, die wir für Prometheus 1.8.2 verwendet haben, da sie mit Ausnahme des Befehls "+ ExecStart +" größtenteils identisch ist.

Erstellen Sie eine neue Servicedatei, indem Sie die vorhandene kopieren:

sudo cp /etc/systemd/system/prometheus1.service /etc/systemd/system/prometheus.service

Öffnen Sie die neu erstellte Servicedatei in Ihrem Editor:

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

Prometheus 2.0 bringt einige wichtige Änderungen im Flaggensystem mit sich, darunter:

  • Flags werden jetzt mit einem doppelten Strich (+ - +) anstelle eines einzelnen Strichs vorangestellt.

  • Alle + -storage.local und` + -storage.remote + Flags wurden entfernt und durch + - storage.tsdb` Flags ersetzt.

  • Die Datei "+ -alertmanager.url +" wurde entfernt und durch "Alertmanager Service Discovery" ersetzt, die im vorherigen Schritt behandelt wurde.

Ersetzen Sie die Anweisung + ExecStart + durch die folgende:

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

Die Direktive "+ - config.file " weist Prometheus an, die Datei " prometheus.yml " im Verzeichnis " / etc / prometheus " zu verwenden. Anstelle von " - storage.local.path" verwenden wir "+ - storage.tsdb.path". Außerdem haben wir zwei "+ - web. +" - Flags hinzugefügt, sodass wir Zugriff auf die integrierten Webvorlagen haben.

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

Zuletzt laden Sie systemd neu, damit Sie den neu erstellten Dienst verwenden können.

sudo systemctl daemon-reload

Dann starte Prometheus:

sudo systemctl start prometheus

Überprüfen Sie den Status des Dienstes, um sicherzustellen, dass er wie beabsichtigt funktioniert.

sudo systemctl status prometheus
Prometheus service status● prometheus.service - Prometheus
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
   Active:  (running) since Mon 2018-01-01 20:15:09 UTC; 1h 20min ago
 Main PID: 1947 (prometheus)
   Tasks: 7
   Memory: 54.3M
     CPU: 15.626s
   CGroup: /system.slice/prometheus.service
           └─1947 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/
...

Wenn der Servicestatus nicht "++" lautet, folgen Sie den Protokollen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Nachdem Sie wissen, dass der Dienst funktioniert, können Sie ihn beim Systemstart starten:

sudo systemctl enable prometheus

Sie können auf die Web-Benutzeroberfläche von Prometheus zugreifen, indem Sie in Ihrem Webbrowser zu "+ http: // +" navigieren und sich mit den Anmeldeinformationen authentifizieren, die Sie bei der Installation von Prometheus konfiguriert haben. Verwenden Sie im nächsten Schritt die Web-Benutzeroberfläche, um sicherzustellen, dass Prometheus wie vorgesehen funktioniert.

Schritt 6 - Prometheus testen

Vergewissern wir uns, dass Prometheus 2 alle Exporteure wie beabsichtigt kratzt und auf die Daten der vorherigen Installation von Prometheus zugreifen kann.

Navigieren Sie in Ihrem Webbrowser zu "+ http: // +", um auf die Prometheus-Web-Benutzeroberfläche zuzugreifen. Sie werden aufgefordert, den Benutzernamen und das Kennwort einzugeben, die Sie bei der ursprünglichen Installation von Prometheus konfiguriert haben.

Sobald Sie die Anmeldeinformationen eingegeben haben, wird die Seite "Grafik" angezeigt, auf der Sie Abfragen ausführen und visualisieren können:

Überprüfen Sie vor dem Ausführen einer Abfrage die Prometheus-Version und den Exporterstatus. Klicken Sie in der Navigationsleiste auf den Link * Status * und dann auf die Schaltfläche * Runtime & Build Information *. Sie sehen die Seite mit Informationen zu Ihrem Prometheus-Server.

image: https: //assets.digitalocean.com/articles/promethus_2_upgrade_1604/WmqDmEc.png [Prometheus-Laufzeitinformationen]

Klicken Sie anschließend erneut auf den Link * Status * und dann auf die Schaltfläche * Ziele *, um zu überprüfen, ob Ihre Exporteure wie beabsichtigt ausgeführt werden. Die Webseite enthält Details zu Ihren Exporteuren, einschließlich der Verfügbarkeit.

Wenn Sie einen Fehler feststellen, beheben Sie diesen, indem Sie den Anweisungen auf dem Bildschirm folgen, bevor Sie mit dem Tutorial fortfahren.

Ihre Prometheus 1.8.2-Datenquelle wird nicht angezeigt, da sie als Datenspeicher und stattdessen als Exporteur verwendet wird. Stellen wir also sicher, dass wir sowohl auf die alten als auch auf die neuen Daten zugreifen können. Klicken Sie auf die Schaltfläche * Grafik *.

Geben Sie in das Feld "Ausdruck" "+ node_memory_MemAvailable / 1024/1024 +" ein, um den verfügbaren Speicher Ihres Servers in Megabyte zu ermitteln. Klicken Sie auf die Schaltfläche * Ausführen *.

Sie sehen die Ergebnisse auf dem Bildschirm:

Klicken Sie auf die Registerkarte * Graph *, um den verfügbaren Speicherplatz im Zeitverlauf anzuzeigen. In der Grafik sollten die vorherigen Daten und nach einer Pause, während Prometheus nicht funktionierte, die neuesten Daten angezeigt werden.

Wenn Sie die alten Daten nicht sehen, stellen Sie sicher, dass Prometheus 1.8.2 auf dem neuesten Stand ist, indem Sie den Status des Dienstes überprüfen und Prometheus 2.0 für die Verwendung als entfernte Datenbank konfigurieren.

Sie haben überprüft, ob Prometheus ordnungsgemäß funktioniert und Daten meldet. Schauen wir uns nun an, wie Sie Prometheus 1.8.2 und die alten Daten entfernen können, wenn sie nicht mehr verwendet werden.

Schritt 7 - Entfernen der alten Daten (optional)

Möglicherweise möchten Sie Prometheus 1.8.2 und Ihre alten Daten entfernen, sobald Sie sie nicht mehr benötigen. Befolgen Sie diese Schritte, um alles aufzuräumen.

Entfernen Sie zunächst die Direktive "+ remote_read +" aus der Prometheus 2-Konfigurationsdatei. Öffnen Sie die Prometheus 2.0-Konfigurationsdatei in Ihrem Editor:

sudo nano /etc/prometheus/prometheus.yml

Suchen und entfernen Sie die Direktive + remote_read +, die am Ende der Datei stehen soll:

remote_read:
   - url: http://localhost:/api/v1/read

Speichern Sie die Datei und schließen Sie Ihren Texteditor. Starten Sie Prometheus neu, um die Änderungen zu übernehmen.

sudo systemctl restart prometheus

Stellen Sie sicher, dass der Dienst ordnungsgemäß ausgeführt wird:

sudo systemctl status prometheus
Prometheus service status● prometheus.service - Prometheus
  Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
  Active:  (running) since Mon 2018-01-01 20:15:09 UTC; 1h 20min ago
Main PID: 1947 (prometheus)
   Tasks: 7
  Memory: 54.3M
     CPU: 15.626s
  CGroup: /system.slice/prometheus.service
          └─1947 /usr/local/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/
...

Wenn der Servicestatus nicht "++" lautet, folgen Sie den Protokollen auf dem Bildschirm und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Deaktivieren und entfernen Sie als Nächstes den Dienst "+ prometheus1 +" und bereinigen Sie dann alle für Prometheus 1.8.2 relevanten Verzeichnisse und Dateien.

Deaktivieren Sie den Dienst, um sicherzustellen, dass er nicht automatisch gestartet wird:

sudo systemctl disable prometheus1

Beenden Sie dann den Dienst:

sudo systemctl stop prometheus1

Keine Ausgabe zeigt an, dass der Vorgang erfolgreich abgeschlossen wurde.

Entfernen Sie nun die Service-Datei + prometheus1 +:

sudo rm /etc/systemd/system/prometheus1.service

Entfernen Sie schließlich die verbleibenden Dateien, da diese nicht mehr benötigt werden. Entfernen Sie zunächst die ausführbaren Dateien + prometheus1 + und + promtool1 +, die sich im Verzeichnis + / usr / local / bin + befinden.

sudo rm /usr/local/bin/prometheus1 /usr/local/bin/promtool1

Entfernen Sie dann die Verzeichnisse "+ / etc / prometheus1 " und " / var / lib / prometheus1 +", die Sie zum Speichern von Daten und zur Konfiguration verwendet haben.

sudo rm -r /etc/prometheus1 /var/lib/prometheus1

Prometheus 1.8.2 ist jetzt von Ihrem System entfernt und Ihre alten Daten sind weg.

Fazit

In diesem Tutorial haben Sie Prometheus 1.x auf Prometheus 2.0 aktualisiert, alle Regeldateien aktualisiert und Prometheus so konfiguriert, dass Alertmanager erkannt wird, falls vorhanden.

Erfahren Sie mehr über alle Änderungen, die Prometheus 2.0 beinhaltet, indem Sie den offiziellen Beitrag Announcing Prometheus 2.0 und den https: // github lesen .com / prometheus / prometheus / blob / master / CHANGELOG.md # 200—​2017-11-08 [Änderungsprotokoll des Projekts].