Por qué auto-alojar Prometheus y Grafana en un VPS
A diferencia de una herramienta todo en uno, la stack Prometheus + Grafana separa con claridad la recopilación (Prometheus hace scrape de las métricas expuestas por los exporters), el almacenamiento (base de series temporales) y la visualización (Grafana). Esa modularidad es precisamente lo que la convierte en un estándar: supervisa el propio VPS con Node Exporter, sus contenedores con cAdvisor, su base PostgreSQL o MySQL con el exporter correspondiente, e instrumenta sus propias aplicaciones en formato Prometheus. Todo ello en un VPS que usted controla, lo que le evita enviar métricas de infraestructura sensibles a un SaaS facturado por ingesta. Conserva el historial tanto tiempo como se lo permita el disco, construye paneles específicos para su stack y define sus propias reglas de alerta con Alertmanager. Es el enfoque recomendado cuando va más allá del simple «¿responde el sitio?» para entrar en el análisis fino de las tendencias de carga.
Lo que esta stack aporta a su VPS
- Métricas de sistema detalladas (CPU, RAM, E/S de disco, red) con Node Exporter, con historial a largo plazo.
- Supervisión de los contenedores Docker con cAdvisor: consumo por contenedor en tiempo real.
- Paneles Grafana a medida, importables desde una biblioteca comunitaria de miles de plantillas.
- Alertas potentes con Alertmanager: umbrales, agrupación, silencios y enrutado multicanal.
- Lenguaje de consulta PromQL para crear indicadores derivados y tasas de evolución.
- Instrumentación de sus propias aplicaciones en formato Prometheus, sin coste de ingesta externo.
Requisitos previos para alojarla
Esta stack es más exigente que un monitor simple, porque Prometheus mantiene las series temporales en memoria antes de escribirlas en disco. Calcule un VPS de 2 vCPU y de 2 a 4 GB de RAM para supervisar de uno a varios servidores, y más si multiplica los exporters y la frecuencia de scrape. El almacenamiento es el punto clave: prevea de 20 a 40 GB de disco según la duración de retención (--storage.tsdb.retention.time). Necesita Docker y Docker Compose, un nombre de dominio para exponer Grafana en HTTPS, y un reverse proxy. Mantenga Prometheus sin exposición pública: solo Grafana debe ser accesible desde el exterior.
Desplegar la stack Prometheus + Grafana con Docker Compose
Escribir el archivo docker-compose.yml
Defina tres servicios:
prometheus,grafanaynode-exporter. Monte unprometheus.ymlde configuración y volúmenes con nombre para persistir los datos (prometheus_data,grafana_data). Lance despuésdocker compose up -d.Configurar los objetivos en prometheus.yml
En la sección
scrape_configs, añada un jobnodeque apunte anode-exporter:9100para las métricas de sistema, y un jobcadvisorsi supervisa Docker. Recargue condocker compose restart prometheus.Conectar Grafana con Prometheus
Abra Grafana y añada un origen de datos de tipo Prometheus con la URL
http://prometheus:9090(nombre del servicio Docker). Pruebe la conexión: debe devolver «Data source is working».Importar paneles listos para usar
Importe el panel Node Exporter Full (ID 1860) y un panel de cAdvisor mediante su identificador. Obtiene al instante gráficas de CPU, memoria, disco y red sin construir nada a mano.
Proteger Grafana detrás de un reverse proxy SSL
Exponga únicamente Grafana con Nginx o Caddy en
grafana.mondomaine.comcon un certificado Let's Encrypt. Bloquee el acceso externo a Prometheus (puerto 9090) en el cortafuegos: solo debe ser accesible desde Grafana.Poner en marcha las alertas
Añada Alertmanager al Compose, defina reglas en Prometheus (por ejemplo, CPU > 90% durante 5 minutos) y enrute las alertas hacia correo electrónico, Slack o Telegram. Compruebe el disparo con una regla de prueba.
Conectarse por primera vez
Grafana se abre en una pantalla de inicio de sesión: introduzca las credenciales de fábrica admin / admin y, acto seguido, Grafana le propone definir una contraseña nueva; hágalo de inmediato, antes de cualquier otra acción.
Vigile el espacio en disco que consume la base de series temporales de Prometheus, que crece con el número de métricas y la frecuencia de scrape. Ajuste --storage.tsdb.retention.time (por ejemplo, 30d) y, si necesita un historial largo sin saturar el VPS, conecte un almacenamiento remoto como Thanos o VictoriaMetrics. En un VPS, pasar el intervalo de scrape de 15s a 30s para las métricas poco críticas también divide por dos el volumen escrito en disco.
La documentación oficial
Para la configuración avanzada y las opciones propias de la herramienta, consulte la documentación oficial de Grafana. Esta guía cubre la puesta en línea en un VPS; la documentación del editor sigue siendo la referencia para los ajustes finos, las actualizaciones mayores y los casos de uso específicos.