Skip to content

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»

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.


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.

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

Prometheus utiliza un modelo de tipo pull:

  1. Prometheus consulta endpoints /metrics
  2. recolecta datos periódicamente
  3. almacena en una base de datos temporal (TSDB)

Ejemplo de métrica:

node_cpu_seconds_total{mode="idle"} 12345.67

Modelo pull simplifica escalabilidad y evita configuraciones complejas en nodos.


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 → Prometheus

Grafana permite:

  • construir dashboards
  • visualizar métricas en tiempo real
  • correlacionar datos

Tipos de visualización:

  • gráficas de línea
  • histogramas
  • gauges

Prometheus utiliza reglas:

- alert: HighCPU
expr: cpu_usage > 80
for: 5m

Alertmanager:

  • agrupa alertas
  • evita duplicados
  • envía notificaciones (email, Slack, etc.)

Diferencia clave:

  • métricas → datos numéricos agregados
  • logs → eventos detallados

Ambos sistemas deben coexistir.


Implementar un sistema básico de monitoreo:

  • recolectar métricas del sistema
  • visualizarlas en Grafana
  • validar funcionamiento

Ventana de terminal
sudo apt update
sudo apt install prometheus

Ventana de terminal
systemctl status prometheus

Prometheus por defecto escucha en:

http://localhost:9090

Ventana de terminal
sudo apt install prometheus-node-exporter

Verificar:

Ventana de terminal
curl http://localhost:9100/metrics

Editar:

Ventana de terminal
/etc/prometheus/prometheus.yml

Añadir:

scrape_configs:
- job_name: "node"
static_configs:
- targets: ["localhost:9100"]

Reiniciar servicio:

Ventana de terminal
systemctl restart prometheus

Acceder a Prometheus:

http://localhost:9090

Consulta básica:

node_cpu_seconds_total

Ventana de terminal
sudo apt install grafana

Arrancar servicio:

Ventana de terminal
systemctl start grafana-server
systemctl enable grafana-server

Acceso:

http://localhost:3000

Credenciales por defecto:

admin / admin

En Grafana:

  1. Añadir datasource → Prometheus
  2. URL:
http://localhost:9090

Ejemplo:

  • CPU usage
  • memoria
  • disco

Sistema funcional con:

  • Prometheus recolectando métricas
  • Grafana mostrando dashboards
  • métricas actualizadas en tiempo real

connection refused

-Solución:*

Ventana de terminal
systemctl status prometheus-node-exporter

-Causa:*

configuración incorrecta.

-Solución:*

Ventana de terminal
journalctl -u prometheus

-Causa:*

datasource incorrecto.


Ventana de terminal
ss -tulnp

Verificar puertos 9090, 3000, 9100.


Esperar intervalo de scraping (por defecto 15s).


Elegir métricas relevantes:

  • CPU
  • latencias
  • errores

Evitar ruido innecesario.


  • por servicio
  • por capa (infraestructura, aplicación)

Evitar alert fatigue:

  • definir umbrales realistas
  • alertas accionables

Configurar almacenamiento:

  • no almacenar datos indefinidamente
  • ajustar según necesidades

Prometheus en HA:

  • replicación
  • almacenamiento remoto

  • limitar acceso a endpoints /metrics
  • autenticación en Grafana

Permiten segmentar métricas:

instance="web1"
env="prod"

  • email
  • Slack
  • PagerDuty

Versionar:

  • dashboards
  • reglas
  • configuraciones

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.