APM mit Elasticsearch 8.x – Teil 3: E-Mail-Benachrichtigungen über den Server Log Connector

Veröffentlicht am 10.11.2022

« Alle Vorträge ansehen Kontaktieren Sie uns
APM with Elasticsearch 8.x - Part 3: Email Alerts via Server Log Connector

Einführung

Code auf Github: Elasticsearch und Anwendungsleistungsüberwachung

Wir werden einrichten Überwachung der Anwendungsleistung mit Elasticsearch und Kibana. Wenn Sie APM, Elasticsearch und Kibana noch nicht eingerichtet haben, dann Befolgen Sie diese Anweisungen für Teil 1 Und Dies für Teil 2.

Dieses Video setzt voraus, dass Sie Öffentlich signierte Zertifikate. Wenn Sie Selbstsignierte Zertifikate, hier klicken Wird noch bekannt gegeben.

Anforderungen

Schritte

Schritt 1 - Verwenden Sie das Serverprotokoll, um Warnungen in die Datei kibana.log zu schreiben [02:12]

Melden Sie sich bei Kibana an und gehen Sie zu Beobachtbarkeit > Warnungen > Managerregeln, und klicken Sie auf das Stiftsymbol in der Warnung zur Fehleranzahl, die wir im vorherigen Video eingerichtet haben.

alt text Regel bearbeiten

Scrollen Sie nach unten und klicken Sie auf Einen Connector hinzufügen, es sollte etwas Ähnliches wie unten angezeigt werden

alt text Add a Connector

und geben Sie ihm einen Namen wie Anschluss 2, und drücken Sie dann speichern. Klicken Sie nun unten rechts auf „Speichern“, um die Verbindungsdetails zu speichern.

Um die veröffentlichten Protokolle anzuzeigen, gehen Sie zu Ihrem Kibana-Server-Terminal und führen Sie Folgendes aus.

cd /var/log/kibana vi kibana.log

Gehen Sie jetzt zu Kibana, um einen Alarm für den Schwellenwert der Latenzrate einzurichten. Wählen Sie Anschluss 2 für die Connector-Option und wählen Sie die restlichen Details wie im Bild unten gezeigt

alt text Latenzrate Verbindung

Machen Sie dasselbe für die Benachrichtigung bei fehlgeschlagenen Transaktionen.

alt text Warnung bei fehlgeschlagenen Transaktionen

Schritt 2 - Verwenden Sie Logstash, um Warnungen aus der Datei kibana.log aufzunehmen [09:20]

Installieren Sie Logstash mit dem folgenden Befehl auf Ihrem Terminal

sudo apt-get update && sudo apt-get install logstash

Um zu bestätigen, dass Logstash erfolgreich installiert wurde, führen Sie den folgenden Befehl aus.

cd /usr/share/logstash/bin/ ls

Sie sollten ungefähr Folgendes erhalten:

alt text Logstash-Binärdateien

Verwenden Sie den folgenden Befehl, um Logstash auszuführen.

cd ~

/usr/share/logstash/bin/logstash -e 'input { file { type => "json" codec => "json" path => "/var/log/kibana/kibana.log" start_position => beginning } } output { stdout {} }'

Schritt 3 - Verwenden Sie Logstash, um Warnungen an Mailtrap oder einen SMTP-Server zu veröffentlichen [14:50]

Erstellen Sie wie im Video gezeigt ein Mailtrap-Konto. Sie verwenden die URL des SMTP-Servers als E-Mail-Adresse. Kehren Sie nun zum Terminal zurück und führen Sie den folgenden Befehl aus.

/usr/share/logstash/bin/logstash -e 'input { file { type => "json" codec => "json" path => "/var/log/kibana/kibana.log" start_position => beginning } } output { email { to => "<user@example.com>" from => "<user@example.com>" subject => "Alert: %(message)" body => "%(message)" authentication => "plain" address => "smtp.mailtrap.io" domain => "smtp.mailtrap.io" port => 2525 username => "<Your Username>" password => "<Your Password>" } }'

Schritt 4 - Bedingte Ausgabe (zB nur E-Mail [log][level] == FEHLER) [20:20]

Wenn Sie nur den Protokollebenenfehler möchten, verwenden Sie den folgenden Befehl.

/usr/share/logstash/bin/logstash -e 'input { file { type => "json" codec => "json" path => "/var/log/kibana/kibana.log" start_position => beginning } } output { if [log][level] == "ERROR" email { to => "<user@example.com>" from => "<user@example.com>" subject => "Alert: %{message}" body => "%{message}" authentication => "plain" address => "smtp.mailtrap.io" domain => "smtp.mailtrap.io" port => 2525 username => "<Your Username>" password => "<Your Password>" } }'

Schritt 5 - Verwenden Sie den Grok-Filter, um Nachrichten zu formatieren [22:05]

Um den Grok-Filter zu verwenden, gehen Sie zurück zum Terminal und führen Sie den folgenden Befehl aus.

/usr/share/logstash/bin/logstash -e 'input { file { type => "json" codec => "json" path => "/var/log/kibana/kibana.log" start_position => beginning } } filter { grok { match => { "message" => "Server log: %(DATA:apmreason):;;- Service name: %(DATA:apmservice);- } } } output { email { to => "<user@example.com>" from => "<user@example.com>" subject => "Alert: %{apmservice} %{apmreason}" body => "%{message}" authentication => "plain" address => "smtp.mailtrap.io" domain => "smtp.mailtrap.io" port => 2525 username => "<Your Username>" password => "<Your Password>" } }'