Como administradores de sistemas, sé que no basta con “sentir” que el internet va lento. Necesitamos datos, históricos y alertas. Usar una web de test de velocidad está bien para una comprobación puntual, pero si quieres tener un control real sobre tu conexión, necesitas una solución propia.
Hoy vamos a desplegar MySpeed, una fantástica herramienta self-hosted para monitorizar de forma continua la velocidad de nuestra red. Y por supuesto, lo haremos como nos gusta: con Docker, y lo integraremos con un stack de monitoreo profesional como Prometheus y Grafana. Esta es una excelente alternativa a Speedtest para servidor que te da control total.
¿Por Qué Desplegar tu Propio Monitor de Velocidad?
Antes de entrar en materia, ¿por qué tomarse esta molestia?
- Historial de Datos: Detecta patrones y caídas de servicio de tu ISP.
- Privacidad: Los datos de tu conexión se quedan en tu servidor, no en el de un tercero.
- Alertas Automatizadas: Recibe notificaciones si la velocidad cae por debajo de un umbral.
- Control Total: Personaliza cuándo, cómo y contra qué servidor se realizan las pruebas.
MySpeed: La Herramienta de Monitoreo Definitiva
MySpeed es una solución para realizar pruebas de velocidad de la conexión a internet con una visualización de datos intuitiva. Permite a los usuarios medir la velocidad de descarga (download), la velocidad de subida (upload) y la latencia (ping) de su conexión.
Dispone de un panel de control (dashboard) sencillo y una API para la integración con Prometheus. Es una de las mejores opciones para implementar un monitor de velocidad de internet self-hosted.
- Sitio web del proyecto: myspeed.dev
- Repositorio del proyecto: github.com/gnmyt/myspeed
Funciones principales de MySpeed
- Medición de velocidad: velocidad de descarga, velocidad de subida, ping.
- Historial de pruebas: almacenamiento de los resultados de pruebas anteriores para su comparación.
- Selección de proveedor para mediciones: Speedtest by Ookla, LibreSpeed, Cloudflare.
- Geolocalización de servidores: capacidad para seleccionar un servidor para las pruebas de velocidad.
- Configuración de la frecuencia de las mediciones.
- Notificaciones: posibilidad de configurar notificaciones vía Telegram, Discord, WhatsApp, Gotify, Email, Signal o Webhooks, entre otros.
Paso 1: Ejecución de MySpeed con Docker
La forma más sencilla y limpia de ejecutar MySpeed es a través de Docker. Si aún no lo tienes, puedes seguir mi guía para instalar Docker en Ubuntu. Crea un directorio para el proyecto y, dentro, un archivo docker-compose.yml con el siguiente contenido. Este es el método recomendado para un despliegue con myspeed docker compose.
---
services:
myspeed:
image: germannewsmaker/myspeed
container_name: myspeed
ports:
- 5216:5216
volumes:
- ./myspeed:/myspeed/data
restart: unless-stoppedTras guardarlo, levantamos el contenedor con:
docker-compose up -dUna vez iniciado, abre tu navegador y accede a la dirección http://<IP_DE_TU_SERVIDOR>:5216. El puerto por defecto de MySpeed es el 5216. Verás el panel de control de MySpeed y podrás proceder a su configuración inicial. Si te preguntas cómo configurar MySpeed, este es el primer paso.
NOTA TÉCNICA
Si necesitas encontrar los identificadores de los servidores más cercanos para la configuración, puedes utilizar herramientas para el procesamiento de JSON, como por ejemplo
jq.curl -s https://www.speedtest.net/api/js/servers?engine=js | jq '.[] | select(.country == "Spain") | {name, host, country, id}'Esta API no oficial de speedtest.net puede cambiar o dejar de funcionar en cualquier momento (aunque sigue operativa al día de hoy). Alternativamente, MySpeed permite seleccionar servidores manualmente desde su interfaz o configurar IDs específicos en las settings.
Paso 2: Integración con Prometheus y Grafana
Aquí es donde la magia ocurre. Vamos a conectar nuestra nueva herramienta a un stack de monitoreo profesional. Esto es clave para monitorizar la velocidad con Prometheus.
Configuración de Prometheus
MySpeed proporciona por defecto métricas en un formato compatible con Prometheus a través de la API en la ruta: /api/prometheus/metrics. Para configurar la recolección de datos, añade el siguiente job a tu archivo prometheus.yml:
- job_name: 'myspeed'
scrape_interval: 1m
scrape_timeout: 8s
metrics_path: /api/prometheus/metrics
static_configs:
- targets: ['myspeed:5216'] # O la IP de tu servidor si no están en la misma red DockerRecuerda reiniciar Prometheus para que aplique los cambios.
Monitoreo en Grafana
Para la visualización de datos en Grafana, no necesitamos reinventar la rueda. Utilizaremos el excelente dashboard que la comunidad de MySpeed ya ha creado. Así tendrás tu dashboard de myspeed grafana listo en segundos.
- En tu instancia de Grafana, ve a
Dashboards->Import. - Introduce el ID del dashboard:
21647y haz clic enLoad. Puedes encontrarlo también en la web oficial de dashboards de Grafana. - Selecciona tu datasource de Prometheus y finaliza la importación.
Una herramienta de control indispensable
¡Y listo! En menos de 15 minutos hemos desplegado MySpeed y configurado la integración con Grafana y Prometheus para el monitoreo de la conexión a internet. Esta es una herramienta indispensable en el arsenal de cualquier SysAdmin o entusiasta de la tecnología que quiera tener un control real sobre su infraestructura.
Ahora tienes los datos para demostrarle a tu ISP si no está cumpliendo con lo prometido. Ya sea en un servidor físico o en una VM con MySpeed Proxmox, el procedimiento es igual de sencillo.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.