Ir al contenido

Stack TIG

TIG es el stack de monitoreo IoT más popular en laboratorios, proyectos académicos y empresas medianas. Combina tres herramientas de código abierto que se integran perfectamente y cubren todo el pipeline de datos.

T elegraf → I nfluxDB → G rafana
(recolecta) (almacena) (visualiza)

Telegraf es un agente de recolección de métricas desarrollado por InfluxData. Corre como un proceso en segundo plano y recopila datos de prácticamente cualquier fuente.

Características clave:

  • Más de 300 plugins de entrada (MQTT, HTTP, Modbus, GPIO, bases de datos, APIs de nube, archivos, etc.)
  • Más de 50 plugins de salida (InfluxDB, Prometheus, Kafka, archivos, etc.)
  • Configuración declarativa con un archivo .conf (formato TOML)
  • Muy bajo consumo de recursos (~20 MB de RAM)
  • Transformaciones de datos antes de enviarlos (filtros, etiquetas, conversiones de unidades)

Ejemplo de flujo Telegraf:

[Sensor MQTT] ──→ [inputs.mqtt_consumer] ──→ [outputs.influxdb_v2] ──→ [InfluxDB]
[CPU del host] ──→ [inputs.cpu] ──→
[Disco] ──→ [inputs.disk] ──→

InfluxDB — La base de datos de series de tiempo

Sección titulada «InfluxDB — La base de datos de series de tiempo»

InfluxDB es una base de datos diseñada específicamente para series de tiempo. La versión 2.x incluye su propio lenguaje de consulta llamado Flux y una UI web integrada.

Conceptos de InfluxDB:

ConceptoEquivalente SQLDescripción
BucketBase de datosContenedor de datos con política de retención
MeasurementTablaNombre lógico del dato (ej: temperatura)
FieldColumna de valorEl dato numérico en sí (ej: value: 23.5)
TagColumna indexadaMetadato para filtrar/agrupar (ej: sensor: "ESP32-01")
TimestampSiempre presente, es el eje del tiempo

Ejemplo de punto de datos:

temperatura,sensor=ESP32-01,ubicacion=sala value=23.5 1706745600000000000
│ │ │ │
measurement tags (indexados) field timestamp (nanosegundos)

Características clave:

  • Retención automática de datos (configurable por bucket)
  • Downsampling: reducir la resolución de datos antiguos para ahorrar espacio
  • UI web en http://localhost:8086 para explorar datos y escribir consultas Flux
  • API HTTP para escritura y consulta desde cualquier lenguaje

Grafana es la plataforma de visualización y observabilidad más popular del mundo open source. Se conecta a más de 100 fuentes de datos distintas.

Características clave:

  • Miles de dashboards preconstruidos en grafana.com/grafana/dashboards (importables por ID)
  • Soporte para múltiples fuentes de datos simultáneas en un mismo dashboard
  • Sistema de alertas integrado con soporte para email, Slack, Telegram, PagerDuty, webhooks y más
  • Anotaciones: marca eventos en las gráficas (ej: “se reinició el servidor”)
  • Gestión de usuarios y permisos (teams, organizaciones)
  • Plugins de paneles: gauge, stat, mapa de calor, mapa geográfico, tabla, etc.

┌─────────────────────────────────────────────────────────┐
│ RED DOCKER │
│ │
│ [Sensor IoT] │
│ │ MQTT │
│ ▼ │
│ ┌─────────┐ métricas ┌──────────┐ Flux query │
│ │Telegraf │ ───────────→ │ InfluxDB │ ←───────────── │
│ └─────────┘ └──────────┘ │
│ ▲ │
│ │ query │
│ ┌─────────┐ │
│ │ Grafana │ │
│ └─────────┘ │
│ │ │
└──────────────────────────────────────────────┼──────────┘
http://localhost:3000
[Tu navegador]

  • Madurez y comunidad: Grafana + InfluxDB tienen más de 10 años de desarrollo activo y millones de usuarios
  • Dashboards listos para usar: importar un dashboard con ID desde grafana.com lleva menos de 1 minuto
  • Telegraf cubre casi todo: con 300+ plugins, prácticamente cualquier fuente de datos tiene soporte
  • Escalable: funciona desde una Raspberry Pi hasta clústeres de producción
  • Multi-fuente en Grafana: puedes mezclar datos de InfluxDB, Prometheus, MySQL y más en un dashboard
  • Alertas sin herramientas adicionales: Grafana incluye un motor de alertas completo
  • Bajo consumo base: el stack completo corre en ~500 MB de RAM
  • Documentación extensa: miles de tutoriales, videos y foros disponibles

  • Curva de aprendizaje de Flux: el lenguaje de consulta Flux de InfluxDB 2.x es poderoso pero diferente a SQL; requiere tiempo de adaptación
  • Configuración de Telegraf: el archivo telegraf.conf puede volverse complejo para fuentes de datos avanzadas
  • Grafana no persiste datos: si InfluxDB falla, Grafana no puede mostrar nada; no hay capa de caché
  • InfluxDB 2.x vs 1.x: hay dos versiones incompatibles con diferente sintaxis (InfluxQL vs Flux), lo que puede generar confusión
  • Telegraf no tiene interfaz gráfica: toda la configuración es por archivo de texto
  • No apto para principiantes absolutos: requiere entender al menos la estructura básica de Docker y TOML

TIG es la mejor elección cuando:

  • Necesitas almacenar datos de sensores a largo plazo (días, meses, años)
  • Quieres dashboards profesionales con múltiples paneles y fuentes de datos
  • Tu equipo tiene experiencia básica con Docker y configuración de servicios
  • Necesitas alertas integradas sin herramientas adicionales
  • Manejas múltiples tipos de fuentes de datos (MQTT, HTTP, Modbus, archivos)
  • El proyecto tiene más de 1–2 personas trabajando en él

Considera otras opciones si:

  • Eres principiante absoluto → empieza con Node-RED
  • Necesitas alertas muy complejas y procesamiento de streams → considera TICK
  • Trabajas con Kubernetes o cloud-native → considera TPG o VictoriaMetrics

Aprende a levantar el stack TIG paso a paso en el Tutorial TIG Stack.