55 lines
1.8 KiB
Bash
Executable File
55 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script de verificación de salud del sistema
|
|
# Ejecuta cada hora
|
|
|
|
set -e
|
|
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verificando salud del sistema..."
|
|
|
|
# URLs a verificar
|
|
APP_URL=${APP_URL:-http://app/health.php}
|
|
REDIS_HOST=${REDIS_HOST:-redis}
|
|
|
|
# 1. Verificar aplicación web
|
|
echo -n "[$(date '+%Y-%m-%d %H:%M:%S')] Verificando aplicación web... "
|
|
if curl -s -f "$APP_URL" > /dev/null 2>&1; then
|
|
echo "✅ OK"
|
|
else
|
|
echo "❌ FALLO"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ La aplicación web no responde"
|
|
fi
|
|
|
|
# 2. Verificar base de datos
|
|
echo -n "[$(date '+%Y-%m-%d %H:%M:%S')] Verificando base de datos... "
|
|
if mariadb-admin ping -h "${DB_HOST:-mysql}" -u "${DB_USER}" --password="${DB_PASS}" --silent > /dev/null 2>&1; then
|
|
echo "✅ OK"
|
|
else
|
|
echo "❌ FALLO"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ La base de datos no responde"
|
|
fi
|
|
|
|
# 3. Verificar Redis
|
|
echo -n "[$(date '+%Y-%m-%d %H:%M:%S')] Verificando Redis... "
|
|
if echo "PING" | nc -w 2 "$REDIS_HOST" 6379 | grep -q PONG 2>/dev/null; then
|
|
echo "✅ OK"
|
|
else
|
|
echo "❌ FALLO"
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ Redis no responde"
|
|
fi
|
|
|
|
# 4. Verificar espacio en disco
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verificando espacio en disco..."
|
|
df -h / | tail -1 | awk '{print "[" strftime("%Y-%m-%d %H:%M:%S") "] Espacio usado: " $5 " (" $3 " de " $2 ")"}'
|
|
|
|
# Advertencia si el espacio usado es mayor al 85%
|
|
DISK_USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
|
|
if [ "$DISK_USAGE" -gt 85 ]; then
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ ADVERTENCIA: Espacio en disco mayor al 85%"
|
|
fi
|
|
|
|
# 5. Verificar memoria
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Uso de memoria:"
|
|
free -h | grep -E "Mem|Swap" || echo "No disponible en este contenedor"
|
|
|
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Verificación completada"
|