#!/bin/bash # Script pour configurer la centralisation des logs # Usage: ./scripts/setup-logs.sh set -e echo "🔧 Configuration de la centralisation des logs..." # Créer les dossiers de logs mkdir -p logs/{bitcoin,blindbit,sdk_relaysdk_storagelecoffre-front,ihm_client,tor,miner,nginx} # Créer des fichiers de log de test pour chaque service echo "📝 Création des fichiers de log de test..." for service in bitcoin blindbit sdk_relaysdk_storage lecoffre-front ihm_client tor miner nginx; do log_file="logs/${service}/${service}.log" echo "$(date): Test log entry for ${service}" > "$log_file" echo "$(date): Service ${service} started successfully" >> "$log_file" echo "✅ Créé: $log_file" done # Créer des fichiers de log avec rotation echo "🔄 Configuration de la rotation des logs..." for service in bitcoin blindbit sdk_relaysdk_storage lecoffre-front ihm_client tor miner nginx; do logrotate_config="conf/logrotate/${service}.conf" mkdir -p conf/logrotate cat > "$logrotate_config" << EOF logs/${service}/*.log { daily missingok rotate 7 compress delaycompress notifempty create 644 root root postrotate # Redémarrer le service si nécessaire docker restart ${service} 2>/dev/null || true endscript } EOF echo "✅ Créé: $logrotate_config" done # Créer un script de collecte de logs cat > scripts/collect-logs.sh << 'EOF' #!/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..." for service in bitcoin-signet blindbit-oracle sdk_relaysdk_storage lecoffre-front ihm_client tor-proxy signet_miner; do if docker ps --format "table {{.Names}}" | grep -q "^${service}$"; then echo "📝 Collecte des logs pour $service..." mkdir -p "$LOG_DIR/${service##*-}" # Enlever le préfixe si nécessaire docker logs "$service" > "$LOG_DIR/${service##*-}/${service}_${TIMESTAMP}.log" 2>&1 echo "✅ Logs collectés pour $service" else echo "⚠️ Service $service non en cours d'exécution" fi done fi echo "🎉 Collecte terminée!" EOF chmod +x scripts/collect-logs.sh echo "✅ Configuration des logs terminée!" echo "" echo "📋 Prochaines étapes:" echo "1. Redémarrer les services: docker compose restart" echo "2. Vérifier Grafana: https://dev4.4nkweb.com/grafana/" echo "3. Collecter les logs: ./scripts/collect-logs.sh" echo "4. Surveiller les logs: docker compose logs -f" echo "" echo "🔗 URLs utiles:" echo "- Grafana: https://dev4.4nkweb.com/grafana/" echo "- Loki API: https://dev4.4nkweb.com/loki/" echo "- Logs locaux: ./logs/"