#!/bin/bash ################################################################################ # HEALTH CHECK SCRIPT # Verifica que todo funcione correctamente ################################################################################ RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' FAILURES=0 check() { local name=$1 local cmd=$2 local expected=$3 echo -n "Verificando $name... " if eval "$cmd" &>/dev/null; then echo -e "${GREEN}✅${NC}" return 0 else echo -e "${RED}❌${NC}" ((FAILURES++)) return 1 fi } echo -e "${BLUE}========================================${NC}" echo -e "${BLUE} LLM SERVER HEALTH CHECK${NC}" echo -e "${BLUE}========================================${NC}\n" # Sistema echo -e "${YELLOW}Sistema:${NC}" check "Ubuntu 22.04" "grep -q '22.04' /etc/os-release" check "Internet" "ping -c 1 8.8.8.8" # Drivers & GPU echo -e "\n${YELLOW}GPU & Drivers:${NC}" check "NVIDIA Driver" "command -v nvidia-smi" check "CUDA 12.3" "command -v nvcc" check "RTX 3090" "nvidia-smi | grep -q 'RTX 3090'" check "cuDNN" "ldconfig -p | grep -q cudnn" # Software echo -e "\n${YELLOW}Software:${NC}" check "Python 3.11" "python3.11 --version" check "Docker" "command -v docker" check "Git" "command -v git" # Services echo -e "\n${YELLOW}Servicios:${NC}" check "Ollama service" "sudo systemctl is-active ollama" check "API service" "sudo systemctl is-active llm-api" # Conectividad echo -e "\n${YELLOW}API Connectivity:${NC}" check "Ollama API" "curl -s http://localhost:11434/api/tags" check "FastAPI" "curl -s http://localhost:8000/health" # Modelos echo -e "\n${YELLOW}Modelos Ollama:${NC}" check "Phi disponible" "curl -s http://localhost:11434/api/tags | grep -q 'phi'" check "DeepSeek disponible" "curl -s http://localhost:11434/api/tags | grep -q 'deepseek'" # Disk Space echo -e "\n${YELLOW}Espacio en Disco:${NC}" root_usage=$(df / | awk 'NR==2 {print int($5)}') if [ "$root_usage" -lt 90 ]; then echo -e "Uso de disco (root): ${GREEN}${root_usage}%${NC}" else echo -e "Uso de disco (root): ${RED}${root_usage}%${NC}" ((FAILURES++)) fi # Summary echo -e "\n${BLUE}========================================${NC}" if [ "$FAILURES" -eq 0 ]; then echo -e "${GREEN}✅ TODOS LOS CHECKS PASARON${NC}" exit 0 else echo -e "${RED}❌ $FAILURES CHECKS FALLARON${NC}" exit 1 fi