Files
llm-server-setup/scripts/health-check.sh
T
2026-09-20 13:43:58 -03:00

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