DevSecOps Maturity Model : quel modèle choisir ?
La conteneurisation est devenue une pierre angulaire de la modernisation des applications dans le monde de l’informatique. Cette technologie permet...
Ce guide vous permet d’être en mesure de configurer et d'utiliser l'ELK Stack pour gérer efficacement les logs de votre application. Il montre un schéma complet, à personnaliser et à configurer selon le besoin.
La gestion des logs est indispensable pour diagnostiquer les problèmes, surveiller les performances et comprendre le comportement de votre application. L'ELK Stack simplifie ce processus en offrant une solution centralisée pour collecter, analyser et visualiser les logs.
L'ELK Stack se compose de trois éléments principaux :
Avant de commencer, assurez-vous d'avoir les éléments suivants :
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.0.0-linux-x86_64.tar.gz
cd elasticsearch-8.0.0
Éditez le fichier config/elasticsearch.yml :
cluster.name: mon-application-cluster
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
./bin/elasticsearch
Vérifiez qu'Elasticsearch fonctionne :
curl -X GET "localhost:9200"
Logstash est l'élément central de l'ELK Stack qui se charge de collecter, parser et transformer vos logs avant de les envoyer à Elasticsearch.
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.0.0-linux-x86_64.tar.gz
tar -xzf logstash-8.0.0-linux-x86_64.tar.gz
cd logstash-8.0.0
Logstash doit être configuré pour :
Éditez le fichier /etc/logstash/conf.d/app-logs.conf :
input {
file {
path => "/var/log/myapp.log" # Fichier log de l’application
start_position => "beginning" # Commence à lire depuis le début
sincedb_path => "/dev/null" # Évite de skipper des logs
codec => "json" # Prend en charge les logs au format JSON
}
}
filter {
# Si les logs sont en JSON, Logstash extrait automatiquement les champs
# Si les logs sont en texte brut, on utilise GROK
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" }
}
# Conversion de la date en format Elasticsearch
date {
match => ["timestamp", "ISO8601"]
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "app-logs-%{+YYYY.MM.dd}" # Indexation journalière
}
stdout { codec => rubydebug } # Debug : afficher les logs en console
}
Si vos logs sont en texte brut et structurés différemment, adaptez le pattern GROK en conséquence.
Redémarrez Logstash avec la nouvelle configuration :
sudo systemctl restart logstash
Ou lancez-le en mode debug :
logstash -f /etc/logstash/conf.d/app-logs.conf
Vérifiez que les logs sont bien envoyés à Elasticsearch :
curl -X GET "localhost:9200/app-logs-*/_search?pretty"
Kibana est l'interface web qui vous permettra d'explorer et de visualiser vos logs.
Si Kibana n'est pas encore installé, téléchargez et installez-le :
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.0.0-linux-x86_64.tar.gz
tar -xzf kibana-8.0.0-linux-x86_64.tar.gz
cd kibana-8.0.0
Éditez le fichier de configuration config/kibana.yml :
server.port: 5601
server.host: "0.0.0.0" # Permet l'accès à distance
elasticsearch.hosts: ["http://localhost:9200"]
logging.dest: stdout # Pour afficher les logs de Kibana dans la console
Lancez Kibana :
./bin/kibana
Ou avec systemctl si installé via package :
sudo systemctl start kibana
Ouvrez un navigateur et accédez à : http://localhost:5601
Une fois l’index configuré :
Kibana vous permet de définir des règles d'alerte basées sur le contenu de vos logs.
Il est essentiel de sécuriser votre ELK Stack, surtout si vous l'exposez sur Internet. Voici quelques mesures à prendre :
Pour garantir des performances optimales de votre ELK Stack, voici quelques conseils :
La gestion des index dans Elasticsearch est cruciale pour maintenir les performances et l'organisation de vos données. Voici quelques opérations courantes :
Afin de mieux utiliser ce guide et mettre en place efficacement l’ELK Stuck, il est recommandé d’explorer avec plus de détails chacun des outils et des étapes pour mieux les adapter à votre besoin.
Articles similaires
La conteneurisation est devenue une pierre angulaire de la modernisation des applications dans le monde de l’informatique. Cette technologie permet...
La conteneurisation est devenue une pierre angulaire de la modernisation des applications dans le monde de l’informatique. Cette technologie permet...
Avec plusieurs options disponibles, telles qu’Amazon ECS, EKS et Lambda, il est crucial pour les entreprises de sélectionner une solution...