APM avec Elasticsearch 8.x - Partie 3 : Alertes par e-mail via le connecteur de journal du serveur

Publié le 10/11/2022

« Voir toutes les conférences Contactez-nous
APM with Elasticsearch 8.x - Part 3: Email Alerts via Server Log Connector

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 pour la partie 1 et Ceci pour la partie 2.

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 – Utiliser le journal du serveur pour écrire des alertes dans le fichier kibana.log [02:12]

Connectez-vous à Kibana et accédez à Observabilité > Alertes > règles du gestionnaire, et cliquez sur l'icône du stylo sur l'alerte de nombre d'erreurs que nous avons configurée dans la vidéo précédente.

alt text Modifier la règle

Faites défiler vers le bas et cliquez sur Ajouter un connecteur, cela devrait montrer quelque chose de similaire à ci-dessous

alt text Add a Connector

et lui donner un nom comme connecteur-2, puis appuyez sur sauvegarder.Cliquez maintenant sur « Enregistrer » dans le coin inférieur droit pour enregistrer les détails de connexion.

Pour afficher les journaux publiés, accédez à votre terminal de serveur Kibana et exécutez la commande ci-dessous.

cd /var/log/kibana vi kibana.log

Accédez maintenant à Kibana pour configurer une alerte pour le seuil de taux de latence. sélectionnez connecteur-2 pour l'option connecteur et choisissez les détails restants comme indiqué dans l'image ci-dessous

alt text Taux de latence de connexion

Faites de même pour l’alerte de transaction échouée.

alt text Alerte de transaction échouée

Étape 2 - Utiliser Logstash pour ingérer les alertes du fichier kibana.log [09:20]

Installez logstash avec la commande ci-dessous sur votre terminal

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

Pour confirmer que Logstash a été installé avec succès, exécutez la commande ci-dessous.

cd /usr/share/logstash/bin/ ls

Vous devriez obtenir quelque chose de similaire à ceci :

alt text Fichiers binaires Logstash

Utilisez la commande ci-dessous pour exécuter logstash.

cd ~

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

Étape 3 - Utilisez Logstash pour publier des alertes sur Mailtrap ou un serveur SMTP [14:50]

Créez un compte sur Mailtrap comme indiqué dans la vidéo. Vous utiliserez l'URL du serveur SMTP comme adresse e-mail. Retournez maintenant au terminal et exécutez la commande ci-dessous.

/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>" } }'

Étape 4 - Sortie conditionnelle (par exemple, e-mail uniquement [log][niveau] == ERREUR) [20:20]

Si vous souhaitez uniquement une erreur de niveau de journal, utilisez la commande ci-dessous.

/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>" } }'

Étape 5 - Utiliser le filtre Grok pour formater les messages [22:05]

Pour utiliser le filtre grok, revenez au terminal et exécutez la commande ci-dessous.

/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>" } }'