Verwendung von Alertmanager und Blackbox Exporter zur Überwachung Ihres Webservers unter Ubuntu 16.04

Der Autor hat das Programm Tech Education Fund ausgewählt, um eine Spende in Höhe von 300 USD im Rahmen des Programms Write for DOnations zu erhalten .

Einführung

Wenn Probleme auftreten, beschleunigt das Senden von Warnungen an das entsprechende Team die Ermittlung der Hauptursache eines Problems erheblich, sodass Teams Vorfälle schnell beheben können.

Prometheus ist ein Open-Source-Überwachungssystem, das Metriken von Ihren Diensten sammelt und diese in einer Zeitreihendatenbank speichert. Alertmanager ist ein Tool zum Verarbeiten von Warnungen, mit dem Warnungen dupliziert, gruppiert und an den entsprechenden Empfänger gesendet werden. Es kann Warnungen von Client-Anwendungen wie Prometheus verarbeiten und unterstützt viele Empfänger, einschließlich E-Mail, PagerDuty, OpsGenie und https : //slack.com/ [Slack].

Dank der vielen verfügbaren Prometheus-Exporteure können Sie Warnungen für jeden Teil Ihrer Infrastruktur konfigurieren, einschließlich web und https://prometheus.io/docs/ instrumenting / exporters / # databases [Datenbankserver], messaging systems oder https://prometheus.io/docs/instrumenting/exporters/#apis [APIs].

Blackbox Exporter prüft Endpunkte über HTTP-, HTTPS-, DNS-, TCP- oder ICMP-Protokolle und gibt detaillierte Messdaten zur Anforderung zurück, einschließlich der Frage, ob sie erfolgreich war und wie lange der Empfang gedauert hat eine Antwort.

In diesem Tutorial installieren und konfigurieren Sie Alertmanager und Blackbox Exporter, um die Reaktionsfähigkeit eines Nginx-Webservers zu überwachen. Anschließend konfigurieren Sie Alertmanager so, dass Sie per E-Mail und Slack benachrichtigt werden, wenn Ihr Server nicht antwortet.

Voraussetzungen

Für dieses Tutorial benötigen Sie:

Schritt 1 - Erstellen von Dienstbenutzern

Aus Sicherheitsgründen erstellen wir zwei neue Benutzerkonten, * blackbox_exporter * und * alertmanager *. Wir werden diese Konten im gesamten Lernprogramm verwenden, um Blackbox Exporter und Alertmanager auszuführen und den Besitz der entsprechenden Kerndateien und -verzeichnisse zu isolieren. Dadurch wird sichergestellt, dass Blackbox Exporter und Alert Manager nicht auf Daten zugreifen und diese ändern können, die sie nicht besitzen.

Erstellen Sie diese Benutzer mit dem Befehl "+ useradd " unter Verwendung der Flags " - 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 blackbox_exporter
sudo useradd --no-create-home --shell /bin/false alertmanager

Laden Sie mit den vorhandenen Benutzern den Blackbox Exporter herunter und konfigurieren Sie ihn.

Schritt 2 - Installieren von Blackbox Exporter

Laden Sie zunächst die neueste stabile Version von Blackbox Exporter in Ihr Ausgangsverzeichnis herunter. Die neuesten Binärdateien mit ihren Prüfsummen finden Sie auf der Prometheus Download page.

cd ~
curl -LO https://github.com/prometheus/blackbox_exporter/releases/download/v/blackbox_exporter-.linux-amd64.tar.gz

Überprüfen Sie vor dem Entpacken des Archivs die Prüfsummen der Datei mit dem folgenden Befehl + sha256sum +:

sha256sum blackbox_exporter-.linux-amd64.tar.gz

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  blackbox_exporter-.linux-amd64.tar.gz

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

Wenn Sie sicher sind, dass die Prüfsummen übereinstimmen, entpacken Sie das Archiv:

tar xvf blackbox_exporter-.linux-amd64.tar.gz

Dadurch wird ein Verzeichnis mit dem Namen "+ blackbox_exporter-.linux-amd64 " erstellt, das die Binärdatei " blackbox_exporter +", eine Lizenz und Beispieldateien enthält.

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

sudo mv ./blackbox_exporter-.linux-amd64/blackbox_exporter /usr/local/bin

Setzen Sie den Benutzer- und Gruppenbesitz für die Binärdatei auf den Benutzer * blackbox_exporter *, um sicherzustellen, dass Benutzer ohne Rootberechtigung die Datei nicht ändern oder ersetzen können:

sudo chown  /usr/local/bin/blackbox_exporter

Zuletzt werden das Archiv und das entpackte Verzeichnis entfernt, da sie nicht mehr benötigt werden.

rm -rf ~/blackbox_exporter-.linux-amd64.tar.gz ~/blackbox_exporter-.linux-amd64

Als Nächstes konfigurieren wir Blackbox Exporter so, dass Endpunkte über das HTTP-Protokoll geprüft und dann ausgeführt werden.

Schritt 3 - Konfigurieren und Ausführen von Blackbox Exporter

Erstellen wir eine Konfigurationsdatei, in der festgelegt wird, wie Blackbox Exporter Endpunkte überprüfen soll. Wir erstellen auch eine systemd-Unit-Datei, damit wir den Blackbox-Dienst mit "+ systemd +" verwalten können.

Die Liste der zu prüfenden Endpunkte legen wir im nächsten Schritt in der Prometheus-Konfiguration fest.

Erstellen Sie zunächst das Verzeichnis für die Konfiguration von Blackbox Exporter. Entsprechend den Linux-Konventionen befinden sich Konfigurationsdateien im Verzeichnis "+ / etc +". In diesem Verzeichnis wird also auch die Blackbox Exporter-Konfigurationsdatei gespeichert:

sudo mkdir /etc/blackbox_exporter

Setzen Sie dann den Eigentümer dieses Verzeichnisses auf den Benutzer * blackbox_exporter *, den Sie in Schritt 1 erstellt haben:

sudo chown  /etc/blackbox_exporter

Erstellen Sie im neu erstellten Verzeichnis die Datei + blackbox.yml +, die die Konfigurationseinstellungen von Blackbox Exporter enthält:

sudo nano /etc/blackbox_exporter/blackbox.yml

Wir werden Blackbox Exporter so konfigurieren, dass der standardmäßige "+ http " - Prober zum Prüfen von Endpunkten verwendet wird. _Probers_ definieren, wie Blackbox Exporter prüft, ob ein Endpunkt ausgeführt wird. Der Prüfer " http " überprüft Endpunkte, indem er eine HTTP-Anforderung an den Endpunkt sendet und seinen Antwortcode testet. Sie können auswählen, welche HTTP-Methode für die Prüfung verwendet werden soll und welche Statuscodes als erfolgreiche Antworten akzeptiert werden sollen. Andere beliebte Prüfgeräte sind der " tcp " - Prober zum Prüfen über das TCP-Protokoll, der " icmp " - Prober zum Prüfen über das ICMP-Protokoll und der " dns +" - Prober zum Prüfen von DNS-Einträgen.

In diesem Lernprogramm verwenden wir den "+ http " - Prober, um den Endpunkt zu untersuchen, der auf dem Port " 8080 " über die HTTP " GET " -Methode ausgeführt wird. Standardmäßig geht der Prüfer davon aus, dass gültige Statuscodes im Bereich " 2xx +" gültig sind, sodass wir keine Liste gültiger Statuscodes bereitstellen müssen.

Wir konfigurieren eine Zeitüberschreitung von * 5 * Sekunden. Dies bedeutet, dass Blackbox Exporter 5 Sekunden auf die Antwort wartet, bevor ein Fehler gemeldet wird. Wählen Sie je nach Anwendungstyp einen Wert, der Ihren Anforderungen entspricht.

Fügen Sie der Datei die folgende Konfiguration hinzu:

/etc/blackbox_exporter/blackbox.yml

modules:
 http_2xx:
   prober: http
   timeout:
   http:
     valid_status_codes: []
     method: GET

Weitere Informationen zu den Konfigurationsoptionen finden Sie in der Dokumentation zum Blackbox-Exporter unter https://github.com/prometheus/blackbox_exporter/blob/master/CONFIGURATION.md.

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Setzen Sie vor dem Erstellen der Servicedatei den Benutzer- und Gruppeneigentümer für die Konfigurationsdatei auf den in Schritt 1 erstellten Benutzer * blackbox_exporter *.

sudo chown  /etc/blackbox_exporter/blackbox.yml

Erstellen Sie nun die Servicedatei, damit Sie Blackbox Exporter mit + systemd + verwalten können:

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

Fügen Sie der Datei den folgenden Inhalt hinzu:

/etc/systemd/system/blackbox_exporter.service

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

[Service]
User=blackbox_exporter
Group=blackbox_exporter
Type=simple
ExecStart=/usr/local/bin/blackbox_exporter --config.file /etc/blackbox_exporter/blackbox.yml

[Install]
WantedBy=multi-user.target

Diese Service-Datei weist + systemd + an, Blackbox Exporter als * blackbox_exporter * -Benutzer auszuführen. Die Konfigurationsdatei befindet sich unter + / etc / blackbox_exporter / blackbox.yml +. Die Details der + systemd + - Servicedateien werden in diesem Lernprogramm nicht behandelt. Weitere Informationen finden Sie unter https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and- unit-files # where-are-systemd-unit-files-found Tutorial [Grundlegendes zu Systemd Units und Unit Files].

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Laden Sie abschließend + systemd + neu, um Ihre neu erstellte Servicedatei zu verwenden:

sudo systemctl daemon-reload

Starten Sie nun Blackbox Exporter:

sudo systemctl start blackbox_exporter

Stellen Sie sicher, dass der Dienst erfolgreich gestartet wurde, indem Sie den Status des Dienstes überprüfen:

sudo systemctl status blackbox_exporter

Die Ausgabe enthält Informationen zum Blackbox Exporter-Prozess, einschließlich der Hauptprozess-ID (PID), der Speichernutzung, Protokolle und mehr.

Output● blackbox_exporter.service - Blackbox Exporter
  Loaded: loaded (/etc/systemd/system/blackbox_exporter.service; disabled; vendor preset: enabled)
  Active:  since Thu 2018-04-05 17:48:58 UTC; 5s ago
Main PID: 5869 (blackbox_export)
   Tasks: 4
  Memory: 968.0K
     CPU: 9ms
  CGroup: /system.slice/blackbox_exporter.service
          └─5869 /usr/local/bin/blackbox_exporter --config.file /etc/blackbox_exporter/blackbox.yml

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

Aktivieren Sie zuletzt den Dienst, um sicherzustellen, dass Blackbox Exporter beim Neustart des Servers gestartet wird:

sudo systemctl enable blackbox_exporter

Nachdem Blackbox Exporter vollständig konfiguriert ist und ausgeführt wird, können wir Prometheus so konfigurieren, dass Messdaten zu Prüfanforderungen an unseren Endpunkt erfasst werden. Auf dieser Grundlage können wir mithilfe von Alertmanager Warnmeldungen erstellen und Benachrichtigungen für Warnmeldungen einrichten.

Schritt 4 - Konfigurieren von Prometheus To Scrape Blackbox Exporter

Wie in Schritt 3 erwähnt, befindet sich die Liste der zu prüfenden Endpunkte in der Prometheus-Konfigurationsdatei als Teil der Direktive "+ goals " des Blackbox Exporters. In diesem Schritt konfigurieren Sie Prometheus für die Verwendung von Blackbox Exporter, um den Nginx-Webserver zu scrappen, der auf dem in den vorausgesetzten Lernprogrammen konfigurierten Port " 8080 +" ausgeführt wird.

Öffnen Sie die Prometheus-Konfigurationsdatei in Ihrem Editor:

sudo nano /etc/prometheus/prometheus.yml

Zu diesem Zeitpunkt sollte es wie folgt aussehen:

/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']

Fügen Sie am Ende der Anweisung "+ scrape_configs " den folgenden Eintrag hinzu, der Prometheus anweist, den auf dem lokalen Port " 8080 " ausgeführten Endpunkt mithilfe des in Schritt 3 konfigurierten Blackbox Exporter-Moduls " http_2xx +" zu prüfen.

/etc/prometheus/prometheus.yml

...
 - job_name: 'blackbox'
   metrics_path: /probe
   params:
     module: [http_2xx]
   static_configs:
     - targets:
       - http://localhost:8080
   relabel_configs:
     - source_labels: [__address__]
       target_label: __param_target
     - source_labels: [__param_target]
       target_label: instance
     - target_label: __address__
       replacement: localhost:9115

Standardmäßig wird Blackbox Exporter auf dem Port "+ 9115 " ausgeführt, wobei Metriken auf dem Endpunkt " / probe +" verfügbar sind.

Die "+ scrape_configs " - Konfiguration für Blackbox Exporter unterscheidet sich von der Konfiguration für andere Exporter. Der auffälligste Unterschied ist die Direktive " goals ", in der anstelle der Adresse des Exporteurs die zu prüfenden Endpunkte aufgelistet sind. Die Adresse des Exporteurs wird mit dem entsprechenden Satz von "" - Adressetiketten angegeben.

Eine ausführliche Erläuterung der Relabel-Direktiven finden Sie in der Prometheus documentation.

Ihre Prometheus-Konfigurationsdatei sieht nun folgendermaßen aus:

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']
 - job_name: 'blackbox'
   metrics_path: /probe
   params:
     module: [http_2xx]
   static_configs:
     - targets:
       - http://localhost:8080
   relabel_configs:
     - source_labels: [__address__]
       target_label: __param_target
     - source_labels: [__param_target]
       target_label: instance
     - target_label: __address__
       replacement: localhost:9115

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

Starten Sie Prometheus neu, damit die Änderungen wirksam werden:

sudo systemctl restart prometheus

Stellen Sie sicher, dass es wie erwartet ausgeführt wird, indem Sie den Prometheus-Dienststatus überprüfen:

sudo systemctl status prometheus

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

Zu diesem Zeitpunkt haben Sie Prometheus so konfiguriert, dass Metriken aus Blackbox Exporter entfernt werden. Um Benachrichtigungen von Alertmanager zu erhalten, erstellen Sie im nächsten Schritt einen entsprechenden Satz von Prometheus-Benachrichtigungsregeln.

Schritt 5 - Erstellen von Warnregeln

Prometheus Alerting ist in zwei Teile unterteilt. Der erste Teil wird vom Prometheus-Server verwaltet und umfasst das Generieren von Warnungen basierend auf Warnungsregeln und das Senden dieser an Alertmanager. Der zweite Teil wird vom Alertmanager ausgeführt, der empfangene Alerts verwaltet und je nach Konfiguration an die entsprechenden Empfänger sendet.

In diesem Schritt lernen Sie die grundlegende Syntax von Warnregeln kennen, während Sie eine Warnregel erstellen, um zu überprüfen, ob Ihr Server verfügbar ist.

Erstellen Sie zunächst eine Datei zum Speichern Ihrer Warnungen. Erstellen Sie eine leere Datei mit dem Namen "+ alert.rules.yml " im Verzeichnis " / etc / prometheus +":

sudo touch /etc/prometheus/alert.rules.yml

Da diese Datei Teil der Prometheus-Konfiguration ist, stellen Sie sicher, dass als Eigentümer der Benutzer * prometheus * festgelegt ist, den Sie im Prometheus-Lernprogramm als Voraussetzung erstellt haben:

sudo chown  /etc/prometheus/alert.rules.yml

Wenn die Warnmeldungsdatei vorhanden ist, müssen wir Prometheus darüber informieren, indem wir der Konfigurationsdatei die entsprechende Anweisung hinzufügen.

Öffnen Sie die Prometheus-Konfigurationsdatei in Ihrem Editor:

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie die Direktive "+ rule_files " nach der Direktive " global +" hinzu, damit Prometheus Ihre neu erstellte Alarmdatei lädt, wenn Prometheus gestartet wird.

/etc/prometheus/prometheus.yml

global:
 scrape_interval: 15s




scrape_configs:
...

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Erstellen wir nun eine Regel, die prüft, ob der Endpunkt inaktiv ist.

Um die Warnregel zu erstellen, verwenden Sie die Metrik "+ probe_success +" von Blackbox Exporter, die "1" zurückgibt, wenn der Endpunkt aktiv ist, und "0", wenn dies nicht der Fall ist.

Die Metrik "+ probe_success " enthält zwei Bezeichnungen: die Bezeichnung " instance " mit der Adresse des Endpunkts und die Bezeichnung " job +" mit dem Namen des Exporteurs, der die Metrik gesammelt hat.

Öffnen Sie die Warnungsregeldatei in Ihrem Editor:

sudo nano /etc/prometheus/alert.rules.yml

Wie die Prometheus-Konfigurationsdatei verwendet auch die Warnungsregeldatei das YAML-Format, das Tabulatoren streng verbietet und zwei Leerzeichen zum Einrücken benötigt. Prometheus startet nicht, wenn die Datei falsch formatiert ist.

Zuerst erstellen wir eine Warnregel mit dem Namen "+ EndpointDown ", um zu überprüfen, ob die Metrik " probe_sucess +" gleich * 0 * ist und eine Dauer von * 10 * Sekunden hat. Dadurch wird sichergestellt, dass Prometheus keine Warnungen sendet, wenn der Endpunkt weniger als 10 Sekunden nicht verfügbar ist. Sie können die gewünschte Dauer je nach Anwendungstyp und Anforderungen frei wählen.

Außerdem hängen wir zwei Bezeichnungen für den Schweregrad und eine Zusammenfassung der Warnmeldung an, damit wir Warnmeldungen einfach verwalten und filtern können.

Wenn Sie weitere Details in die Beschriftungen und Anmerkungen der Warnung aufnehmen möchten, können Sie die Beschriftungen `+ {{$ verwenden. }} + `Syntax, um den Wert des Labels abzurufen. Hiermit wird die Adresse des Endpunkts aus der Bezeichnung "+ instance +" der Metrik eingefügt.

Fügen Sie der Warnungsdatei die folgende Regel hinzu:

/etc/prometheus/alert.rules.yml

groups:
- name: alert.rules
 rules:
 - alert: EndpointDown
   expr: probe_success == 0
   for: 10s
   labels:
     severity: "critical"
   annotations:
     summary: "Endpoint {{ $labels.instance }} down"

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Vergewissern Sie sich vor dem Neustart von Prometheus, dass Ihre Warnungsdatei syntaktisch korrekt ist, indem Sie den folgenden Befehl verwenden:

sudo promtool check rules /etc/prometheus/alert.rules.yml

Die Ausgabe enthält die Anzahl der in der Datei gefundenen Regeln sowie Informationen darüber, ob die Regeln syntaktisch korrekt sind oder nicht:

OutputChecking /etc/prometheus/alert.rules.yml
 SUCCESS: 1 rules found

Starten Sie Prometheus zuletzt neu, um die Änderungen zu übernehmen:

sudo systemctl restart prometheus

Überprüfen Sie mit dem Befehl + status +, ob der Dienst ausgeführt wird:

sudo systemctl status prometheus

Wenn der Dienststatus nicht "+ aktiv +" ist, befolgen Sie die Bildschirmprotokolle und führen Sie die vorherigen Schritte erneut aus, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Mit den vorhandenen Warnungsregeln können wir den Warnungsmanager herunterladen und installieren.

Schritt 6 - Alertmanager herunterladen

Blackbox Exporter ist konfiguriert und unsere Warnungsregeln sind vorhanden. Laden Sie den Alertmanager herunter und installieren Sie ihn, um die von Prometheus empfangenen Alerts zu verarbeiten.

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

cd ~
curl -LO https://github.com/prometheus/alertmanager/releases/download/v/alertmanager-.linux-amd64.tar.gz

Überprüfen Sie vor dem Entpacken des Archivs die Prüfsummen der Datei mit dem folgenden Befehl + sha256sum +:

sha256sum alertmanager-.linux-amd64.tar.gz

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  alertmanager-.linux-amd64.tar.gz

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

Nachdem Sie den Download überprüft haben, entpacken Sie das Archiv:

tar xvf alertmanager-.linux-amd64.tar.gz

Dadurch wird ein Verzeichnis mit dem Namen "+ alertmanager-.linux-amd64 " erstellt, das zwei Binärdateien (" alertmanager " und " amtool +"), eine Lizenz und eine Beispielkonfigurationsdatei enthält.

Verschieben Sie die beiden Binärdateien in das Verzeichnis + / usr / local / bin +:

sudo mv alertmanager-.linux-amd64/alertmanager /usr/local/bin
sudo mv alertmanager-.linux-amd64/amtool /usr/local/bin

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

sudo chown  /usr/local/bin/alertmanager
sudo chown  /usr/local/bin/amtool

Entfernen Sie die verbleibenden Dateien aus Ihrem Home-Verzeichnis, da sie nicht mehr benötigt werden:

rm -rf alertmanager-.linux-amd64 alertmanager-.linux-amd64.tar.gz

Nachdem sich die erforderlichen Dateien am richtigen Speicherort befinden, können wir Alertmanager so konfigurieren, dass Benachrichtigungen für Alerts per E-Mail gesendet werden.

Schritt 7 - Konfigurieren des Warnungsmanagers zum Senden von Warnungen per E-Mail

In diesem Schritt erstellen Sie das Verzeichnis und die Dateien zum Speichern der Daten und Konfigurationseinstellungen von Alertmanager und konfigurieren Alertmanager zum Senden von Benachrichtigungen per E-Mail.

Gemäß den Standard-Linux-Konventionen erstellen wir ein Verzeichnis in "+ / etc +", in dem die Konfigurationsdatei von Alertmanager gespeichert wird.

sudo mkdir /etc/alertmanager

Legen Sie den Benutzer- und Gruppenbesitz für das neu erstellte Verzeichnis auf den Benutzer * alertmanager * fest:

sudo chown  /etc/alertmanager

Wir speichern die Konfigurationsdatei in der Datei "+ alertmanager.yml +". Erstellen Sie also diese Datei und öffnen Sie sie in Ihrem Editor:

sudo nano /etc/alertmanager/alertmanager.yml

Wie bei anderen Prometheus-bezogenen Dateien wird auch hier das YAML-Format verwendet. Verwenden Sie daher zum Einrücken zwei Leerzeichen anstelle von Tabulatoren.

Alertmanager wird so konfiguriert, dass E-Mails mit Postfix gesendet werden, das Sie gemäß dem vorausgesetzten Lernprogramm installiert haben. Wir müssen die Adresse des SMTP-Servers mit der Direktive "+ smtp_smarthost " sowie die Adresse, von der wir E-Mails senden möchten, mit der Direktive " smtp_from " angeben. Da Postfix auf demselben Server wie Alertmanager ausgeführt wird, lautet die Serveradresse " localhost: 25 +". Wir verwenden den * alertmanager * -Benutzer zum Senden von E-Mails.

Standardmäßig ist in Postfix kein TLS konfiguriert, daher müssen wir Alertmanager anweisen, Nicht-TLS-SMTP-Server mithilfe der Direktive "+ smtp_require_tls +" zuzulassen.

Setzen Sie die SMTP-Konfiguration unter die Direktive "+ global +", da hier Parameter angegeben werden, die in allen anderen Konfigurationskontexten gültig sind. Dies umfasst in unserem Fall die SMTP-Konfiguration und kann auch API-Token für verschiedene Integrationen umfassen:

Alertmanager Konfigurationsdatei Teil 1 - /etc/alertmanager/alertmanager.yml

global:
 smtp_smarthost: 'localhost:25'
 smtp_from: 'alertmanager@'
 smtp_require_tls: false

An diesem Punkt weiß Alertmanager, wie E-Mails gesendet werden, aber wir müssen definieren, wie eingehende Warnungen mit der Direktive "+ route " behandelt werden. Die Direktive " route +" wird auf jede eingehende Warnung angewendet und definiert Eigenschaften wie beispielsweise, wie Alertmanager Warnungen gruppiert, wer der Standardempfänger ist oder wie lange Alertmanager wartet, bevor eine erste Warnung gesendet wird.

Verwenden Sie zum Gruppieren von Warnungen die Subdirektive "+ group_by ", die ein Inline-Array von Bezeichnungen (wie " [", "] +") akzeptiert. Durch die Gruppierung wird sichergestellt, dass Warnungen mit denselben Labels gruppiert und im selben Stapel gesendet werden.

Jede Direktive "+ route " hat einen einzelnen Empfänger, der mit der Subdirektive " receiver " definiert wird. Wenn Sie mehrere Empfänger hinzufügen möchten, müssen Sie entweder mehrere Empfänger unter derselben Direktive definieren oder mehrere " route " - Direktiven mit der " routes +" -Unterdirektive verschachteln. In diesem Lernprogramm wird der erste Ansatz zum Konfigurieren von Slack-Warnungen erläutert.

In diesem Fall werden wir nur nach dem Blackbox-Label "+ instance " und dem Label " severity +" gruppieren, die wir in Schritt 6 an den Alert angehängt haben, um sicherzustellen, dass wir mehrere Alerts für unseren Endpoint mit kritischem Schweregrad in einer Mail erhalten.

Fügen Sie die folgende Anweisung + group_by + hinzu:

Alertmanager Konfigurationsdatei Teil 2 - /etc/alertmanager/alertmanager.yml

...
route:
 group_by: ['instance', 'alert']

Als Nächstes definieren wir Intervalle, z. B. wie lange der Alertmanager warten soll, bevor erste und neue Alerts gesendet werden.

Mit der Sub-Direktive "+ group_wait +" definieren wir, wie lange der Alertmanager warten soll, bevor der erste Alert gesendet wird. Während dieses Zeitraums wartet der Alertmanager darauf, dass Prometheus andere Alerts sendet, falls vorhanden, damit sie im selben Stapel gesendet werden können. Da wir nur eine Warnung haben, wählen wir einen beliebigen Wert von 30 Sekunden.

Als nächstes definieren wir mit dem Intervall "+ group_interval +", wie lange der Alertmanager warten soll, bevor der nächste Alert-Stapel gesendet wird, wenn neue Alerts in derselben Gruppe vorhanden sind. Sie können einen beliebigen Wert auswählen, der von Ihren Anforderungen abhängt. Dieser Wert wird jedoch alle 5 Minuten festgelegt.

Das letzte konfigurierte Intervall ist das "+ repeat_interval +", das definiert, wie lange der Alertmanager wartet, bevor er Benachrichtigungen sendet, wenn die Alerts noch nicht behoben sind. Sie können einen beliebigen Wert auswählen, der Ihren Anforderungen entspricht. Wir verwenden jedoch den beliebigen Wert von 3 Stunden.

Zuletzt definieren Sie mit der Sub-Direktive "+ receiver ", wer Benachrichtigungen für die Alerts erhalten soll. Wir verwenden einen Empfänger mit dem Namen " team-1 +", den wir später definieren werden.

Ändern Sie die Route-Direktive so, dass sie so aussieht:

Alertmanager Konfigurationsdatei Teil 2 - /etc/alertmanager/alertmanager.yml

route:
 group_by: ['instance', 'severity']
 group_wait: 30s
 group_interval: 5m
 repeat_interval: 3h
 receiver:

Wenn Sie nur Benachrichtigungen über bestimmte Warnungen abgleichen und senden möchten, können Sie die Subdirektiven "+ match " und " match_re " verwenden, um Warnungen nach dem Wert ihres Labels herauszufiltern. Die Sub-Direktive ` match ` repräsentiert die Gleichheitsübereinstimmung, wobei die Sub-Direktive ` match_re +` die Übereinstimmung über reguläre Ausdrücke repräsentiert.

Jetzt konfigurieren wir den Empfänger "+ team-1 ", sodass Sie Benachrichtigungen für Benachrichtigungen erhalten können. Unter der Anweisung " receivers +" können Sie Empfänger definieren, die den Namen und die entsprechende Unteranweisung für die Konfiguration enthalten. Die Liste der verfügbaren Empfänger und Anweisungen zu deren Konfiguration finden Sie unter Alertmanager’s documentation.

Um den E-Mail-Empfänger "+ team-1 " zu konfigurieren, verwenden wir die Sub-Direktive " email_configs " unter der Direktive " receivers +":

Alertmanager Konfigurationsdatei Teil 3 - /etc/alertmanager/alertmanager.yml

receivers:
 - name: ''
   email_configs:
     - to: ''

Zu diesem Zeitpunkt haben Sie Alertmanager so konfiguriert, dass Benachrichtigungen für Alerts an Ihre E-Mail-Adresse gesendet werden. Ihre Konfigurationsdatei sollte folgendermaßen aussehen:

Alertmanager-Konfigurationsdatei - /etc/alertmanager/alertmanager.yml

global:
 smtp_smarthost: 'localhost:25'
 smtp_from: 'alertmanager@'
 smtp_require_tls: false

route:
 group_by: ['instance', 'severity']
 group_wait: 30s
 group_interval: 5m
 repeat_interval: 3h
 receiver:

receivers:
 - name: ''
   email_configs:
     - to: ''

Im nächsten Schritt konfigurieren wir den Alertmanager so, dass Alerts an Ihren Slack-Kanal gesendet werden. Wenn Sie Slack nicht konfigurieren möchten, können Sie direkt mit Schritt 10 fortfahren, in dem wir die Servicedatei erstellen und Prometheus für die Zusammenarbeit mit Alertmanager konfigurieren.

Schritt 8 - Konfigurieren von Alertmanager zum Senden von Alerts über Slack

Stellen Sie vor dem Fortfahren mit diesem Schritt sicher, dass Sie ein Slack-Konto erstellt haben und über einen Slack-Arbeitsbereich verfügen.

Um Benachrichtigungen an Slack zu senden, erstellen Sie zunächst einen Incoming Webhook.

Rufen Sie mit Ihrem Browser die Erstellungsseite für eingehende Webhooks auf, die unter "+ https: //. Slack.com / services / new / incoming-webhook / +" verfügbar ist. Sie erhalten eine Seite mit Details zu eingehenden Webhooks sowie ein Dropdown-Menü, in dem Sie den Kanal auswählen können, an den Sie Benachrichtigungen senden möchten.

image: https: //assets.digitalocean.com/articles/prometheus_blackbox_alertmanager_1604/uBKKA4O.png [Slack Incoming Webhook]

Klicken Sie nach Auswahl des Kanals auf die Schaltfläche * Eingehende WebHooks-Integration hinzufügen *.

Es wird eine neue Seite angezeigt, die bestätigt, dass der Webhook erfolgreich erstellt wurde. Kopieren Sie die auf dieser Seite angezeigte * Webhook-URL *, damit Sie die Slack-Benachrichtigungen von Alertmanager konfigurieren können.

Öffnen Sie die Alertmanager-Konfigurationsdatei in Ihrem Editor, um Slack-Benachrichtigungen zu konfigurieren:

sudo nano /etc/alertmanager/alertmanager.yml

Fügen Sie zuerst die Sub-Direktive "+ slack_api_url " zum Teil " global +" Ihrer Konfiguration hinzu, und verwenden Sie dabei die URL, die Sie beim Erstellen des Slack Incoming Webhooks erhalten haben.

Alertmanager Konfigurationsdatei Teil 1 - /etc/alertmanager/alertmanager.yml

global:
 smtp_smarthost: 'localhost:25'
 smtp_from: 'alertmanager@'
 smtp_require_tls: false

 slack_api_url: ''

Es gibt zwei Möglichkeiten, Benachrichtigungen an mehrere Empfänger zu senden:

  1. Fügen Sie mehrere Empfängerkonfigurationen unter demselben Eintrag ein. Dies ist die am wenigsten fehleranfällige Lösung und die einfachste Methode.

  2. Erstellen Sie mehrere Empfängereinträge und verschachteln Sie mehrere "+ route +" - Anweisungen.

Der zweite Ansatz wird in diesem Lernprogramm nicht behandelt. Wenn Sie jedoch interessiert sind, lesen Sie den Abschnitt Route configuration in der Alertmanager-Dokumentation.

Fügen Sie im Empfänger + team-1 + eine neue Unteranweisung mit dem Namen https://prometheus.io/docs/alerting/configuration/#slack_config [+ slack_configs +] hinzu und geben Sie den Namen des Kanals an, der empfangen werden soll Warnungen. In diesem Fall verwenden wir den '+ general'-Kanal:

Alertmanager Konfigurationsdatei Teil 2 - /etc/alertmanager/alertmanager.yml

receivers:
 - name: ''
   email_configs:
     - to: ''

     general<^>'

Ihre fertige Konfigurationsdatei sieht folgendermaßen aus:

Alertmanager-Konfigurationsdatei - /etc/alertmanager/alertmanager.yml

global:
 smtp_smarthost: 'localhost:25'
 smtp_from: 'alertmanager@'
 smtp_require_tls: false

 slack_api_url: ''

route:
 group_by: ['instance', 'severity']
 group_wait: 30s
 group_interval: 5m
 repeat_interval: 3h
 receiver:

receivers:
 - name: ''
   email_configs:
     - to: ''
   slack_configs:
     - channel: ''

Speichern Sie die Datei und beenden Sie Ihren Editor.

Jetzt können wir Alertmanager zum ersten Mal ausführen.

Schritt 9 - Ausführen von Alertmanager

Lassen Sie uns Alertmanager in Betrieb nehmen. Wir erstellen zunächst eine systemd-Unit-Datei für Alertmanager, um den Service mit "+ systemd +" zu verwalten. Dann aktualisieren wir Prometheus, um den Alertmanager zu verwenden.

Erstellen Sie eine neue Unit-Datei + systemd + und öffnen Sie sie in Ihrem Texteditor:

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

Fügen Sie der Datei Folgendes hinzu, um systemd so zu konfigurieren, dass Alertmanager als * alertmanager * -Benutzer ausgeführt wird. Verwenden Sie dazu die Konfigurationsdatei unter + / etc / alertmanager / alertmanager.yml + und die URL des Alertmanagers, die für die Verwendung der IP-Adresse Ihres Servers konfiguriert ist:

/etc/systemd/system/alertmanager.service

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

[Service]
User=alertmanager
Group=alertmanager
Type=simple
WorkingDirectory=/etc/alertmanager/
ExecStart=/usr/local/bin/alertmanager --config.file=/etc/alertmanager/alertmanager.yml --web.external-url http://:9093

[Install]
WantedBy=multi-user.target

Dadurch wird Alertmanager als Benutzer * alertmanager * ausgeführt. Außerdem wird Alertmanager angewiesen, die URL "+ http: //: 9093 " für die Webbenutzeroberfläche zu verwenden, wobei " 9093 " der Standardport von Alertmanager ist. Stellen Sie sicher, dass Sie das Protokoll (" http: // +") angeben, da sonst Probleme auftreten.

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

Als Nächstes müssen wir Prometheus über Alertmanager informieren, indem wir der Prometheus-Konfigurationsdatei das entsprechende Alertmanager-Diensterkennungsverzeichnis hinzufügen. Standardmäßig wird Alertmanager auf Port "+ 9093 " ausgeführt. Da es sich auf demselben Server wie Prometheus befindet, verwenden wir die Adresse " localhost: 9093 +".

Öffnen Sie die Prometheus-Konfigurationsdatei:

sudo nano /etc/prometheus/prometheus.yml

Fügen Sie nach der Direktive "+ rule_files " die folgende Direktive " alerting +" hinzu:

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

...
rule_files:
 - alert.rules.yml






...

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

Um den URLs der empfangenen Warnungen folgen zu können, müssen Sie Prometheus beim Starten von Prometheus die IP-Adresse oder den Domänennamen Ihres Servers mit dem Flag "+ -web.external-url +" mitteilen.

Öffnen Sie die Unit-Datei "+ systemd +" für Prometheus:

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

Ersetzen Sie die vorhandene Zeile + 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 \
   --web.external-url http://

Ihre neue Prometheus-Unit-Datei sieht folgendermaßen aus:

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 \
   --web.external-url http://

[Install]
WantedBy=multi-user.target

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

Laden Sie + systemd + neu und starten Sie Prometheus neu, um die Änderungen zu übernehmen:

sudo systemctl daemon-reload
sudo systemctl restart prometheus

Stellen Sie sicher, dass Prometheus ordnungsgemäß funktioniert, indem Sie den Status des Dienstes überprüfen:

sudo systemctl status prometheus

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

Starten Sie Alertmanager zum ersten Mal:

sudo systemctl start alertmanager

Überprüfen Sie den Status des Dienstes, um sicherzustellen, dass der Alertmanager wie vorgesehen funktioniert:

sudo systemctl status alertmanager

Wenn der Status des Dienstes nicht "++" lautet, befolgen Sie die Bildschirmmeldungen und wiederholen Sie die vorherigen Schritte, um das Problem zu beheben, bevor Sie mit dem Lernprogramm fortfahren.

Aktivieren Sie zuletzt den Dienst, um sicherzustellen, dass Alertmanager beim Systemstart gestartet wird:

sudo systemctl enable alertmanager

Um auf die Web-Benutzeroberfläche von Alertmanager zuzugreifen, lassen Sie zu, dass der Datenverkehr "+ 9093 +" durch Ihre Firewall portiert:

sudo ufw allow 9093/tcp

Alertmanager ist jetzt so konfiguriert, dass Benachrichtigungen für Alerts per E-Mail und Slack gesendet werden. Stellen wir sicher, dass es funktioniert.

Schritt 10 - Alertmanager testen

Vergewissern Sie sich, dass Alertmanger ordnungsgemäß funktioniert, und senden Sie E-Mails und Slack-Benachrichtigungen. Wir deaktivieren den Endpunkt, indem wir den Nginx-Serverblock entfernen, den Sie in den vorausgesetzten Lernprogrammen erstellt haben:

sudo rm /etc/nginx/sites-enabled/

Laden Sie Nginx neu, um die Änderungen zu übernehmen:

sudo systemctl reload nginx

Wenn Sie bestätigen möchten, dass es tatsächlich deaktiviert ist, können Sie Ihren Webbrowser auf die Adresse Ihres Servers verweisen. Es sollte eine Meldung angezeigt werden, dass die Site nicht mehr erreichbar ist. Wenn dies nicht der Fall ist, wiederholen Sie die vorherigen Schritte und vergewissern Sie sich, dass Sie den richtigen Serverblock gelöscht und Nginx neu geladen haben.

Abhängig vom Intervall "+ group_wait +", das in unserem Fall * 30 Sekunden * beträgt, sollten Sie nach 30 Sekunden E-Mail- und Slack-Benachrichtigungen erhalten.

Wenn dies nicht der Fall ist, überprüfen Sie den Status des Dienstes mit den folgenden "+ status +" - Befehlen und folgen Sie den Protokollen auf dem Bildschirm, um die Ursache des Problems zu ermitteln:

sudo systemctl status alertmanager
sudo systemctl status prometheus

Sie können den Alarmstatus auch über die Prometheus-Web-Benutzeroberfläche überprüfen, indem Sie Ihren Webbrowser auf "+ http: /// alerts +" zeigen. Sie werden aufgefordert, den Benutzernamen und das Passwort einzugeben, die Sie im Prometheus-Tutorial ausgewählt haben. Wenn Sie auf den Alertnamen klicken, werden der Status, die Alertregel und die zugehörigen Bezeichnungen angezeigt:

Sobald Sie überprüft haben, dass Alertmanager funktioniert, aktivieren Sie den Endpunkt, indem Sie die symbolische Verknüpfung vom Verzeichnis "+ sites-available " zum Verzeichnis " sites-enabled +" neu erstellen:

sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled

Laden Sie Nginx erneut, um die Änderungen zu übernehmen:

sudo systemctl reload nginx

Im nächsten Schritt wird die Verwendung der Befehlszeilenschnittstelle von Alertmanager erläutert.

Schritt 11 - Verwalten von Warnungen mithilfe der CLI

Alertmanager enthält das Befehlszeilentool "+ amtool +", mit dem Sie Alerts überwachen, verwalten und stummschalten können.

Für das Tool "+ amtool " müssen Sie die URL von Alertmanager bei jeder Ausführung eines Befehls mit dem Flag " - alertmanager.url " angeben. Um " amtool +" ohne Angabe der URL zu verwenden, erstellen wir zunächst eine Konfigurationsdatei.

Die Standardspeicherorte für die Konfigurationsdatei sind "+ $ HOME / .config / amtool / config.yml ", wodurch die Konfiguration nur für Ihren aktuellen Benutzer verfügbar wird, und " / etc / amtool / config.yml +", wodurch die Konfiguration vorgenommen wird verfügbar für jeden Benutzer auf dem Server.

Sie können frei wählen, was Ihren Anforderungen entspricht. Für dieses Lernprogramm verwenden wir jedoch die Datei "+ $ HOME / .config / amtool / config.yml +".

Erstellen Sie zunächst das Verzeichnis. Das + -p + Flag weist + mkdir + an, alle erforderlichen übergeordneten Verzeichnisse auf dem Weg zu erstellen:

mkdir -p $HOME/.config/amtool

Erstellen Sie die Datei + config.yml + und öffnen Sie sie in Ihrem Texteditor:

nano $HOME/.config/amtool/config.yml

Fügen Sie die folgende Zeile hinzu, um "+ amtool " anzuweisen, Alertmanager mit der URL " http: // localhost: 9093 +" zu verwenden:

~ / .config / amtool / config.yml

alertmanager.url: http://localhost:9093

Speichern Sie die Datei und beenden Sie Ihren Texteditor.

Nun schauen wir uns an, was wir mit dem Kommandozeilen-Tool "+ amtool +" machen können.

Mit dem Befehl "+ amtool alert query" können Sie alle Warnungen auflisten, die an Alertmanager gesendet wurden:

amtool alert query

In der Ausgabe werden der Name des Alarms, der Zeitpunkt des ersten Auftretens des Alarms und die Zusammenfassung des Alarms angezeigt, die Sie bei der Konfiguration angegeben haben:

OutputAlertname     Starts At                Summary
EndpointDown  2018-04-03 08:48:47 UTC  Endpoint http://localhost:8080 down

Sie können Warnungen auch nach ihren Bezeichnungen filtern, indem Sie den entsprechenden Matcher verwenden. Ein Matcher enthält den Labelnamen, die entsprechende Operation, die für eine vollständige Übereinstimmung "+ = " und für eine teilweise Übereinstimmung " = ~ +" sein kann, und den Wert des Labels.

Wenn Sie alle Warnungen auflisten möchten, denen eine Kennzeichnung für den kritischen Schweregrad angehängt ist, verwenden Sie den Matcher + severity = critical + im Befehl + alert query +:

amtool alert query

Wie zuvor enthält die Ausgabe den Namen des Alarms, den Zeitpunkt des ersten Auftretens des Alarms und die Zusammenfassung des Alarms.

OutputAlertname     Starts At                Summary
EndpointDown  2018-04-03 08:48:47 UTC  Endpoint http://localhost:8080 down

Sie können reguläre Ausdrücke verwenden, um Beschriftungen mit dem Operator "+ = ~ " abzugleichen. Um beispielsweise alle Warnungen für ` http: // localhost ` Endpunkte unabhängig vom Port aufzulisten, können Sie den Matcher ` instance = ~ http: // localhost. * +` Verwenden:

amtool alert query

Da Sie nur einen Alert und einen Endpunkt haben, ist die Ausgabe dieselbe wie im vorherigen Beispiel.

Verwenden Sie zum Anzeigen der Alertmanager-Konfiguration den Befehl + amtool config +:

amtool config

Die Ausgabe enthält den Inhalt der Datei + / etc / alertmanager / alertmanager.yml +.

Schauen wir uns nun an, wie Sie Warnungen mit "+ amtool +" stumm schalten.

Durch das Stummschalten von Warnungen können Sie Warnungen basierend auf dem Matcher für eine bestimmte Zeit stumm schalten. Während dieses Zeitraums erhalten Sie keine E-Mail- oder Slack-Benachrichtigung für die stummgeschaltete Benachrichtigung.

Der Befehl + amtool silence add + nimmt den Matcher als Argument und erstellt einen neuen silence basierend auf dem Matcher.

Um das Ablaufen einer Warnung zu definieren, verwenden Sie das Flag "+ - Läuft ab " mit der gewünschten Dauer der Stille, z : //www.ietf.org/rfc/rfc3339.txt [RFC3339-Format]. Beispielsweise steht das Format " 2018-10-04T07: 50: 00 + 00: 00 +" am 4. Oktober 2018 für 07.50 Uhr.

Wenn das "" - oder das "" - "Expires-On" -Flag nicht angegeben wird, werden die Warnungen für * 1 Stunde * stummgeschaltet.

Verwenden Sie den folgenden Befehl, um alle Warnungen für die Instanz "+ http: // localhost: 8080 +" für * 3 Stunden * stummzuschalten:

amtool silence add instance= --expires

Die Ausgabe enthält eine Identifikationsnummer für die Stille. Notieren Sie sich diese also, falls Sie die Stille entfernen möchten:

Output

Wenn Sie beim Erstellen der Stille zusätzliche Informationen wie Autor und Kommentare angeben möchten, verwenden Sie die Flags "+ - Autor " und " - Kommentar +":

amtool silence add severity=critical --expires 3h

Wie zuvor enthält die Ausgabe die ID der Stille:

Output

Mit dem Befehl "+ amtool silence query +" wird die Liste aller nicht abgelaufenen Stille angezeigt:

amtool silence query

Die Ausgabe enthält die ID der Stille, die Liste der Übereinstimmungen, den Ablaufzeitstempel, den Autor und einen Kommentar:

OutputID                                    Matchers                        Ends At                  Created By       Comment
12b7b9e1-f48a-4ceb-bd85-65ac882ceed1  severity=critical               2018-04-04 08:02:58 UTC  Sammy The Shark  Investigating in the progress
4e89b15b-0814-41d3-8b74-16c513611732  instance=http://localhost:8080  2018-04-04 08:14:21 UTC  sammy

Ähnlich wie beim Befehl "+ alert query +" können Sie Label-Matcher verwenden, um die Ausgabe nach Labels zu filtern, die bei der Erstellung angehängt wurden:

amtool silence query instance=http://localhost:8080

Wie zuvor enthält die Ausgabe die ID-Nummer und die Details der Warnung:

OutputID                                    Matchers                        Ends At                  Created By  Comment
4e89b15b-0814-41d3-8b74-16c513611732  instance=http://localhost:8080  2018-04-04 08:14:21 UTC  sammy

Um eine Stille zu verfallen, verwenden Sie abschließend das + amtool Stille verfallen + mit der ID der Stille, die verfallen soll:

amtool silence expire
amtool silence expire

Keine Ausgabe steht für eine erfolgreiche Befehlsausführung. Wenn Sie einen Fehler sehen, stellen Sie sicher, dass Sie die korrekte ID der Stille angegeben haben.

Fazit

In diesem Tutorial haben Sie Blackbox Exporter und Alertmanager für die Zusammenarbeit mit Prometheus konfiguriert, damit Sie Benachrichtigungen per E-Mail und Slack erhalten können. Sie haben auch die Befehlszeilenschnittstelle von Alertmanager, "+ amtool +", zum Verwalten und Stummschalten von Warnungen verwendet.

Wenn Sie mehr über andere Alertmanager-Integrationen erfahren möchten, lesen Sie den Abschnitt [Configuration] https://prometheus.io/docs/alerting/configuration/ in der Dokumentation zu Alertmanager.

Sie können auch nachsehen, wie Sie Prometheus-Warnungen in andere Dienste integrieren, z. B. Grafana.

Related