InfluxDB es una base de datos de series temporales pensada para métricas, sensores y eventos con marca de tiempo. La versión 2 organiza los datos en buckets con un periodo de retención propio, se consulta con el lenguaje Flux e incluye una interfaz web y un CLI (influx). En este tutorial instalarás InfluxDB 2 en Ubuntu 24.04 desde el repositorio oficial de InfluxData, harás la configuración inicial, escribirás y consultarás datos, recogerás métricas del servidor con Telegraf y harás una copia de seguridad.

Requisitos previos

  • Un servidor con Ubuntu 24.04 LTS de 64 bits con al menos 2 GB de RAM y disco SSD, por ejemplo un VPS de CubePath.
  • Un usuario no root con privilegios sudo.
  • UFW activo si vas a abrir la interfaz web a tu IP.

Paso 1: Añadir el repositorio de InfluxData

InfluxDB 2, su CLI y Telegraf se distribuyen en el mismo repositorio APT. Descarga la clave de firma y comprueba su huella antes de confiar en ella:

curl -fsSL https://repos.influxdata.com/influxdata-archive.key -o /tmp/influxdata-archive.key
gpg --show-keys --with-fingerprint /tmp/influxdata-archive.key
pub   rsa4096 2023-01-18 [SC]
      24C9 75CB A61A 024E E1B6  3178 7C3D 5715 9FC2 F927
uid                      InfluxData Package Signing Key <[email protected]>

La salida puede listar también subclaves. La huella de la clave principal debe ser 24C9 75CB A61A 024E E1B6 3178 7C3D 5715 9FC2 F927, la misma que publica InfluxData en su documentación. Si coincide, conviértela al formato binario de APT y guárdala en /etc/apt/keyrings:

sudo install -d -m 0755 /etc/apt/keyrings
gpg --dearmor < /tmp/influxdata-archive.key | sudo tee /etc/apt/keyrings/influxdata-archive.gpg > /dev/null

Añade el repositorio, firmado con esa clave:

echo 'deb [signed-by=/etc/apt/keyrings/influxdata-archive.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list

Paso 2: Instalar e iniciar InfluxDB

Instala el servidor (influxdb2) y el cliente de línea de comandos (influxdb2-cli), que son paquetes separados:

sudo apt update
sudo apt install influxdb2 influxdb2-cli

Habilita e inicia el servicio:

sudo systemctl enable --now influxdb
sudo systemctl status influxdb --no-pager
● influxdb.service - InfluxDB is an open-source, distributed, time series database
     Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; preset: enabled)
     Active: active (running) since Fri 2026-09-25 10:40:12 UTC; 5s ago

Comprueba que la API responde en el puerto 8086:

influx ping
OK

La configuración del servidor está en /etc/influxdb/config.toml y los datos en /var/lib/influxdb.

Paso 3: Hacer la configuración inicial

Antes de poder usarlo, InfluxDB necesita un usuario administrador, una organización y un primer bucket. Puedes hacerlo desde la interfaz web o con el CLI. Con el CLI, ejecuta influx setup sin argumentos para que te pregunte cada valor y la contraseña no quede en el historial de la shell:

influx setup
> Welcome to InfluxDB 2.0!
? Please type your primary username admin
? Please type your password ****************
? Please type your password again ****************
? Please type your primary organization name cubepath
? Please type your primary bucket name servidores
? Please type your retention period in hours, or 0 for infinite 720
? Setup with these parameters?
  Username:          admin
  Organization:      cubepath
  Bucket:            servidores
  Retention Period:  720h0m0s
 Yes
User	Organization	Bucket
admin	cubepath	servidores

La retención de 720 horas (30 días) hace que InfluxDB borre automáticamente los datos de ese bucket con más de 30 días. Usa una contraseña fuerte: da acceso total a la instancia.

influx setup también crea un token de operador, con permisos sobre todo, y lo guarda en la configuración del CLI en ~/.influxdbv2/configs. Por eso los comandos influx siguientes funcionan sin pasar credenciales. Compruébalo:

influx config list
Active	Name	URL			Org
*	default	http://localhost:8086	cubepath

Trata ese archivo como una contraseña de root y no uses el token de operador en aplicaciones: en el paso 6 crearás tokens con permisos limitados.

Paso 4: Crear buckets con distintas retenciones

Cada bucket tiene su propio periodo de retención, así que lo habitual es separar los datos según cuánto tiempo necesitas conservarlos. Crea un bucket para datos de sensores que se guarden un año:

influx bucket create --name iot --retention 365d

Lista los buckets de la organización:

influx bucket list
ID			Name		Retention	Shard group duration	Organization ID		Schema Type
0f3a9c2b7d4e1a58	_monitoring	168h0m0s	24h0m0s			5b1e8d7c2a9f4e30	implicit
7a2d4e6f8b1c3a59	_tasks		72h0m0s		24h0m0s			5b1e8d7c2a9f4e30	implicit
2c8e1f4a6d9b3e71	iot		8760h0m0s	168h0m0s		5b1e8d7c2a9f4e30	implicit
9e4b2d7a1c6f8e03	servidores	720h0m0s	24h0m0s			5b1e8d7c2a9f4e30	implicit

Los buckets _monitoring y _tasks son internos de InfluxDB. Para cambiar la retención de un bucket existente usa su ID, por ejemplo influx bucket update --id 2c8e1f4a6d9b3e71 --retention 180d.

Paso 5: Escribir y consultar datos

InfluxDB recibe datos en line protocol: medicion,etiqueta=valor campo=valor marca_de_tiempo. Las etiquetas (tags) están indexadas y sirven para filtrar; los campos (fields) son los valores medidos. Escribe dos puntos de temperatura en el bucket iot con marca de tiempo en segundos:

influx write --bucket iot --precision s "temperatura,sensor=s1,sala=almacen valor=21.4 $(date +%s)"
influx write --bucket iot --precision s "temperatura,sensor=s2,sala=oficina valor=23.1 $(date +%s)"

Consulta los datos de la última hora con Flux. Una consulta Flux es una cadena de funciones unidas por |>: se elige el bucket, un rango de tiempo y filtros:

influx query 'from(bucket: "iot")
  |> range(start: -1h)
  |> filter(fn: (r) => r._measurement == "temperatura")
  |> keep(columns: ["_time", "sensor", "_value"])'
Result: _result
Table: keys: [sensor]
 sensor:string                      _time:time                  _value:float
----------------------  ------------------------------  ----------------------------
            s1  2026-09-25T10:45:03.000000000Z                          21.4
Table: keys: [sensor]
 sensor:string                      _time:time                  _value:float
----------------------  ------------------------------  ----------------------------
            s2  2026-09-25T10:45:04.000000000Z                          23.1

Flux devuelve una tabla por cada combinación de etiquetas. Para agregar por intervalos, por ejemplo la media cada 5 minutos, añade aggregateWindow:

influx query 'from(bucket: "iot")
  |> range(start: -24h)
  |> filter(fn: (r) => r._measurement == "temperatura" and r._field == "valor")
  |> aggregateWindow(every: 5m, fn: mean, createEmpty: false)'

Paso 6: Recoger métricas del servidor con Telegraf

Telegraf es el agente de InfluxData para recoger métricas de sistemas y servicios y enviarlas a InfluxDB. Instálalo desde el mismo repositorio:

sudo apt install telegraf

Crea un token que solo pueda escribir en el bucket servidores. Primero obtén el ID del bucket:

BUCKET_ID=$(influx bucket list --name servidores --hide-headers | awk '{print $1}')
echo "$BUCKET_ID"

Crea el token:

influx auth create --org cubepath --write-bucket "$BUCKET_ID" --description "telegraf"

La salida incluye una columna Token con una cadena larga; cópiala. Guárdala en el archivo de entorno que carga el servicio de Telegraf, para no escribirla en la configuración:

sudo nano /etc/default/telegraf
INFLUX_TOKEN=your_telegraf_token

Deja que solo root y Telegraf puedan leerlo:

sudo chown root:telegraf /etc/default/telegraf
sudo chmod 640 /etc/default/telegraf

El telegraf.conf que instala el paquete es muy largo y trae activada una salida para InfluxDB 1.x que aquí no sirve. Guarda una copia y sustitúyelo por una configuración mínima:

sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.orig
sudo nano /etc/telegraf/telegraf.conf
[agent]
  interval = "10s"
  flush_interval = "10s"

[[outputs.influxdb_v2]]
  urls = ["http://127.0.0.1:8086"]
  token = "${INFLUX_TOKEN}"
  organization = "cubepath"
  bucket = "servidores"

[[inputs.cpu]]
  percpu = false
  totalcpu = true

[[inputs.mem]]

[[inputs.disk]]
  ignore_fs = ["tmpfs", "devtmpfs", "overlay", "squashfs"]

[[inputs.system]]

Telegraf sustituye ${INFLUX_TOKEN} por la variable de entorno al arrancar. Prueba los plugins de entrada sin enviar nada a InfluxDB:

telegraf --config /etc/telegraf/telegraf.conf --test --input-filter mem
> mem,host=influx01 active=312459264i,available=1452183552i,available_percent=71.2,...,used_percent=28.8 1790333125000000000

Reinicia Telegraf y comprueba que no hay errores de escritura:

sudo systemctl restart telegraf
sudo journalctl -u telegraf -n 20 --no-pager

Tras unos segundos, consulta el último valor de memoria usada:

influx query 'from(bucket: "servidores")
  |> range(start: -5m)
  |> filter(fn: (r) => r._measurement == "mem" and r._field == "used_percent")
  |> last()'

Si aparece una fila con el porcentaje, Telegraf está enviando métricas.

Paso 7: Acceder a la interfaz web

InfluxDB escucha en todas las interfaces en el puerto 8086. La interfaz web incluye un explorador de datos y paneles, pero no la expongas a Internet: permite el acceso solo desde tu IP (your_ip):

sudo ufw allow from your_ip to any port 8086 proto tcp

Abre http://your_server_ip:8086 en el navegador e inicia sesión con el usuario admin. En Data Explorer puedes construir consultas Flux de forma visual y ver las métricas de Telegraf. Para uso continuado, pon delante un proxy inverso con HTTPS (Nginx o Caddy), ya que el tráfico, incluidos los tokens, va en claro por HTTP.

Paso 8: Hacer copias de seguridad

influx backup copia los datos y los metadatos (usuarios, tokens, buckets) mientras el servidor está en marcha. Necesita el token de operador, que ya está en tu configuración del CLI:

influx backup ~/influx-backups/$(date +%F)
2026/09/25 10:58:21 INFO: Downloading metadata snapshot
2026/09/25 10:58:21 INFO: Backing up TSM for shard 1
...

Para restaurar todo en una instancia nueva, después de instalarla y sin ejecutar influx setup, usa influx restore --full con la ruta de la copia. Copia los backups fuera del servidor y prográmalos con cron o un temporizador systemd.

Solución de problemas

  • Error: failed to load config o unauthorized en los comandos influx: estás usando otro usuario del sistema distinto del que ejecutó influx setup. La configuración del CLI es por usuario, en ~/.influxdbv2/configs.
  • Telegraf registra 401 Unauthorized: el token de /etc/default/telegraf no es correcto o no tiene permiso de escritura en el bucket. Crea otro con influx auth create y reinicia Telegraf.
  • Telegraf registra bucket not found: el nombre de bucket u organization en telegraf.conf no coincide con el de InfluxDB. Compruébalo con influx bucket list.
  • La interfaz web no carga: revisa que el servicio está activo (systemctl status influxdb) y que UFW permite tu IP (sudo ufw status).

Conclusión

InfluxDB 2 está instalado en Ubuntu 24.04 con buckets de distinta retención, consultas Flux probadas, Telegraf enviando métricas del servidor con un token de solo escritura y copias de seguridad con influx backup. Como siguientes pasos, crea un token de solo lectura (influx auth create --read-bucket) para conectar Grafana con InfluxDB como fuente de datos, añade plugins de Telegraf para tus servicios (Nginx, PostgreSQL, Docker) y configura alertas desde la interfaz web.