Files
geiger2/debug-server.sh
rxf cb5062c0de V 3.0.0
Jetzt läufts erst mal auf citysensor.de (strato) mit der MongoDB auf IONOS
2026-03-28 15:20:51 +01:00

94 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
# Debug Script für Geiger Web Server
# Diagnostiziert Probleme mit dem Container
set -e
CONTAINER_NAME="geiger_web_prod"
VOLUME_NAME="geiger_logs_prod"
echo "=========================================="
echo " Geiger Web Server Debug"
echo "=========================================="
echo ""
# 1. Container Status prüfen
echo ">>> Container Status:"
docker ps -a --filter "name=${CONTAINER_NAME}" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
echo ""
# 2. Container stoppen (falls läuft)
echo ">>> Stoppe Container..."
docker stop ${CONTAINER_NAME} 2>/dev/null || echo "Container war bereits gestoppt"
echo ""
# 3. Logs aus Volume extrahieren
echo ">>> Extrahiere Logs aus Volume..."
docker run --rm \
-v ${VOLUME_NAME}:/logs \
alpine:latest \
cat /logs/geiger-web.log 2>/dev/null | tail -100 > /tmp/geiger-debug.log || echo "Keine Logs gefunden"
if [ -s /tmp/geiger-debug.log ]; then
echo ">>> Letzte 100 Log-Zeilen:"
cat /tmp/geiger-debug.log
echo ""
else
echo "Keine Logs im Volume gefunden"
echo ""
fi
# 4. Container Umgebungsvariablen prüfen
echo ">>> Container Environment (ohne Passwörter):"
docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep -E '^MONGO|^DEBUG|^SERVERPORT|^TZ' || echo "Container nicht gefunden"
echo ""
# 5. MongoDB Verbindung testen
echo ">>> Teste MongoDB Verbindung:"
MONGOHOST=$(docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep '^MONGOHOST=' | cut -d'=' -f2)
MONGOPORT=$(docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Env[]' | grep '^MONGOPORT=' | cut -d'=' -f2)
if [ ! -z "$MONGOHOST" ] && [ ! -z "$MONGOPORT" ]; then
echo "Teste Verbindung zu ${MONGOHOST}:${MONGOPORT}..."
timeout 5 bash -c "cat < /dev/null > /dev/tcp/${MONGOHOST}/${MONGOPORT}" 2>/dev/null && \
echo "✓ MongoDB Port ist erreichbar" || \
echo "✗ Fehler: MongoDB Port ${MONGOHOST}:${MONGOPORT} ist NICHT erreichbar!"
else
echo "✗ MONGOHOST oder MONGOPORT nicht gesetzt"
fi
echo ""
# 6. Image Info
echo ">>> Image Info:"
docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].Config.Image' || echo "Container nicht gefunden"
echo ""
# 7. Restart Count
echo ">>> Restart Count:"
docker inspect ${CONTAINER_NAME} 2>/dev/null | jq -r '.[0].RestartCount' || echo "Container nicht gefunden"
echo ""
echo "=========================================="
echo "Debug-Informationen gesammelt!"
echo "=========================================="
echo ""
echo "Vollständige Logs gespeichert in: /tmp/geiger-debug.log"
echo ""
echo "Nächste Schritte:"
echo ""
echo "1. Container OHNE Auto-Restart starten (um Logs zu sehen):"
echo " docker run --rm -it \\"
echo " -p 3005:3005 \\"
echo " -e MONGOHOST=${MONGOHOST} \\"
echo " -e MONGOPORT=${MONGOPORT} \\"
echo " -e MONGOBASE=sensor_data \\"
echo " -e MONGOAUTH=true \\"
echo " -e MONGOUSRP=user:password \\"
echo " -e TZ=Europe/Berlin \\"
echo " docker.citysensor.de/geiger_web_26:latest"
echo ""
echo "2. Original Container wieder starten:"
echo " docker start ${CONTAINER_NAME}"
echo ""