
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
- Une instance en cours d'exécution d'Elasticsearch et de Kibana.
- Une nouvelle instance d'Ubuntu 20.04 pour agir en tant que serveur de flotte
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 :
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 :
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 :
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
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 :
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 :
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
Alerte de seuil de latence