--- name: health-check description: > Verifica la salud de uno o varios servicios y servidores. Usa esta skill cuando el usuario pregunte si algo esta funcionando, si un servicio esta arriba, o pida un chequeo de salud general. Tambien util despues de un deploy o un incidente. --- # Health check de servicios ## Prerequisitos - Tool `ssh_command` habilitada - Tool `http_get` para endpoints HTTP - Servidores en `ssh.allowed_targets` ## Flujo ### 1. Determinar alcance Inferir del contexto del usuario: - **Servicio especifico**: checkear solo ese servicio - **Servidor especifico**: checkear todos los servicios en ese servidor - **General**: checkear todos los servidores y servicios conocidos ### 2. Checks basicos por servidor Para cada servidor: ```bash # Conectividad ssh_command: "echo OK" # Uptime y load ssh_command: "uptime" # Disco ssh_command: "df -h / /var /tmp 2>/dev/null | tail -n +2" # Memoria ssh_command: "free -m | grep -E 'Mem|Swap'" # Procesos zombie o en estado D ssh_command: "ps aux | awk '{if ($8 ~ /Z|D/) print}' | head -5" ``` ### 3. Checks por servicio Para cada servicio: ```bash # Estado systemd ssh_command: "systemctl is-active " # Tiempo activo ssh_command: "systemctl show --property=ActiveEnterTimestamp --value" # Puertos abiertos ssh_command: "ss -tlnp | grep " # Ultimos errores ssh_command: "journalctl -u --priority=err --since '1 hour ago' --no-pager | tail -5" ``` **Health check HTTP** (si tiene endpoint): ``` http_get: "http://:/health" ``` ### 4. Evaluar y reportar Clasificar cada componente: | Estado | Criterio | |--------|----------| | OK | Servicio activo, sin errores recientes, recursos normales | | WARNING | Servicio activo pero con errores recientes, o recursos > 80% | | CRITICAL | Servicio caido, disco lleno, o memoria agotada | Reportar al usuario con formato claro: ``` Health Check — [OK] servidor-1: load 0.3, disco 45%, mem 40% [OK] servicio-a: activo (uptime 5d), 0 errores [WARNING] servicio-b: activo, 3 errores en ultima hora [CRITICAL] servidor-2: no responde SSH ``` ### 5. Recomendaciones Si hay problemas, sugerir acciones: - Servicio caido → "Intentar restart: `systemctl restart `" - Disco lleno → "Limpiar logs antiguos o expandir disco" - Memoria alta → "Revisar procesos con mayor consumo" - Errores frecuentes → "Revisar logs con la skill log-analyzer"