88 lines
2.4 KiB
Bash
88 lines
2.4 KiB
Bash
#!/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 |