🟢 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
- 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
- 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
- Instalar:
sudo apt update sudo apt install influxdb2
- 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.
- 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 - 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 - Instalación:
sudo apt update sudo apt install telegraf
- 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.