Mise en place du logging centralisé : ELK Stack (augmentation RAM 8go, clé cryptage kibana, logging, pipeline, etc...)
This commit is contained in:
32
ProcédureGit.md
Normal file
32
ProcédureGit.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Test rapide avant d'enregistrer :
|
||||||
|
|
||||||
|
- Redémarrer le docker principale
|
||||||
|
cd C:\DevOpsProject\docker\
|
||||||
|
docker-compose -f docker-compose.yml down --remove-orphans
|
||||||
|
docker-compose -f docker-compose.yml up -d
|
||||||
|
|
||||||
|
- Redémarrer les autres dockers
|
||||||
|
cd C:\DevOpsProject\scripts\
|
||||||
|
.\start_other_ctnrs.ps1
|
||||||
|
|
||||||
|
# Pour afficher tous les conteneurs Docker, ainsi que les nœuds et pods Kubernetes :
|
||||||
|
- Conteneurs Docker
|
||||||
|
docker ps -a
|
||||||
|
|
||||||
|
- Nœuds Kubernetes
|
||||||
|
kubectl get nodes
|
||||||
|
|
||||||
|
- Pods Kubernetes
|
||||||
|
kubectl get pods --all-namespaces
|
||||||
|
|
||||||
|
✅ Docker : Tous les services (ELK, Gitea, NGINX, base de données, monitoring) sont Up et fonctionnels.
|
||||||
|
✅ Kubernetes : Les nœuds sont Ready, les pods système sont Running.
|
||||||
|
|
||||||
|
# Pusher le projet modifié dans git :
|
||||||
|
- Aller dans le dossier du projet
|
||||||
|
- cliq droit "git bash here"
|
||||||
|
- "git add ."
|
||||||
|
- "git commit -m "détail des modifs"
|
||||||
|
- "git push origin main"
|
||||||
|
|
||||||
|
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
x-logging: &default-logging
|
x-logging: &default-logging
|
||||||
driver: fluentd
|
driver: json-file
|
||||||
options:
|
options:
|
||||||
fluentd-address: localhost:24224
|
max-size: "10m"
|
||||||
tag: devops.*
|
max-file: "5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ services:
|
|||||||
hard: -1
|
hard: -1
|
||||||
volumes:
|
volumes:
|
||||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
- elasticsearch-data:/usr/share/elasticsearch/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "curl -f http://localhost:9200/_cluster/health?wait_for_status=yellow || exit 1"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 10
|
||||||
|
start_period: 30s
|
||||||
ports:
|
ports:
|
||||||
- "9200:9200"
|
- "9200:9200"
|
||||||
networks:
|
networks:
|
||||||
@@ -24,6 +30,8 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- SERVER_HOST=0.0.0.0
|
- SERVER_HOST=0.0.0.0
|
||||||
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
|
||||||
|
volumes:
|
||||||
|
- ../monitoring/elklogs/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
|
||||||
ports:
|
ports:
|
||||||
- "5601:5601"
|
- "5601:5601"
|
||||||
networks:
|
networks:
|
||||||
@@ -37,14 +45,16 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- LS_JAVA_OPTS=-Xms512m -Xmx512m
|
- LS_JAVA_OPTS=-Xms512m -Xmx512m
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/c/DevOpsProject/monitoring/elklogs/logstash/config:/usr/share/logstash/pipeline:ro
|
- ../monitoring/elklogs/logstash/pipeline/pipelines.yml:/usr/share/logstash/pipeline/pipelines.yml:ro
|
||||||
- /mnt/c/DevOpsProject/monitoring/elklogs/logstash/config/jvm.options:/usr/share/logstash/config/jvm.options:ro
|
- ../monitoring/elklogs/logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
|
||||||
|
- ../monitoring/elklogs/logstash/config/jvm.options:/usr/share/logstash/config/jvm.options:ro
|
||||||
ports:
|
ports:
|
||||||
- "5044:5044"
|
- "5044:5044"
|
||||||
networks:
|
networks:
|
||||||
- elk
|
- elk
|
||||||
depends_on:
|
depends_on:
|
||||||
- elasticsearch
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
filebeat:
|
filebeat:
|
||||||
image: docker.elastic.co/beats/filebeat:8.17.0
|
image: docker.elastic.co/beats/filebeat:8.17.0
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
x-logging: &default-logging
|
x-logging: &default-logging
|
||||||
driver: fluentd
|
driver: json-file
|
||||||
options:
|
options:
|
||||||
fluentd-address: localhost:24224
|
max-size: "10m"
|
||||||
tag: devops.*
|
max-file: "5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gitea:
|
gitea:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
x-logging: &default-logging
|
x-logging: &default-logging
|
||||||
driver: fluentd
|
driver: json-file
|
||||||
options:
|
options:
|
||||||
fluentd-address: localhost:24224
|
max-size: "10m"
|
||||||
tag: devops.*
|
max-file: "5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
nginx:
|
nginx:
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
x-logging: &default-logging
|
x-logging: &default-logging
|
||||||
driver: fluentd
|
driver: json-file
|
||||||
options:
|
options:
|
||||||
fluentd-address: localhost:24224
|
max-size: "10m"
|
||||||
tag: devops.*
|
max-file: "5"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000024
|
MANIFEST-000048
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
MANIFEST-000022
|
MANIFEST-000046
|
||||||
|
|||||||
@@ -100,3 +100,111 @@
|
|||||||
07:31:18.922596 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
07:31:18.922596 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
07:31:18.962518 db@janitor F·3 G·0
|
07:31:18.962518 db@janitor F·3 G·0
|
||||||
07:31:18.962774 db@open done T·47.494468ms
|
07:31:18.962774 db@open done T·47.494468ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
13:54:27.868593 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
13:54:27.892455 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
13:54:27.892849 db@open opening
|
||||||
|
13:54:27.894307 journal@recovery F·1
|
||||||
|
13:54:27.894613 journal@recovery recovering @23
|
||||||
|
13:54:27.897603 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
13:54:27.947761 db@janitor F·3 G·0
|
||||||
|
13:54:27.947926 db@open done T·54.793348ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:15:33.586338 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:15:33.592592 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:15:33.598256 db@open opening
|
||||||
|
14:15:33.599579 journal@recovery F·1
|
||||||
|
14:15:33.599862 journal@recovery recovering @25
|
||||||
|
14:15:33.602391 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:15:33.640088 db@janitor F·3 G·0
|
||||||
|
14:15:33.640289 db@open done T·41.7863ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:17:09.197281 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:17:09.202591 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:17:09.202962 db@open opening
|
||||||
|
14:17:09.204108 journal@recovery F·1
|
||||||
|
14:17:09.204373 journal@recovery recovering @27
|
||||||
|
14:17:09.207398 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:17:09.239988 db@janitor F·3 G·0
|
||||||
|
14:17:09.240147 db@open done T·37.04192ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:27:40.555685 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:27:40.563000 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:27:40.563425 db@open opening
|
||||||
|
14:27:40.564901 journal@recovery F·1
|
||||||
|
14:27:40.565188 journal@recovery recovering @29
|
||||||
|
14:27:40.568025 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:27:40.618333 db@janitor F·3 G·0
|
||||||
|
14:27:40.618563 db@open done T·54.973788ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:33:00.048029 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:33:00.070767 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:33:00.072809 db@open opening
|
||||||
|
14:33:00.074262 journal@recovery F·1
|
||||||
|
14:33:00.075293 journal@recovery recovering @31
|
||||||
|
14:33:00.095031 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:33:00.177600 db@janitor F·3 G·0
|
||||||
|
14:33:00.178954 db@open done T·105.87586ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:37:56.105146 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:37:56.143515 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:37:56.144085 db@open opening
|
||||||
|
14:37:56.158985 journal@recovery F·1
|
||||||
|
14:37:56.159486 journal@recovery recovering @33
|
||||||
|
14:37:56.168153 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:37:56.245259 db@janitor F·3 G·0
|
||||||
|
14:37:56.245604 db@open done T·101.341687ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
14:58:51.261319 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
14:58:51.268236 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:58:51.268769 db@open opening
|
||||||
|
14:58:51.270343 journal@recovery F·1
|
||||||
|
14:58:51.270594 journal@recovery recovering @35
|
||||||
|
14:58:51.273508 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
14:58:51.304932 db@janitor F·3 G·0
|
||||||
|
14:58:51.305182 db@open done T·36.20052ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
15:02:02.430077 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
15:02:02.436038 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:02:02.436457 db@open opening
|
||||||
|
15:02:02.438119 journal@recovery F·1
|
||||||
|
15:02:02.438396 journal@recovery recovering @37
|
||||||
|
15:02:02.440960 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:02:02.471433 db@janitor F·3 G·0
|
||||||
|
15:02:02.471668 db@open done T·35.052337ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
15:03:56.374460 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
15:03:56.380375 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:03:56.380849 db@open opening
|
||||||
|
15:03:56.382082 journal@recovery F·1
|
||||||
|
15:03:56.382416 journal@recovery recovering @39
|
||||||
|
15:03:56.385389 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:03:56.418633 db@janitor F·3 G·0
|
||||||
|
15:03:56.418842 db@open done T·37.830034ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
15:05:39.076957 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
15:05:39.083558 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:05:39.084101 db@open opening
|
||||||
|
15:05:39.086277 journal@recovery F·1
|
||||||
|
15:05:39.086634 journal@recovery recovering @41
|
||||||
|
15:05:39.090198 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:05:39.126223 db@janitor F·3 G·0
|
||||||
|
15:05:39.126403 db@open done T·42.051216ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
15:12:38.550365 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
15:12:38.572801 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:12:38.573301 db@open opening
|
||||||
|
15:12:38.575371 journal@recovery F·1
|
||||||
|
15:12:38.576023 journal@recovery recovering @43
|
||||||
|
15:12:38.580508 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
15:12:38.617431 db@janitor F·3 G·0
|
||||||
|
15:12:38.621316 db@open done T·47.850414ms
|
||||||
|
=============== Jan 30, 2026 (UTC) ===============
|
||||||
|
16:51:56.898330 log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed
|
||||||
|
16:51:56.914950 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
16:51:56.915351 db@open opening
|
||||||
|
16:51:56.919693 journal@recovery F·1
|
||||||
|
16:51:56.919967 journal@recovery recovering @45
|
||||||
|
16:51:56.927562 version@stat F·[0 1] S·577B[0B 577B] Sc·[0.00 0.00]
|
||||||
|
16:51:56.988766 db@janitor F·3 G·0
|
||||||
|
16:51:56.988996 db@open done T·73.514866ms
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
31
monitoring/elklogs/kibana/config/kibana.yml
Normal file
31
monitoring/elklogs/kibana/config/kibana.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# =================================== Kibana Configuration ===================================
|
||||||
|
# Configuration principale pour Kibana 8.17
|
||||||
|
|
||||||
|
# --- Serveur ---
|
||||||
|
server.host: "0.0.0.0" # Écoute sur toutes les interfaces réseau
|
||||||
|
server.port: 5601 # Port d'accès à l'interface web
|
||||||
|
server.name: "kibana-devops" # Nom affiché dans les logs et l'UI
|
||||||
|
|
||||||
|
# --- Elasticsearch ---
|
||||||
|
elasticsearch.hosts: ["http://elasticsearch:9200"] # URL du cluster Elasticsearch
|
||||||
|
elasticsearch.requestTimeout: 30000 # Délai max pour les requêtes (ms)
|
||||||
|
|
||||||
|
# --- Sécurité ---
|
||||||
|
xpack.encryptedSavedObjects.encryptionKey: "b524234a31e5bf211a0bb157192b6faf"
|
||||||
|
# Chiffre les objets sauvegardés (dashboards, visualisations)
|
||||||
|
|
||||||
|
xpack.reporting.encryptionKey: "111d1cb71e564e0ac3aafae85151b895"
|
||||||
|
# Chiffre les rapports générés par Reporting
|
||||||
|
|
||||||
|
xpack.security.encryptionKey: "ecb7071b9737158642ca555ce25206fd"
|
||||||
|
# Chiffre les sessions utilisateur
|
||||||
|
|
||||||
|
# --- Fonctionnalités avancées ---
|
||||||
|
xpack.reporting.roles.enabled: false # ✅ Désactive le système de rôles déprécié
|
||||||
|
# Active le nouveau système basé sur les privilèges Kibana (requis pour les futures versions)
|
||||||
|
|
||||||
|
monitoring.kibana.collection.enabled: true # Active la collecte des métriques Kibana
|
||||||
|
# Affiche les performances de Kibana dans l'onglet Monitoring
|
||||||
|
|
||||||
|
# --- Interface ---
|
||||||
|
i18n.locale: "fr-FR" # Langue par défaut de l'interface
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
-Xms1g
|
-Xms512m
|
||||||
-Xmx1g
|
-Xmx512m
|
||||||
-Djava.awt.headless=true
|
-XX:+UseG1GC
|
||||||
-Dfile.encoding=UTF-8
|
|
||||||
-XX:+HeapDumpOnOutOfMemoryError
|
-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
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
# Définit le chemin vers le dossier contenant tous tes fichiers docker-compose.yml
|
|
||||||
$projectPath = "C:\DevOpsProject\docker"
|
$projectPath = "C:\DevOpsProject\docker"
|
||||||
|
|
||||||
# La liste de tous tes fichiers docker-compose YAML à lancer
|
|
||||||
$composeFiles = @(
|
$composeFiles = @(
|
||||||
"docker-compose-db.yml",
|
"docker-compose-db.yml",
|
||||||
"docker-compose-elk.yml",
|
"docker-compose-elk.yml",
|
||||||
@@ -9,12 +6,17 @@ $composeFiles = @(
|
|||||||
"docker-compose-nginx.yml"
|
"docker-compose-nginx.yml"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Pour chaque fichier dans la liste
|
|
||||||
foreach ($file in $composeFiles) {
|
foreach ($file in $composeFiles) {
|
||||||
# Lance une nouvelle instance de 'docker-compose' pour ce fichier, en mode détaché (-d)
|
Write-Host "🔄 Arrêt du service $file..." -ForegroundColor Yellow
|
||||||
# Start-Process permet de lancer la commande en arrière-plan, sans bloquer le script
|
docker-compose -f "$projectPath\$file" down
|
||||||
Start-Process -NoNewWindow -FilePath "docker-compose" -ArgumentList "-f `"$projectPath\$file`" up -d"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Affiche un message une fois tous les containers lancés
|
Write-Host "🚀 Démarrage du service $file..." -ForegroundColor Cyan
|
||||||
Write-Host "Tous les environnements ont été lancés."
|
docker-compose -f "$projectPath\$file" up -d
|
||||||
|
|
||||||
|
if ($LASTEXITCODE -eq 0) {
|
||||||
|
Write-Host "✅ $file démarré avec succès." -ForegroundColor Green
|
||||||
|
} else {
|
||||||
|
Write-Host "❌ Échec lors du démarrage de $file." -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host "🎉 Tous les services ont été relancés." -ForegroundColor Yellow
|
||||||
Reference in New Issue
Block a user