lecoffre_node/scripts/collect-logs.sh

59 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Script pour collecter les logs de tous les services
# Usage: ./scripts/collect-logs.sh [service_name]
set -e
LOG_DIR="logs"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
if [ $# -eq 1 ]; then
# Collecter les logs d'un service spécifique
SERVICE=$1
if [ -d "$LOG_DIR/$SERVICE" ]; then
echo "📊 Collecte des logs pour $SERVICE..."
docker logs "$SERVICE" > "$LOG_DIR/$SERVICE/${SERVICE}_${TIMESTAMP}.log" 2>&1
echo "✅ Logs collectés: $LOG_DIR/$SERVICE/${SERVICE}_${TIMESTAMP}.log"
else
echo "❌ Service $SERVICE non trouvé"
exit 1
fi
else
# Collecter les logs de tous les services
echo "📊 Collecte des logs de tous les services..."
# Liste des services à collecter
services=(
"tor-proxy:tor"
"bitcoin-signet:bitcoin"
"blindbit-oracle:blindbit"
"sdk_relay:sdk_relay"
"sdk_storage:sdk_storage"
"lecoffre-back:lecoffre-back"
"lecoffre-front:lecoffre-front"
"ihm_client:ihm_client"
"grafana:grafana"
"loki:loki"
"promtail:promtail"
"status-api:status-api"
"signet_miner:miner"
)
for service_entry in "${services[@]}"; do
service_name="${service_entry%%:*}"
log_dir="${service_entry##*:}"
if docker ps --format "table {{.Names}}" | grep -q "^${service_name}$"; then
echo "📝 Collecte des logs pour $service_name..."
mkdir -p "$LOG_DIR/$log_dir"
docker logs "$service_name" > "$LOG_DIR/$log_dir/${service_name}_${TIMESTAMP}.log" 2>&1
echo "✅ Logs collectés pour $service_name"
else
echo "⚠️ Service $service_name non en cours d'exécution"
fi
done
fi
echo "🎉 Collecte terminée!"