92 lines
2.3 KiB
Plaintext
92 lines
2.3 KiB
Plaintext
# ===================================
|
||
# 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 qu’Elasticsearch est prêt avant Logstash
|
||
# - Utilisez `depends_on` avec condition de santé dans docker-compose.yml |