Creando un sistema de visualización de series temporales III: Instalación y configuración de InfluxDB
Instalación de InfluxDB
En mi caso voy a realizar la instalación de InfluxDB en un servidor con CentOS7, y para ello seguimos estos pasos:
- Añadimos un nuevo repositorio, creando el archivo /etc/yum.repos.d/influxdb.repo con el siguiente contenido
[influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key
- Instalamos el paquete
yum install influxdb
- Abrimos los puertos en el cortafuegos. InfluxDB utilizar por defecto dos puertos:
- TCP-8083
- TCP-8086
firewall-cmd --permanent --add-port=8083/tcp firewall-cmd --permanent --add-port=8086/tcp firewall-cmd --reload
- Arrancamos el servicio
systemctl start influxdb
En este punto tendremos el servicio ejecutándose con las opciones por defecto. El archivo de configuración se encuentra en la ruta /etc/influxdb/influxdb.conf
Interfaces de acceso
El método de acceso para consultar y escribir datos es a través del API HTTP. Hay dos utilidades básicas que permiten interactuar con InfluxDB:
- CLI / Shell
- Web Admin
CLI / Shell
Es una utilidad que permite acceder a los datos a través de línea de comandos.
Ejecutamos el comando influx para entrar en el modo interactivo
[root@CENTOS03 ~]# influx Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring. Connected to http://localhost:8086 version 1.0.2 InfluxDB shell version: 1.0.2 >
Y podemos escribir consultas
> SHOW DATABASES name: databases --------------- name _internal
También podemos ejecutar las consultas como argumentos del comando influx
[root@CENTOS03 ~]# influx -execute 'SHOW DATABASES' name: databases --------------- name _internal
Web Admin
Por defecto, InfluxDB incorpora un interfaz web al que se puede acceder por el puerto 8083
El interfaz es muy sencillo y podemos ejecutar consultas y obtener datos
Configuración inicial
En la configuración por defecto, no tiene ningún usuario configurado ni solicita credenciales al realizar la conexión, por lo que cualquier conexión permite consultar o escribir datos. Así que el primer paso de la configuración que vamos a realizar es crear un usuario administrador y habilitar la autenticación para que se solicite un usuario y contraseña para acceder a las bases de datos.
Creación de un usuario administrador
Utilizamos la siguiente consulta para crear el usuario administrador
CREATE USER <username> WITH PASSWORD '<password>' WITH ALL PRIVILEGES
Por ejemplo
CREATE USER admin WITH PASSWORD 'InfluxDB2016' WITH ALL PRIVILEGES
Habilitar la autenticación
Accedemos al archivo de configuración y modificamos el valor de la clave «auth-enabled»
### ### [http] ### ### Controls how the HTTP endpoints are configured. These are the primary ### mechanism for getting data into and out of InfluxDB. ### [http] enabled = true bind-address = ":8086" auth-enabled = true log-enabled = true write-tracing = false pprof-enabled = false https-enabled = false https-certificate = "/etc/ssl/influxdb.pem" ### Use a separate private key location. # https-private-key = "" max-row-limit = 10000 realm = "InfluxDB"
Reiniciamos el servicio
Para hacer efectivo el cambio, reiniciamos el servicio:
systemctl restart influxdb
Comprobamos que ya no podemos acceder sin indicar usuario y contraseña:
[root@CENTOS03 ~]# influx Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring. Connected to http://localhost:8086 version 1.0.2 InfluxDB shell version: 1.0.2 > SHOW DATABASES ERR: unable to parse authentication credentials Warning: It is possible this error is due to not setting a database. Please set a database with the command "use <database>". >
O desde el Web Admin