
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
- Eine laufende Instanz von Elasticsearch und Kibana.
- Eine neue Instanz von Ubuntu 20.04 als Fleet Server
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:
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:
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:
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.
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:
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:
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.
Latenzschwellenwert-Alarm