APM avec Elasticsearch 8.x – Partie 2 : Alertes dans Kibana

Publié le 31/10/2022

« Voir toutes les conférences Contactez-nous
APM with Elasticsearch 8.x - Part 2: Alerts in Kibana

Introduction

Code sur Github: Elasticsearch et surveillance des performances des applications

Nous allons installer Surveillance des performances des applications avec Elasticsearch et Kibana. Si vous n'avez pas encore configuré APM, Elasticsearch et Kibana,suivez ces instructions.

Cette vidéo suppose que vous utilisez Certificats signés publiquement. Si vous utilisez Certificats auto-signés, va ici À déterminer.

Exigences

Mesures

Étape 1 – Configuration du serveur Kibana pour activer les alertes [05:30]

Suivez les étapes ci-dessous pour pouvoir configurer des règles dans Kibana

cd /usr/share/kibana/bin/

et exécutez le code ci-dessous.

./kibana-keystore add xpack.encryptedSavedObjects.encryptionKey

et lorsque vous êtes invité à saisir une valeur, collez-la dans une chaîne d'au moins 32 caractères. Redémarrez ensuite Kibana.

systemctl restart kibana.service

Étape 2 - Démontrer la règle d'alerte du seuil de comptage des erreurs [08:45]

Connectez-vous à Kibana et accédez à Observabilité > Alertes > Règles, et cliquez sur créer une règle comme indiqué dans l'image ci-dessous :

alt text Create Rule

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

puis cliquez sur Seuil de comptage d'erreurs.

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

Appuyez ensuite sur sauvegarder.

Actualisez ensuite rapidement l'application Go ou NodeJS plusieurs fois. Une fois cette opération effectuée, revenez à Observabilité > Alertes pour voir l'alerte s'afficher comme indiqué dans l'image ci-dessous :

alt text Alerte de seuil de comptage d'erreurs

Vous pouvez répéter l'actualisation de la deuxième application

Étape 3 - Démontrer la règle d'alerte du seuil de taux de transaction échouée [18:56]

Aller à Observabilité > Alertes > Règles, et cliquez sur créer une règle comme indiqué dans l'image ci-dessous :

alt text Create Rule

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

puis cliquez sur le seuil de taux de transaction échouée.

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

Appuyez ensuite sur sauvegarder.

ouvrez maintenant le fichier index.js de l'application nodejs

vi node/apm/index.js

collez ceci dans le fichier

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

puis redémarrez le service nodejs

systemctl stop nodeapm.service systemctl stop nodeapm.service

Envoyez maintenant un ping au point de terminaison de manière cohérente pendant environ 10 minutes, puis revenez en arrière pour vérifier les alertes et nous aurons quelque chose d'aussi similaire à l'image ci-dessous

alt text Alerte de taux de transaction échouée

Étape 4 - Démontrer la règle d'alerte du seuil de latence [28:46]

Aller à Observabilité > Alertes > Règles, et cliquez sur créer une règle comme indiqué dans l'image ci-dessous :

alt text Create Rule

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

puis cliquez sur Seuil de latence.

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

Appuyez ensuite sur sauvegarder.

Vous devriez voir quelque chose de similaire à l'image ci-dessous lorsque vous appuyez sur Actualiser :

alt text Les trois alertes

ouvrez maintenant le fichier index.js de l'application nodejs

vi node/apm/index.js

collez ceci dans le fichier

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

puis redémarrez le service nodejs

systemctl restart nodeapm.service

Envoyez maintenant un ping au point de terminaison de manière cohérente pendant environ 10 minutes, puis revenez en arrière pour vérifier les alertes et nous aurons quelque chose d'aussi similaire à l'image ci-dessous

alt text Alerte de seuil de latence