Überwachen Sie Systemressourcen und Apps mit Prometheus on Lightsail - Amazon Lightsail

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überwachen Sie Systemressourcen und Apps mit Prometheus on Lightsail

Prometheus ist ein Open-Source-Zeitreihenüberwachungstool zur Verwaltung einer Vielzahl von Systemressourcen und Anwendungen. Es bietet ein mehrdimensionales Datenmodell, die Möglichkeit, die gesammelten Daten abzufragen, sowie detaillierte Berichte und Datenvisualisierung über Grafana.

Standardmäßig ist Prometheus aktiviert, um Metriken auf dem Server, auf dem es installiert ist, zu sammeln. Mithilfe von Node-Exportern können Metriken aus anderen Ressourcen, wie Webservern, Containern, Datenbanken, benutzerdefinierten Anwendungen und anderen Systemen von Drittanbietern, gesammelt werden. In diesem Tutorial zeigen wir Ihnen, wie Sie Prometheus mit Node-Exportern auf einer Lightsail-Instanz installieren und konfigurieren. Eine vollständige Liste der verfügbaren Exporter finden Sie unter Exporter und Integrationen in der Promethe-Dokumentation.

Inhalt

Schritt 1: Erfüllen der Voraussetzungen

Bevor Sie Prometheus auf einer Amazon Lightsail-Instance installieren können, müssen Sie wie folgt vorgehen:

Schritt 2: Benutzer und lokale Systemverzeichnisse zu Ihrer Lightsail-Instance hinzufügen

Gehen Sie wie folgt vor, um über SSH eine Verbindung zu Ihrer Lightsail-Instanz herzustellen und Benutzer und Systemverzeichnisse hinzuzufügen. Dieses Verfahren erstellt die folgenden Linux-Benutzerkonten:

  • prometheus – Dieses Konto wird für die Installation und Konfiguration der Serverumgebung verwendet.

  • exporter – Dieses Konto wird verwendet, um die node_exporter-Erweiterung zu konfigurieren.

Diese Benutzerkonten werden ausschließlich zu Verwaltungszwecken erstellt und erfordern daher keine zusätzlichen Benutzerservices oder Berechtigungen, die über den Rahmen dieser Einrichtung hinausgehen. In diesem Verfahren erstellen Sie auch Verzeichnisse zum Speichern und Verwalten der Dateien, Serviceeinsteinstellungen und Daten, die Prometheus zur Überwachung von Ressourcen verwendet.

  1. Melden Sie sich bei der Lightsail-Konsole an.

  2. Wählen Sie auf Ihrer Instance-Verwaltungsseite unter der Registerkarte Connect (Verbinden) die Option Connect using SSH (Verbinden mit SSH).

    Connect über SSH in der Lightsail-Konsole her
  3. Nachdem Sie verbunden sind, geben Sie nacheinander die folgenden Befehle ein, um zwei Linux-Benutzerkonten zu erstellen, prometheus und exporter.

    sudo useradd --no-create-home --shell /bin/false prometheus
    sudo useradd --no-create-home --shell /bin/false exporter
  4. Geben Sie nacheinander die folgenden Befehle ein, um lokale Systemverzeichnisse zu erstellen.

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

Schritt 3: Die Prometheus-binärpakete herunterladen

Gehen Sie wie folgt vor, um die Prometheus-Binärpakete auf Ihre Lightsail-Instanz herunterzuladen.

  1. Öffnen Sie einen Webbrowser auf Ihrem lokalen Computer und navigieren Sie zur Promethethe-Downloadseite.

  2. Oben auf der Seite wählen Sie im Dropdown-Menü Operating System (Betriebssystem) Linux aus. Wählen Sie für Architecture (Architektur) die Option amd64 aus.

    Auswählen der Download-Filter für Prometheus
  3. Wählen Sie per Eingabetaste oder Rechtsklick den Prometheus-Downloadlink aus, der angezeigt wird, und kopieren Sie die Linkadresse in eine Textdatei auf Ihrem Computer. Tun Sie dasselbe für den node_exporter-Downloadlink, der angezeigt wird. Sie werden später in diesem Verfahren beide kopierten Adressen verwenden.

    Downloadlink für Prometheus kopieren
  4. Stellen Sie über SSH eine Connect zu Ihrer Lightsail-Instanz her.

  5. Geben Sie den folgenden Befehl ein, um zu Ihrem Startverzeichnis zu wechseln.

    cd ~
  6. Führen Sie die folgenden Schritte aus, um die Prometheus-Binärpakete auf Ihre Instance herunterzuladen.

    curl -LO prometheus-download-address

    prometheus-download-addressErsetzen Sie es durch die Adresse, die Sie zuvor in diesem Verfahren kopiert haben. Der Befehl sollte wie das folgende Beispiel aussehen, wenn Sie die Adresse hinzufügen.

    curl -LO https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
  7. Geben Sie den folgenden Befehl ein, um die node_exporter-Binärpakete auf Ihre Instance herunterzuladen.

    curl -LO node_exporter-download-address

    Ersetzen Sie node_ exporter-download-address durch die Adresse, die Sie im vorherigen Schritt dieses Verfahrens kopiert haben. Der Befehl sollte wie das folgende Beispiel aussehen, wenn Sie die Adresse hinzufügen.

    curl -LO https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
  8. Führen Sie nacheinander die folgenden Befehle aus, um den Inhalt der heruntergeladenen Prometheus- und Node-Exporter-Dateien zu extrahieren.

    tar -xvf prometheus-2.37.0.linux-amd64.tar.gz
    tar -xvf node_exporter-1.3.1.linux-amd64.tar.gz

    Nachdem der Inhalt der heruntergeladenen Dateien extrahiert wurde, werden mehrere Unterverzeichnisse erstellt.

  9. Geben Sie nacheinander die folgenden Befehle ein, um die extrahierten prometheus- und promtool-Dateien in das /usr/local/bin-Programmverzeichnis kopieren.

    sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus /usr/local/bin
    sudo cp -p ./prometheus-2.37.0.linux-amd64/promtool /usr/local/bin
  10. Geben Sie den folgenden Befehl ein, um den Besitzstatus der prometheus- und promtool-Dateien zu dem prometheus-Benutzer zu ändern, den Sie zuvor in diesem Tutorial erstellt haben.

    sudo chown prometheus:prometheus /usr/local/bin/prom*
  11. Geben Sie nacheinander die folgenden Befehle ein, um die consoles- und console_libraries-Unterverzeichnisse zu /etc/prometheus zu kopieren. Die -r-Option führt eine rekursive Kopie aller Verzeichnisse innerhalb der Hierarchie durch.

    sudo cp -r ./prometheus-2.37.0.linux-amd64/consoles /etc/prometheus
    sudo cp -r ./prometheus-2.37.0.linux-amd64/console_libraries /etc/prometheus
  12. Geben Sie nacheinander die folgenden Befehle ein, um den Besitzstatus der kopierten Dateien zu dem prometheus-Benutzer zu ändern, den Sie zuvor in diesem Tutorial erstellt haben. Die -R-Option führt eine rekursive Besirtzänderung für alle Dateien und Verzeichnisse innerhalb der Hierarchie durch.

    sudo chown -R prometheus:prometheus /etc/prometheus/consoles
    sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
  13. Geben Sie nacheinander die folgenden Befehle ein, um die Konfigurationsdatei prometheus.yml in das /etc/prometheus-Verzeichnis zu kopiere und den Besitzstatus der kopierten Datei zu dem prometheus-Benutzer zu ändern, den Sie zuvor in diesem Tutorial erstellt haben.

    sudo cp -p ./prometheus-2.37.0.linux-amd64/prometheus.yml /etc/prometheus
    sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
  14. Geben Sie den folgenden Befehl ein, um die node_exporter-Datei aus dem ./node_exporter*-Unterverzeichnis in das /usr/local/bin-Programmverzeichnis zu kopieren.

    sudo cp -p ./node_exporter-1.3.1.linux-amd64/node_exporter /usr/local/bin
  15. Geben Sie den folgenden Befehl ein, um den Besitzstatus der Datei zu dem exporter-Benutzer zu ändern, den Sie zuvor in diesem Tutorial erstellt haben.

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

Schritt 4: Prometheus konfigurieren

Führen Sie das folgende Verfahren durch, um Prometheus zu konfigurieren. In diesem Verfahren öffnen und bearbeiten Sie die prometheus.yml-Datei, die verschiedene Einstellungen für das Prometheus-Tool enthält. Prometheus richtet basierend auf den Einstellungen, die Sie in der Datei konfigurieren, eine Überwachungsumgebung ein.

  1. Stellen Sie über SSH eine Connect zu Ihrer Lightsail-Instanz her.

  2. Geben Sie den folgenden Befehl ein, um eine Sicherungskopie der prometheus.yml-Datei zu erstellen, bevor Sie sie öffnen und bearbeiten.

    sudo cp /etc/prometheus/prometheus.yml /etc/prometheus/prometheus.yml.backup
  3. Geben Sie den folgenden Befehl ein, um die prometheus.ymlDatei mit Vim zu öffnen.

    sudo vim /etc/prometheus/prometheus.yml

    Im Folgenden finden Sie einige wichtige Parameter, die Sie möglicherweise in der prometheus.yml-Datei konfigurieren möchten:

    • scrape_interval – Dieser Parameter unter dem global-Header definiert das Zeitintervall (in Sekunden) dafür, wie oft Prometheus oder Metrikdaten für ein bestimmtes Ziel sammeln oder scrapen wird. Wie durch das global-Tag angegeben, ist diese Einstellung universell für alle Ressourcen, die Prometheus überwacht. Diese Einstellung gilt auch für Exporter, es sei denn, ein einzelner Exporter stellt einen anderen Wert bereit, der den globalen Wert außer Kraft setzt. Sie können diesen Parameter auf dem aktuellen Wert von 15 Sekunden belassen.

    • job_name – Dieser Parameter unter dem scrape_configs-Header ist ein Label, das Exporter in der Ergebnismenge einer Datenabfrage oder visuellen Anzeige identifiziert. Sie können den Wert eines Auftragsnamens angeben, um die Ressourcen, die in Ihrer Umgebung überwacht werden, am besten widerzuspiegeln. Beispielsweise können Sie einen Auftrag für die Verwaltung einer Website als business-web-app kennzeichnen, oder Sie können eine Datenbank als mysql-db-1 kennzeichnen. In diesem ersten Setup überwachen Sie nur den Prometheus-Server, sodass Sie den aktuellen prometheus-Wert behalten können.

    • targets – Die targets-Einstellung unter dem static_configs-Header verwendet ein ip_addr:port-Schlüssel-Wert-Paar zur Identifizierung des Speicherorts, an dem ein bestimmter Exporter ausgeführt wird. Sie werden die Standardeinstellung in Schritt 4–7 dieses Verfahrens ändern.

      Prometheus-YAML-Datei
    Anmerkung

    Für diese Ersteinrichtung müssen Sie nicht die alerting-und rule_files-Parameter konfigurieren.

  4. In der prometheus.yml-Datei, die Sie in Vim geöffnet haben, drücken Sie die I-Taste, um den Einfügemodus in Vim zu starten.

  5. Scrollen Sie zum targets-Parameter, der sich unter dem static_configs-Header befindet.

  6. Ändern Sie die Standardeinstellung auf <ip_addr>:9090. Ersetzen Sie <ip_addr> mit der statischen IP-Adresse der Instance. Der geänderte Parameter sollte wie im folgenden Beispiel aussehen.

    Prometheus-YAML-Datei modifizierte static_configs-Parameter
  7. Drücken Sie die Esc-Taste, um den Eingabemodus zu beenden, und geben Sie :wq! ein, um Ihre Änderungen zu speichern und Vim zu verlassen.

  8. (Optional) Wenn etwas schief gelaufen ist, geben Sie den folgenden Befehl ein, um die prometheus.yml-Datei mit dem Backup, das Sie zuvor in diesem Verfahren erstellt haben, zu ersetzen.

    sudo cp /etc/prometheus/prometheus.yml.backup /etc/prometheus/prometheus.yml

Schritt 5: Prometheus starten

Führen Sie die folgenden Schritte aus, um den Prometheus-Service auf Ihrer Instance zu starten.

  1. Stellen Sie über SSH eine Connect zu Ihrer Lightsail-Instanz her.

  2. Geben Sie den folgenden Befehl ein, um den Prometheus-Service zu starten.

    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 Befehlszeile gibt Details zum Startvorgang und anderen Services aus. Es sollte auch darauf hinweisen, dass der Service auf Port 9090 zuhört.

    Prometheus-Startausgabe

    Wenn der Service nicht startet, finden Sie im Abschnitt Schritt 1: Erfüllen der Voraussetzungen in diesem Tutorial Informationen zum Erstellen von Instance-Firewall-Regeln, um Datenverkehr auf diesem Port zuzulassen. Gehen Sie für andere Fehler die prometheus.yml-Datei durch, um zu bestätigen, dass keine Syntaxfehler vorliegen.

  3. Nachdem der ausgeführte Service validiert wurde, drücken Sie Strg+C, um ihn zu beenden.

  4. Geben Sie den folgenden Befehl ein, um die systemd-Konfigurationsdatei in Vim zu öffnen. Mit dieser Datei wird Prometheus gestartet.

    sudo vim /etc/systemd/system/prometheus.service
  5. Fügen Sie die folgenden Zeilen in die Datei ein.

    [Unit] Description=PromServer 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

    Die vorhergehenden Anweisungen werden von dem Linux systemd Service Manager verwendet, um Prometheus auf dem Server zu starten. Wenn es aufgerufen wird, läuft Prometheus als der prometheus-Benutzer und referenziert die prometheus.yml-Datei zum Laden der Konfigurationseinstellungen und Speichern der Zeitreihendaten im /var/lib/prometheus-Verzeichnis. Sie können man systemd über die Befehlszeile ausführen, um mehr Informationen über den Service zu erhalten.

  6. Drücken Sie die Esc-Taste, um den Eingabemodus zu beenden, und geben Sie :wq! ein, um Ihre Änderungen zu speichern und Vim zu verlassen.

  7. Geben Sie den folgenden Befehl ein, um die Informationen in den systemd Service Manager zu laden.

    sudo systemctl daemon-reload
  8. Geben Sie den folgenden Befehl ein, um Prometheus neu zu starten.

    sudo systemctl start prometheus
  9. Geben Sie den folgenden Befehl ein, um den Status des Prometheus-Services zu überprüfen.

    sudo systemctl status prometheus

    Wird der Service ordnungsgemäß gestartet, erhalten Sie eine Ausgabe, die der im folgenden Beispiel ähnelt.

    Prometheus-Statusausgabe
  10. Drücken Sie auf Q, um den Status-Befehl zu beenden.

  11. Geben Sie den folgenden Befehl ein, damit Prometheus beim Booten der Instance starten kann.

    sudo systemctl enable prometheus
  12. Öffnen Sie einen Webbrowser auf Ihrem lokalen Computer und rufen Sie die folgende Webadresse auf, um die Prometheus-Verwaltungsoberfläche anzuzeigen.

    http:<ip_addr>:9090

    <ip_addr>Ersetzen Sie durch die statische IP-Adresse Ihrer Lightsail-Instanz. Sie sollten ein Dashboard sehen, das dem folgenden Beispiel ähnelt.

    Das Prometheus-Dashboard

Schritt 6: Node Exporter starten

Führen Sie die folgenden Schritte aus, um den Node-Exporter-Service zu starten.

  1. Stellen Sie über SSH eine Connect zu Ihrer Lightsail-Instanz her.

  2. Geben Sie den folgenden Befehl ein, um eine systemd-Servicedatei für node_exporter mit Vim zu erstellen.

    sudo vim /etc/systemd/system/node_exporter.service
  3. Drücken Sie die Taste I, um in den Einfügemodus in Vim zu gelangen.

  4. Fügen Sie die folgenden Textzeilen der Datei hinzu. Dadurch wird node_exporter mit Überwachungskollektoren für CPU-Auslastung, Dateisystemnutzung und Speicherressourcen konfiguriert.

    [Unit] Description=NodeExporter Wants=network-online.target After=network-online.target [Service] User=exporter Group=exporter Type=simple ExecStart=/usr/local/bin/node_exporter --collector.disable-defaults \ --collector.meminfo \ --collector.loadavg \ --collector.filesystem [Install] WantedBy=multi-user.target
    Anmerkung

    Diese Anweisungen deaktivieren Standardmaschinenmetriken für Node Exporter. Eine vollständige Liste der für Ubuntu verfügbaren Metriken finden Sie unter Prometheus node_exporter man page in der Ubuntu-Dokumentation.

  5. Drücken Sie die Esc-Taste, um den Eingabemodus zu beenden, und geben Sie :wq! ein, um Ihre Änderungen zu speichern und Vim zu verlassen.

  6. Geben Sie den folgenden Befehl ein, um den systemd-Prozess neu zu laden.

    sudo systemctl daemon-reload
  7. Geben Sie den folgenden Befehl ein, um den node_exporter-Service zu starten.

    sudo systemctl start node_exporter
  8. Geben Sie den folgenden Befehl ein, um den Status des node_exporter-Services zu überprüfen.

    sudo systemctl status node_exporter

    Wird der Service erfolgreich gestartet, erhalten Sie eine Ausgabe, die der im folgenden Beispiel ähnelt.

    Statusausgabe des Node Exporter
  9. Drücken Sie auf Q, um den Status-Befehl zu beenden.

  10. Geben Sie den folgenden Befehl ein, damit Node Exporter beim Booten der Instance starten kann.

    sudo systemctl enable node_exporter

Schritt 7: Prometheus mit dem Node-Exporter-Datensammler konfigurieren

Führen Sie die folgenden Schritte aus, um Prometheus mit dem Node-Exporter-Datensammler zu konfigurieren. Dafür fügen Sie einen neuen job_name-Parameter für node_exporter in der prometheus.yml-Datei hinzu.

  1. Stellen Sie über SSH eine Connect zu Ihrer Lightsail-Instanz her.

  2. Geben Sie den folgenden Befehl ein, um die prometheus.ymlDatei mit Vim zu öffnen.

    sudo vim /etc/prometheus/prometheus.yml
  3. Drücken Sie die Taste I, um in den Einfügemodus in Vim zu gelangen.

  4. Fügen Sie unterhalb des vorhandenen - targets: ["<ip_addr>:9090"]-Parameters die folgenden Textzeilen in die Datei ein.

    - job_name: "node_exporter" static_configs: - targets: ["<ip_addr>:9100"]

    Der geänderte Parameter in der prometheus.yml-Datei sollte wie im folgenden Beispiel aussehen.

    Statische Konfigurationen für Knoten-Exporter

    Beachten Sie Folgendes:

    • Node Exporter hört zum Scrapen der Daten durch den prometheus-Server Port 9100 zu. Vergewissern Sie sich, dass Sie die Schritte zum Erstellen von Instance-Firewall-Regeln, wie im Abschnitt Schritt 1: Erfüllen der Voraussetzungen dieses Tutorials dargelegt, befolgt haben.

    • Ersetzen Sie wie bei der Konfiguration von durch die <ip_addr>statische IP-Adresse prometheusjob_name, die an Ihre Lightsail-Instanz angehängt ist.

  5. Drücken Sie die Esc-Taste, um den Eingabemodus zu beenden, und geben Sie :wq! ein, um Ihre Änderungen zu speichern und Vim zu verlassen.

  6. Geben Sie den folgenden Befehl ein, um den Prometheus-Service neu zu starten, damit die Änderungen an der Konfigurationsdatei wirksam werden können.

    sudo systemctl restart prometheus
  7. Geben Sie den folgenden Befehl ein, um den Status des Prometheus-Services zu überprüfen.

    sudo systemctl status prometheus

    Wird der Service ordnungsgemäß neu gestartet, erhalten Sie eine Ausgabe, die der folgenden ähnelt.

    Prometheus-Statusausgabe
  8. Drücken Sie auf Q, um den Status-Befehl zu beenden.

  9. Öffnen Sie einen Webbrowser auf Ihrem lokalen Computer und rufen Sie die folgende Webadresse auf, um die Prometheus-Verwaltungsoberfläche anzuzeigen.

    http:<ip_addr>:9090

    <ip_addr>Ersetzen Sie durch die statische IP-Adresse Ihrer Lightsail-Instanz. Sie sollten ein Dashboard sehen, das dem folgenden Beispiel ähnelt.

    Das Prometheus-Dashboard
  10. Wählen Sie im Hauptmenü das Status-Dropdown-Menü und dann Targets (Ziele) aus.

    Menüoption „Targets“ (Ziele) im Prometheus-Dashboard

Auf dem nächsten Bildschirm sollten Sie zwei Ziele sehen. Das erste Ziel ist für den node_exporter-Metrik-Kollektorauftrag und das zweite ist für den Prometheus-Auftrag.

Ziele auf dem Prometheus-Dashboard

Die Umgebung ist jetzt korrekt für das Sammeln von Metriken und die Überwachung des Servers eingerichtet.