Saltar al contenido

Monitorización básica de un VPS: qué vigilar y cómo alertar

7 min de lectura Infraestructura
  • monitorización
  • alertas
  • vps
  • telegram
  • uptime
  • infraestructura
  • seguridad

Tener un VPS sin monitorización básica es como conducir sin salpicadero. Sabes que está funcionando, pero no tienes ni idea de la gasolina, la temperatura del motor o si una rueda está a punto de reventar. La mayoría de los negocios solo se dan cuenta de que su servidor está saturado cuando la web deja de cargar o los clientes se quejan.

Un sistema de monitorización simple te avisa antes de que el problema sea crítico. No necesitas un setup complejo con Grafana y Prometheus para un único servidor. Con unas pocas herramientas y un script básico, puedes vigilar lo esencial y recibir alertas directas.

Qué métricas vigilar en un VPS

La monitorización básica de un VPS se centra en los recursos clave que afectan directamente a la disponibilidad y el rendimiento de tus aplicaciones. Ignorar estas métricas es asumir un riesgo innecesario.

Mi enfoque es centrarme en lo que te puede tumbar el servidor o ralentizarlo hasta hacerlo inutilizable.

Uso de CPU

Si la CPU está al 100% de forma constante, tu servidor no puede procesar más peticiones. Esto se traduce en tiempos de carga lentos para tu web o aplicaciones, y puede incluso colgar el sistema. Un pico puntual es normal, pero una saturación prolongada indica un problema: un proceso descontrolado, un ataque DDoS o simplemente que el servidor se ha quedado pequeño.

Memoria RAM disponible

La memoria RAM llena obliga al sistema operativo a usar el disco duro como memoria virtual (swap), lo que ralentiza drásticamente todas las operaciones. Un VPS con poca RAM disponible es ineficiente y propenso a fallos. Vigilar la RAM te permite anticipar problemas de rendimiento y estabilidad antes de que afecten a los usuarios.

Espacio en disco

Un disco duro lleno no solo impide escribir nuevos datos, sino que puede bloquear aplicaciones críticas, impedir actualizaciones del sistema o de seguridad, y causar fallos inesperados. Es un problema común que a menudo se descubre demasiado tarde. Una alerta temprana te da tiempo para liberar espacio o escalar el almacenamiento.

Uso de red

Picos inusuales de tráfico de red pueden indicar un ataque, una configuración errónea o un proceso descontrolado que está consumiendo ancho de banda. Monitorizar la red te ayuda a identificar anomalías y a reaccionar rápidamente para proteger tu servidor y tus aplicaciones.

Uptime de servicios clave

Lo más obvio, pero no por ello menos importante: la disponibilidad de tu sitio web o tus servicios. Si tu web no está accesible, el problema es real y te está costando dinero. Una comprobación externa de uptime es necesaria para saber si el servidor responde a las peticiones desde internet.

Cómo montar un sistema de alertas básico y fiable

Para la monitorización básica, mi herramienta favorita es un script de Bash ejecutado por cron. Es simple, ligero y no introduce dependencias externas complejas en tu servidor.

Este script revisa el uso de CPU, RAM y disco, y genera un mensaje si alguno de los umbrales se supera. Lo guardaremos como /usr/local/bin/check_vps_status.sh y le daremos permisos de ejecución.

#!/bin/bash

# Umbrales (ajusta según tus necesidades)
CPU_THRESHOLD=85
RAM_THRESHOLD=90
DISK_THRESHOLD=90

# Obtener métricas
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}' | cut -d'.' -f1)
RAM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}' | cut -d'.' -f1)
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')

ALERT_MESSAGE=""

if (( CPU_USAGE > CPU_THRESHOLD )); then
  ALERT_MESSAGE+="ALERTA: Uso de CPU ${CPU_USAGE}% (umbral: ${CPU_THRESHOLD}%).\n"
fi

if (( RAM_USAGE > RAM_THRESHOLD )); then
  ALERT_MESSAGE+="ALERTA: Uso de RAM ${RAM_USAGE}% (umbral: ${RAM_THRESHOLD}%).\n"
fi

if (( DISK_USAGE > DISK_THRESHOLD )); then
  ALERT_MESSAGE+="ALERTA: Uso de Disco ${DISK_USAGE}% (umbral: ${DISK_THRESHOLD}%).\n"
fi

# Aquí se integrará la llamada a Telegram
if [ -n "$ALERT_MESSAGE" ]; then
  echo -e "$ALERT_MESSAGE"
fi

Luego, lo ejecutas cada cinco minutos con cron. Edita tu crontab con crontab -e y añade la siguiente línea:

*/5 * * * * /usr/local/bin/check_vps_status.sh >> /var/log/vps_monitor.log 2>&1

Esta monitorización es una capa más de seguridad, complementando herramientas como Fail2ban en un VPS para protección básica contra fuerza bruta.

Alertas en Telegram: práctica y directa

Para recibir alertas directamente en tu móvil, Telegram es la opción más sencilla y fiable. Necesitas crear un bot y obtener tu ID de chat. Es un proceso de dos minutos que te da control total sobre tus notificaciones.

Primero, habla con @BotFather en Telegram para crear un nuevo bot y obtener su token (tendrá el formato 123456:ABC-DEF1234ghIkl-799890). Luego, envía un mensaje a tu nuevo bot y reenvíalo a @get_id_bot para obtener tu ID de chat (un número como 123456789).

Con esos datos, puedes modificar el script anterior para enviar la alerta directamente a tu chat de Telegram.

#!/bin/bash

# ... (código del script anterior para umbrales y métricas) ...

TELEGRAM_BOT_TOKEN="TU_TOKEN_DE_BOT_TELEGRAM" # Reemplaza con tu token
TELEGRAM_CHAT_ID="TU_ID_DE_CHAT_TELEGRAM"   # Reemplaza con tu ID de chat

if [ -n "$ALERT_MESSAGE" ]; then
  curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
    -d "chat_id=${TELEGRAM_CHAT_ID}" \
    -d "text=$(echo -e "$ALERT_MESSAGE" | sed 's/\\n/%0A/g')"
fi

# También puedes añadir una comprobación de uptime externa
# Para sitios web, una comprobación simple con curl:
# if ! curl -s --head --request GET https://tudominio.com | grep "200 OK" > /dev/null; then
#   curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
#     -d "chat_id=${TELEGRAM_CHAT_ID}" \
#     -d "text=ALERTA: Tu sitio web https://tudominio.com no responde."
# fi

Recuerda reemplazar TU_TOKEN_DE_BOT_TELEGRAM y TU_ID_DE_CHAT_TELEGRAM con tus valores reales. Con esto, cualquier incidencia que supere los umbrales definidos te llegará directamente al móvil.

El tradeoff honesto de la monitorización básica

La monitorización básica con scripts tiene sus límites, pero ofrece un equilibrio excelente entre coste y beneficio para un VPS individual o una infraestructura pequeña.

Lo que ganas:

  • Paz mental: Sabes que serás el primero en enterarte si algo crítico falla en tu VPS.
  • Prevención de caídas: Las alertas tempranas te dan tiempo para actuar antes de que un problema menor se convierta en una caída total.
  • Reacción rápida: Recibes notificaciones directas en un canal que revisas constantemente, permitiendo una intervención inmediata.
  • Simplicidad y control: No dependes de servicios externos ni de dashboards complejos, todo está bajo tu control.

Lo que complicas:

  • Falta de histórico y visualización: No tendrás gráficos ni registros históricos fáciles de consultar para analizar tendencias a largo plazo.
  • Mantenimiento manual: Los umbrales y las comprobaciones deben ajustarse manualmente en los scripts si tus necesidades cambian.
  • Escalabilidad limitada: Para una infraestructura con muchos servidores, este enfoque se vuelve tedioso y menos eficiente que una solución centralizada.
  • No es proactivo al 100%: Solo te avisa cuando el problema ya está ocurriendo, no predice fallos inminentes.

Si en un futuro necesitas ir más allá y detectar patrones complejos en tus logs o métricas, la IA para analizar logs y detectar anomalías en tu servidor es el siguiente paso natural. La monitorización es solo una parte de la gestión de un VPS. Para asegurar la integridad de tus datos, es necesario tener una estrategia de backups automáticos en un VPS que funcione y esté verificada. Y si tus recursos actuales se quedan cortos, entender cuándo escalar verticalmente o cuándo añadir otro VPS te ayudará a tomar la decisión correcta.

Lucas Juárez
Lucas Juárez

Técnico freelance especializado en desarrollo a medida, automatizaciones con IA y gestión técnica para negocios en España. Más sobre mí →

Compartir:

¿Necesitas que alguien se ocupe de tu web?

Me encargo de que tu web funcione, esté segura y actualizada. Backups, actualizaciones y soporte directo. Planes desde 49 €/mes.

Chat