
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
- 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 – 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.
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
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
Taux de latence de connexion
Faites de même pour l’alerte de transaction échouée.
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 :
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>"
}
}'