# Diagnóstico Automatizado de Servidores Linux: De Comprobaciones Manuales al Análisis eBPF en Minutos
Los desarrolladores y administradores de sistemas con experiencia en Linux conocen el procedimiento: una queja de "el servidor va lento" implica ejecutar las herramientas habituales — top, vmstat, iostat, ss. Eso es el diagnóstico de nivel 1, que toma 20–40 minutos. Luego viene sumergirse en herramientas eBPF como runqlat, biolatency, tcpretrans de Brendan Gregg. El problema: los incidentes raros borran tu memoria, así que estás constantemente buscando en Google archivos /proc, parámetros sysctl y la sintaxis de BCC-tools.
La IA (ChatGPT, Claude) simplifica el análisis de logs, pero no se encarga de la recopilación de datos. Las redes neuronales no ejecutan herramientas por sí solas ni conectan los puntos entre métricas como PruneCalled y la memoria TCP. Necesitas un recolector de datos estructurado para alimentar a la IA.
Melisai: Recopilación de Datos en un Solo JSON
Melisai es un binario estático en Go sin dependencias. Lánzalo con:
sudo melisai collect --profile quick -o report.json
El modo rápido toma 10 segundos, el modo profundo 60 segundos. Salida: JSON con métricas de CPU, memoria, disco, red, procesos, contenedores y GPU.
Lo que recopila:
- Nivel 1: procfs, sysfs,
ss,ethtool,nvidia-smi(sin necesidad de root). - Nivel 2: 67 herramientas BCC/eBPF (
runqlat,biolatency,tcpretrans, etc., requiere root + bcc-tools). - Nivel 3: eBPF nativo vía cilium/ebpf (root + kernel ≥5.8 con BTF).
Respaldo: Si el nivel 2/3 no está disponible, ejecuta el nivel 1.
Recopilación en Dos Fases y Métricas de Tasa
Para evitar el efecto observador, la recopilación se divide:
- Línea base: Métricas de nivel 1 (CPU, memoria, E/S, red).
- eBPF: BCC-tools se ejecutan después de la línea base.
Cálculos basados en tasas: deltas entre mediciones. No contadores acumulativos (uptime de 200 días = softnet_dropped=5000 es normal), sino tasas (softnet_drop_rate=50/seg indica una anomalía).
37 reglas de anomalías basadas en Gregg y prácticas de producción:
| Categoría | Umbrales de Ejemplo |
|-----------|---------------------|
| CPU | util>95%, PSI>5%, runqlat p99>50ms |
| Memoria | reclaim directo>10/s, divisiones THP>1/s, fallos NUMA>5% |
| Disco | util>90%, latencia>50ms |
| Red | retransmisiones>50/s, conntrack>90% |
| GPU | Desajuste NUMA GPU-NIC |
Estudio de Caso: Fallo en Cascada en un Host Docker
Configuración de producción: 8 núcleos, 32GB RAM, RAID HDD. Síntomas: ralentización general.
sudo melisai collect --profile deep --ai-prompt -o report.json
Resultados (60 seg):
Puntuación de Salud: 46/100
Anomalías:
[CRÍTICA] tcp_retransmits 134/seg
[ADVERTENCIA] disk_util 80.5%
[ADVERTENCIA] cpu_psi 17.6%
[ADVERTENCIA] io_psi 12.8%
[ADVERTENCIA] disk_latency 12.1ms
[ADVERTENCIA] tcp_close_wait 1 socket
Cascada:
- HDD p99=49ms → Latencia de E/S de bloques (
biolatency). - PruneCalled=105 → Buffers TCP recortados (presión de memoria).
- TCP retransmits=31/s → Pérdida de paquetes dentro del servidor.
- WireGuard tx_dropped=226k → El túnel VPN sufre.
Causa raíz: Cuello de botella HDD. Recomendación: sysctl -w net.ipv4.tcp_mem='1048576 2097152 4194304'.
Integración con IA vía MCP
Servidor MCP integrado para Claude Desktop/Cursor:
{
"mcpServers": {
"melisai": {
"command": "ssh",
"args": ["root@server", "/usr/local/bin/melisai", "mcp"]
}
}
}
Llamadas de IA:
get_health— puntuación + anomalías.explain_anomaly— causa raíz + comandos de corrección.collect_metrics— informe completo con histogramas.
El JSON incluye ai_context.prompt con 27 antipatrones.
Recomendaciones y Limitaciones
Las recomendaciones son comandos listos para ejecutar:
{
"type": "fix",
"title": "Presión de memoria TCP (PruneCalled)",
"commands": ["sysctl -w net.ipv4.tcp_mem='1048576 2097152 4194304'"],
"evidence": "PruneCalled=105"
}
Limitaciones:
- No es monitoreo (instantáneas, no Prometheus).
- No es alertado (solo bajo demanda/cron).
- No es perfilado de apps (
pprofpara eso). - Solo GPU NVIDIA (ROCm en roadmap).
Instalación y Compilación
curl -sSL https://melisai.dev/install | sh
Compilación:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o melisai ./cmd/melisai/
Apache 2.0.
Lecciones Clave
- Recopila 67 herramientas eBPF + nivel 1 en 10–60 seg en JSON estructurado.
- Métricas de tasa eliminan falsos positivos en servidores con uptime largo.
- 37 reglas de anomalías + comandos sysctl listos.
- Integración MCP: IA analiza directamente, sin copiar y pegar.
- Recopilación en dos fases minimiza el efecto observador.
— Editorial Team
Aún no hay comentarios.