APM mit Elasticsearch 8.x – Teil 2: Alerts in Kibana

Veröffentlicht am 31.10.2022

« Alle Vorträge ansehen Kontaktieren Sie uns
APM with Elasticsearch 8.x - Part 2: Alerts in Kibana

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.

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

Anforderungen

Schritte

Schritt 1 - Konfigurieren des Kibana-Servers zum Aktivieren von Warnungen [05:30]

Befolgen Sie die folgenden Schritte, um Regeln in Kibana einzurichten

cd /usr/share/kibana/bin/

und führen Sie den folgenden Code aus.

./kibana-keystore add xpack.encryptedSavedObjects.encryptionKey

Wenn Sie zur Eingabe eines Werts aufgefordert werden, fügen Sie eine beliebige Zeichenfolge mit mindestens 32 Zeichen ein. Starten Sie anschließend Kibana neu.

systemctl restart kibana.service

Schritt 2 - Warnregel „Fehleranzahlschwelle“ demonstrieren [08:45]

Melden Sie sich bei Kibana an und gehen Sie zu Beobachtbarkeit > Warnungen > Regeln, und klicken Sie auf „Regel erstellen“, wie im Bild unten gezeigt:

alt text Create Rule

Name: Error Rule Threshold Check every: 1 minute Notify: every time alert is active

Klicken Sie dann auf „Schwellenwert für die Fehleranzahl“.

SERVICE: ALL ENVIRONMENT: ALL IS ABOVE: 2 errors FOR THE LAST: 1 minute

Drücken Sie dann speichern.

Aktualisieren Sie nun die Go-App oder die Node.js-App mehrmals schnell hintereinander. Kehren Sie anschließend zu Beobachtbarkeit > Warnungen um die Warnung wie im Bild unten angezeigt anzuzeigen:

alt text Schwellenwertwarnung für Fehleranzahl

Sie können die Aktualisierung der zweiten App wiederholen

Schritt 3 - Warnregel für fehlgeschlagene Transaktionsratenschwellenwerte demonstrieren [18:56]

Gehe zu Beobachtbarkeit > Warnungen > Regeln, und klicken Sie auf „Regel erstellen“, wie im Bild unten gezeigt:

alt text Create Rule

Name: FailedTx Rate Check every: 5 minute Notify: only on status change

Klicken Sie dann auf „Schwellenwert für fehlgeschlagene Transaktionsrate“.

SERVICE: ALL ENVIRONMENT: ALL IS ABOVE: 2% FOR THE LAST: 10 minute

Drücken Sie dann speichern.

Öffnen Sie nun die Datei index.js der NodeJS-App

vi node/apm/index.js

füge dies in die Datei ein

app.get('/fail', async (req, res) => ( const statnum = 500 res.status(statnum).send('Fail ' + statnum) ))

Starten Sie dann den NodeJS-Dienst neu

systemctl stop nodeapm.service systemctl stop nodeapm.service

Pingen Sie nun den Endpunkt etwa 10 Minuten lang kontinuierlich an und überprüfen Sie dann die Warnungen. Wir erhalten dann ein Ergebnis, das dem unten gezeigten Bild ähnelt.

alt text Alarm bei fehlgeschlagener Transaktionsrate

Schritt 4 - Demonstrieren der Warnregel für die Latenzschwelle [28:46]

Gehe zu Beobachtbarkeit > Warnungen > Regeln, und klicken Sie auf „Regel erstellen“, wie im Bild unten gezeigt:

alt text Create Rule

Name: Latency Threshold Check every: 1 minute Notify: only on status change

Klicken Sie dann auf Latenzschwelle.

SERVICE: node-app-1 TYPE: request ENVIRONMENT: ALL WHEN: avg IS ABOVE: 100ms FOR THE LAST: 5 minutes

Drücken Sie dann speichern.

Wenn Sie auf „Aktualisieren“ klicken, sollte etwas Ähnliches wie das folgende Bild angezeigt werden:

alt text Alle drei Alarme

Öffnen Sie nun die Datei index.js der NodeJS-App

vi node/apm/index.js

füge dies in die Datei ein

app.get('/latency', async (req, res) => ( const t = 10000 await new Promise(resolve => setTimeout(resolve, t)) res.send('Wait ' + t) ))

Starten Sie dann den NodeJS-Dienst neu

systemctl restart nodeapm.service

Pingen Sie nun den Endpunkt etwa 10 Minuten lang kontinuierlich an und überprüfen Sie dann die Warnungen. Wir erhalten dann ein Ergebnis, das dem unten gezeigten Bild ähnelt.

alt text Latenzschwellenwert-Alarm