Monitoreo
This content is not available in your language yet.
11.2 Monitoreo en Linux: Sistemas Centralizados y Alerting
Sección titulada «11.2 Monitoreo en Linux: Sistemas Centralizados y Alerting»Introducción
Sección titulada «Introducción»La observabilidad moderna no puede depender de la ejecución manual de comandos como top o iostat. En entornos productivos, donde existen múltiples servidores, servicios distribuidos y cargas dinámicas, es imprescindible contar con sistemas centralizados de monitoreo.
El monitoreo permite recolectar, almacenar, visualizar y alertar sobre métricas del sistema en tiempo real. Herramientas como Prometheus y Grafana se han convertido en el estándar de facto para gestionar la salud de infraestructuras modernas.
Para un Sysadmin senior, el monitoreo no consiste solo en ver gráficos, sino en diseñar un sistema que permita detectar anomalías, anticipar fallos y automatizar respuestas operativas.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»Al finalizar este capítulo serás capaz de:
- Comprender la arquitectura de un sistema de monitoreo moderno.
- Implementar Prometheus para recolectar métricas.
- Visualizar datos con Grafana.
- Configurar alertas proactivas.
- Diseñar una estrategia de monitoreo escalable.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. ¿Qué es el monitoreo centralizado?
Sección titulada «1. ¿Qué es el monitoreo centralizado?»El monitoreo centralizado consiste en:
- recolectar métricas de múltiples sistemas
- almacenarlas en una base de datos
- analizarlas y visualizarlas
- generar alertas automáticas
Componentes principales:
- exporters → recolectan métricas
- collector (Prometheus) → las almacena
- visualización (Grafana) → las muestra
- alertmanager → gestiona alertas
2. Modelo de Prometheus
Sección titulada «2. Modelo de Prometheus»Prometheus utiliza un modelo de tipo pull:
- Prometheus consulta endpoints
/metrics - recolecta datos periódicamente
- almacena en una base de datos temporal (TSDB)
Ejemplo de métrica:
node_cpu_seconds_total{mode="idle"} 12345.67Modelo pull simplifica escalabilidad y evita configuraciones complejas en nodos.
3. Exporters
Sección titulada «3. Exporters»Los exporters exponen métricas del sistema:
- node_exporter → sistema (CPU, RAM, disco)
- mysql_exporter → bases de datos
- nginx_exporter → servidores web
Funcionamiento:
host → exporter → endpoint HTTP → Prometheus4. Grafana
Sección titulada «4. Grafana»Grafana permite:
- construir dashboards
- visualizar métricas en tiempo real
- correlacionar datos
Tipos de visualización:
- gráficas de línea
- histogramas
- gauges
5. Alerting
Sección titulada «5. Alerting»Prometheus utiliza reglas:
- alert: HighCPU expr: cpu_usage > 80 for: 5mAlertmanager:
- agrupa alertas
- evita duplicados
- envía notificaciones (email, Slack, etc.)
6. Métricas vs logs
Sección titulada «6. Métricas vs logs»Diferencia clave:
- métricas → datos numéricos agregados
- logs → eventos detallados
Ambos sistemas deben coexistir.
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Implementar un sistema básico de monitoreo:
- recolectar métricas del sistema
- visualizarlas en Grafana
- validar funcionamiento
Parte 1: Instalar Prometheus
Sección titulada «Parte 1: Instalar Prometheus»sudo apt updatesudo apt install prometheusVerificar servicio
Sección titulada «Verificar servicio»systemctl status prometheusPrometheus por defecto escucha en:
http://localhost:9090Parte 2: Instalar Node Exporter
Sección titulada «Parte 2: Instalar Node Exporter»sudo apt install prometheus-node-exporterVerificar:
curl http://localhost:9100/metricsParte 3: Configurar Prometheus
Sección titulada «Parte 3: Configurar Prometheus»Editar:
/etc/prometheus/prometheus.ymlAñadir:
scrape_configs: - job_name: "node" static_configs: - targets: ["localhost:9100"]Reiniciar servicio:
systemctl restart prometheusParte 4: Consultar métricas
Sección titulada «Parte 4: Consultar métricas»Acceder a Prometheus:
http://localhost:9090Consulta básica:
node_cpu_seconds_totalParte 5: Instalar Grafana
Sección titulada «Parte 5: Instalar Grafana»sudo apt install grafanaArrancar servicio:
systemctl start grafana-serversystemctl enable grafana-serverAcceso:
http://localhost:3000Credenciales por defecto:
admin / adminParte 6: Configurar datasource
Sección titulada «Parte 6: Configurar datasource»En Grafana:
- Añadir datasource → Prometheus
- URL:
http://localhost:9090Parte 7: Crear dashboard
Sección titulada «Parte 7: Crear dashboard»Ejemplo:
- CPU usage
- memoria
- disco
Output esperado
Sección titulada «Output esperado»Sistema funcional con:
- Prometheus recolectando métricas
- Grafana mostrando dashboards
- métricas actualizadas en tiempo real
Errores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. Exporter no accesible
Sección titulada «1. Exporter no accesible»connection refused-Solución:*
systemctl status prometheus-node-exporter2. Prometheus no recolecta datos
Sección titulada «2. Prometheus no recolecta datos»-Causa:*
configuración incorrecta.
-Solución:*
journalctl -u prometheus3. Grafana sin datos
Sección titulada «3. Grafana sin datos»-Causa:*
datasource incorrecto.
4. Puerto bloqueado
Sección titulada «4. Puerto bloqueado»ss -tulnpVerificar puertos 9090, 3000, 9100.
5. Métricas vacías
Sección titulada «5. Métricas vacías»Esperar intervalo de scraping (por defecto 15s).
Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Diseño de métricas
Sección titulada «1. Diseño de métricas»Elegir métricas relevantes:
- CPU
- latencias
- errores
Evitar ruido innecesario.
2. Dashboards estructurados
Sección titulada «2. Dashboards estructurados»- por servicio
- por capa (infraestructura, aplicación)
3. Alertas útiles
Sección titulada «3. Alertas útiles»Evitar alert fatigue:
- definir umbrales realistas
- alertas accionables
4. Retención de datos
Sección titulada «4. Retención de datos»Configurar almacenamiento:
- no almacenar datos indefinidamente
- ajustar según necesidades
5. Alta disponibilidad
Sección titulada «5. Alta disponibilidad»Prometheus en HA:
- replicación
- almacenamiento remoto
6. Seguridad
Sección titulada «6. Seguridad»- limitar acceso a endpoints
/metrics - autenticación en Grafana
7. Etiquetas (labels)
Sección titulada «7. Etiquetas (labels)»Permiten segmentar métricas:
instance="web1"env="prod"8. Integración con alerting externo
Sección titulada «8. Integración con alerting externo»- Slack
- PagerDuty
9. Infraestructura como código
Sección titulada «9. Infraestructura como código»Versionar:
- dashboards
- reglas
- configuraciones
Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»Has aprendido a implementar un sistema de monitoreo centralizado utilizando Prometheus y Grafana, comprendiendo cómo recolectar, almacenar y visualizar métricas en tiempo real. Este enfoque es esencial para operar infraestructuras modernas con visibilidad completa.
Sin embargo, las métricas por sí solas no explican todos los comportamientos del sistema. Para un diagnóstico completo, es necesario complementar con análisis detallado de eventos.
➡️ Siguiente tema: 11.3 Troubleshooting — Diagnóstico avanzado y resolución de problemas en sistemas Linux.
