jueves

🟢 DEMOSTRACIÓN: Monitorización de sistemas con InfluxDB + Telegraf (Flux)

🧪 ENTORNO DE PRUEBAS:

  • Entorno virtualizado con VMware Workstation 17.5.2
  • Dos máquinas virtuales: Linux y Windows 10

🔧 ¿QUÉ INSTALAMOS?

  • InfluxDB (versión 2.x, con soporte para Flux)
  • Telegraf como agente para recopilar métricas

🎯 OBJETIVO:

  • Monitorizar métricas de dos equipos: Linux (local) y Windows 10 (remoto)
  • Visualizarlas en InfluxDB y Grafana

📌 ¿Qué es Telegraf y para qué sirve?

  • Agente ligero instalado en el equipo que quieres monitorizar
  • Recopila métricas del sistema: CPU, memoria, disco, red, etc.
  • Configurado con archivo telegraf.conf
  • Funciona en segundo plano enviando datos a InfluxDB
  • Permite análisis y visualización con InfluxDB o Grafana

📌 ¿Qué es InfluxDB?

  • Base de datos especializada en series temporales
  • Recibe y almacena métricas de Telegraf
  • Permite visualizar métricas con gráficos y paneles

=============================
📊 ¿QUÉ ES UNA BASE DE DATOS DE SERIES TEMPORALES?
=============================

➡️ Diseñada para almacenar datos con marca temporal.

Ejemplos:

  • Uso de CPU o memoria
  • Temperatura de sensores
  • Eventos del sistema

⚡ Ventajas:

  • Almacenamiento rápido de grandes volúmenes
  • Análisis temporal de datos
  • Detección de patrones o anomalías

🖥️ EQUIPO LOCAL: LINUX

  • Telegraf desde repositorio oficial
  • Plugins: cpu, mem, disk, net
  • Config: /etc/telegraf/telegraf.conf
  • Salida: InfluxDB local

🪟 EQUIPO REMOTO: WINDOWS 10

  • Telegraf como servicio
  • Config: C:\Program Files\Telegraf\telegraf.conf
  • Plugins: mismos que en Linux
  • Salida: IP del servidor InfluxDB

📦 INSTALACIÓN DE INFLUXDB EN UBUNTU 22.04

  1. Añadir la clave GPG (todo en una sola linea):
    wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key \  
    | sudo gpg --dearmor -o /usr/share/keyrings/influxdata-archive_compat.gpg
  2. Añadir el repositorio (todo en una sola linea):
    echo "deb [signed-by=/usr/share/keyrings/influxdata-archive_compat.gpg] \
    https://repos.influxdata.com/ubuntu jammy stable" \
    | sudo tee /etc/apt/sources.list.d/influxdata.list
  3. Instalar:
    sudo apt update
    sudo apt install influxdb2
  4. Habilitar e iniciar:
    sudo systemctl enable influxdb
    sudo systemctl start influxdb

📍 Acceso: http://localhost:8086

🚨 Conflicto con Apache:

  • Modificar puertos de InfluxDB o Apache
  • Ver puertos ocupados:
    sudo netstat -tuln | grep :80
    sudo ss -tuln | grep :80

📡 INSTALACIÓN DE TELEGRAF EN UBUNTU 22.04

⚠️ Telegraf se instala por separado.

  1. Clave GPG (todo en una sola linea):
    wget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | 
          sudo gpg --dearmor -o /usr/share/keyrings/influxdata-archive_compat.gpg
  2. Repositorio (todo en una sola linea):
    echo "deb [signed-by=/usr/share/keyrings/influxdata-archive_compat.gpg] 
          https://repos.influxdata.com/ubuntu jammy stable" | 
          sudo tee /etc/apt/sources.list.d/influxdata.list
  3. Instalación:
    sudo apt update
    sudo apt install telegraf
  4. Habilitar e iniciar:
    sudo systemctl enable telegraf
    sudo systemctl start telegraf

📂 Config: /etc/telegraf/telegraf.conf


🔍 CONSULTAS EN INFLUXDB

📚 INFLUXDB Y SUS LENGUAJES DE CONSULTA

  • ✅ InfluxDB 1.x
    • Lenguaje principal: InfluxQL
    • Sintaxis muy parecida a SQL
    • Ejemplo:
    SELECT mean("value") FROM "cpu_load"
    WHERE time > now() - 1h
    GROUP BY time(10m)
        
  • ✅ InfluxDB 2.x
    • Lenguaje principal: Flux
    • Más potente y flexible que InfluxQL
    • Permite transformaciones, joins, condicionales, múltiples fuentes, etc.
    • Ejemplo:
    from(bucket: "mi_bucket")
      |> range(start: -1h)
      |> filter(fn: (r) => r._measurement == "cpu_load")
      |> mean()
        
  • ✅ InfluxDB 3.x
    • Nuevo motor de almacenamiento (Apache Arrow + DataFusion)
    • Lenguaje de consulta más moderno: SQL nativo
    • Sintaxis basada en SQL estándar
    • Alta compatibilidad con herramientas de análisis modernas
    • Ejemplo:
    SELECT MEAN(value)
    FROM cpu_load
    WHERE time > NOW() - INTERVAL '1 hour'
    GROUP BY TIME_BUCKET('10 minutes', time)
        

📌 NOTA:
- Flux no está disponible en InfluxDB 3.x.
- InfluxQL clásico tampoco es compatible directamente en la versión 3.x.
- InfluxDB 3.x está más orientado a análisis avanzado y alto rendimiento en la nube.


📊 VISUALIZACIÓN EN GRAFANA

  • Importar datasource InfluxDB
  • Crear dashboards personalizados
  • Variables para filtrar por sistema operativo o hostname

🎯 CONCLUSIÓN:

  • Telegraf es un agente que recopila métricas del sistema y aplicaciones según la configuración definida.
  • InfluxDB es una base de datos especializada en series temporales donde se almacenan estas métricas.
  • Las métricas recopiladas pueden visualizarse fácilmente en herramientas como InfluxDB o Grafana, permitiendo la creación de dashboards personalizados para un análisis efectivo.