Mise en place du logging centralisé : ELK Stack (augmentation RAM 8go, clé cryptage kibana, logging, pipeline, etc...)
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
-Xms1g
|
||||
-Xmx1g
|
||||
-Djava.awt.headless=true
|
||||
-Dfile.encoding=UTF-8
|
||||
-Xms512m
|
||||
-Xmx512m
|
||||
-XX:+UseG1GC
|
||||
-XX:+HeapDumpOnOutOfMemoryError
|
||||
-Djava.security.egd=file:/dev/urandom
|
||||
-XX:HeapDumpPath=/usr/share/logstash/logs/heap_dump.hprof
|
||||
-XX:MaxMetaspaceSize=256m
|
||||
-XX:+DisableExplicitGC
|
||||
-XX:+AlwaysPreTouch
|
||||
14
monitoring/elklogs/logstash/config/pipelines.yml
Normal file
14
monitoring/elklogs/logstash/config/pipelines.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
# pipelines.yml — Fichier de configuration principale pour Logstash
|
||||
# Il définit quels pipelines (flux de traitement) Logstash doit charger.
|
||||
# Ce fichier ne remplace pas logstash.conf, il le référence.
|
||||
|
||||
- pipeline.id: main
|
||||
# ✅ Identifiant unique obligatoire du pipeline
|
||||
path.config: "/usr/share/logstash/pipeline/logstash.conf"
|
||||
# ✅ Chemin vers le fichier .conf à charger (doit exister dans le conteneur)
|
||||
pipeline.workers: 2
|
||||
# Nombre de threads pour traiter les événements (par défaut: nombre de CPU)
|
||||
pipeline.batch.size: 125
|
||||
# Taille du lot d'événements traités ensemble
|
||||
queue.type: memory
|
||||
# Type de file d'attente : "memory" (par défaut) ou "persisted" (sur disque)
|
||||
92
monitoring/elklogs/logstash/pipeline/logstash.conf
Normal file
92
monitoring/elklogs/logstash/pipeline/logstash.conf
Normal file
@@ -0,0 +1,92 @@
|
||||
# ===================================
|
||||
# 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
|
||||
Reference in New Issue
Block a user