Files
Tuto-Devops-A---Z/monitoring/elklogs/logstash/pipeline/logstash.conf

92 lines
2.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ===================================
# Fichier : logstash.conf
# Description : Configuration complète de Logstash
# Auteur : DevOps Project
# Date : 30 janvier 2026
# ===================================
# ——— SECTION INPUT ———
# Définit les sources des logs
input {
# Entrée via Beats (Filebeat, Metricbeat, etc.) recommandé
beats {
port => 5044
# host => "0.0.0.0" # Écoute sur toutes les interfaces
}
# Exemple : lecture de fichiers logs locaux
# file {
# path => ["/var/log/*.log", "/app/logs/*.log"]
# start_position => "beginning"
# sincedb_path => "/dev/null" # Pour relire les fichiers à chaque démarrage (développement)
# }
# Exemple : réception de logs Syslog via UDP/TCP
# syslog {
# port => 514
# type => "syslog"
# }
}
# ——— SECTION FILTER ———
# Traitement, parsing et enrichissement des logs
filter {
# Exemple : filtrer uniquement les logs de type "nginx"
# if [type] == "nginx" {
# grok {
# match => { "message" => "%{COMBINEDAPACHELOG}" }
# }
# date {
# match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
# }
# }
# Exemple : parser des logs JSON
# json {
# source => "message"
# }
# Ajout de champs métadonnées
mutate {
add_field => {
"environment" => "production"
"project" => "DevOpsProject"
}
# Supprimer des champs inutiles
# remove_field => ["agent", "input_type"]
}
# Gestion des erreurs de parsing
# if "_grokparsefailure" in [tags] {
# drop {}
# }
}
# ——— SECTION OUTPUT ———
# Envoi des logs vers une destination
output {
# Sortie vers Elasticsearch
elasticsearch {
hosts => ["http://elasticsearch:9200"]
index => "logs-%{+YYYY.MM.dd}"
# user => "elastic"
# password => "changeme"
}
# Sortie vers la console (utile pour le debug)
stdout {
codec => rubydebug
}
# Exemple : sortie vers un fichier
# file {
# path => "/logs/parsed-%{+YYYY-MM-dd}.log"
# codec => json
# }
}
# ——— CONSEILS ———
# - Placez ce fichier dans : ./pipeline/logstash.conf
# - Montez le dossier dans le conteneur Docker
# - Assurez-vous quElasticsearch est prêt avant Logstash
# - Utilisez `depends_on` avec condition de santé dans docker-compose.yml