InfluxDB es una base de datos de series temporales (TSDB) diseñada para manejar una gran cantidad de datos de series temporales con alta eficiencia
Es ideal para aplicaciones que requieren almacenar y analizar datos que cambian con el tiempo, como métricas de rendimiento, datos de sensores y registros de eventos.
Algunas de las características clave de InfluxDB incluyen,
- Optimización para Series Temporales: Especialmente diseñada para manejar datos con marcas de tiempo.
- Consultas de Alta Velocidad: Capaz de realizar consultas complejas en grandes volúmenes de datos de manera eficiente.
- Retención de Datos: Permite definir políticas de retención para manejar datos históricos.
- Integración con Herramientas de Visualización: Compatible con herramientas como Grafana para la visualización de datos.
InfluxDB se utiliza ampliamente en aplicaciones de monitoreo de infraestructura, análisis de datos de IoT y análisis de registros de eventos. Por lo que encaja muy bien con Raspberry Pi.
Cómo Instalar InfluxDB en Raspberry Pi
Configurar el repositorio
Primero, nos aseguramos de que nuestra Raspberry Pi esté actualizada. Ejecutamos los siguientes comandos para actualizar los paquetes y el sistema operativo:
sudo apt update
sudo apt upgrade
A continuación, para instalar InfluxData, que no está incluido en los repositorios estándar de Raspberry Pi OS, necesitamos agregar el repositorio adecuado.
# Instalamos las dependencias necesaria
sudo apt install -y gnupg
# Descargamos e instalamos la clave pública del repositorio de InfluxDB
wget -qO - https://repos.influxdata.com/influxdb.key | sudo apt-key add -
# Creamos un archivo de lista para InfluxData
echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
Nota: La distribución buster
es para Debian 10, que es compatible con Raspberry Pi OS basado en Debian. Ajusta si usas una versión diferente.
Instalar InfluxDB
Con el repositorio agregado, instalamos InfluxDB. Primero actualizamos la lista de paquetes,
sudo apt update
Finalmente instalamos instalar InfluxDB
sudo apt install influxdb2
Después de completar la instalación, necesitamos configurar y habilitar InfluxDB para que se ejecute como un servicio.
# Ensure influxdb config is picked up
sudo systemctl daemon-reload
# Tell systemd to run influxdb on reboot
sudo systemctl unmask influxdb
sudo systemctl enable influxdb
# Start up influxdb
sudo systemctl start influxdb
Finalmente, verificamos el estado del servicio para confirmar que MongoDB está funcionando correctamente con:
sudo systemctl status influxdb
Deberíamos ver una salida que indique que el servicio está activo y en funcionamiento.
Configuración del Servicio HTTP
Por defecto, InfluxDB v2 debería tener habilitada la interfaz HTTP. Pero no está de más asegurarnos. Para ello hacemos,
sudo nano /etc/influxdb/influxdb.conf
Y nos aseguramos de que en la sección [http]
y enabled
está a true
. Si no es así, lo ponemos, guardamos y salimos del fichero.
Ahorra desde el navegador podemos acceder a la dirección localhost:8086
y veremos la ventana de configuración de InfluxDB.
Usar InfluxDB
Una vez que hemos instalado y puesto en funcionamiento InfluxDB, podemos empezar a gestionarlo para nuestros datos de series temporales.
El proceso es muy sencillo. InfluxDB incluye asistentes para las principales plataformas y lenguajes de programación.
Por ejemplo, si la queremos usar con Python tenemos que instalar el cliente de Influx
pip3 install influxdb-client
InfluxDB nos proporcionará un Token que debemos exportar como variable de sistema
export INFLUXDB_TOKEN=tu_token_largisimo
Finalmente, podemos conectarnos con un Script así
import influxdb_client, os, time
from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS
token = os.environ.get("INFLUXDB_TOKEN")
org = "casa"
url = "http://localhost:8086"
write_client = influxdb_client.InfluxDBClient(url=url, token=token, org=org)