Cómo instalar InfluxDB y Telegraf en Debian
InfluxDB es una base de datos de series temporales de código abierto escrita en Go. Se trata de una plataforma de series temporales de alto rendimiento creada específicamente para recopilar, almacenar, procesar y visualizar datos de series temporales. InfluxDB es la solución de referencia para las bases de datos de series temporales, ya que proporciona un motor de datos de series temporales de alto rendimiento con una potente API integrada para crear aplicaciones en tiempo real. InfluxDB es una plataforma que se utiliza para, por ejemplo, monitorización de operaciones, métricas de rendimiento de aplicaciones y servidores, datos de sensores IoT y analítica en tiempo real.
En esta guía, configurarás la monitorización del panel de control con InfluxDB y enviarás métricas para la monitorización del sistema a través de Telegraf. Utilizarás un servidor Debian 11 para la instalación. Esta guía incluye cómo asegurar InfluxDB mediante certificados TLS/SSL, configurar InfluxDB mediante IbnfluxDB-CLI (línea de comandos), y la configuración básica de Telegraf para enviar métricas a InfluxDB.
Requisitos previos
Para completar esta guía, necesitarás los siguientes requisitos:
- Un servidor Debian 11 – Puedes utilizar dos o tres servidores diferentes para la instalación. A continuación se muestra la arquitectura básica cuando utilizas varios servidores:
- servidor1 como servidor InfluxDB.
- servidor2 como monitor de destino donde se instalará Telegraf.
- Un usuario no root con privilegios de administrador sudo/root.
Instalación de InfluxDB e InfluxDB-CLIs
InfluxDB es una base de datos de series temporales de código abierto que puede desplegarse en múltiples entornos, que incluyen máquinas virtuales con Linux, Windows y macOS. Y también entornos en contenedores como Docker y Kubernetes.
El influxdb2-cli proporciona una línea de comandos‘influx’ que te permite gestionar la administración de influxdb, como la gestión de buckets, organizaciones, usuarios, tareas, etc.
En este primer paso, configurarás el repositorio influxdb y, a continuación, instalarás los paquetes influxdb e influxdb-cli en tu sistema.
Para empezar, ejecuta el siguiente comando apt para instalar algunas dependencias de paquetes en tu servidor Debian. Cuando se te solicite la instalación, introduce y y pulsa ENTER.
sudo apt install gnupg2 wget curl
A continuación, ejecuta el siguiente comando para descargar la clave GPG del repositorio influxdb. La clave GPG se almacenará en‘/etc/apt/trusted.gpg.d/influxdb.gpg‘.
wget -q https://repos.influxdata.com/influxdb.key echo '23a1c8836f0afc5ed24e0486339d7cc8f6790b83886c4c96995b88a061c5bb5d influxdb.key' | sha256sum -c && cat influxdb.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdb.gpg > /dev/null
Ahora añade el repositorio influxdb a tu sistema mediante el siguiente comando. En este ejemplo, instalarás influxdb desde el repositorio de la rama estable.
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdb.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Después, actualiza y refresca tu índice de paquetes mediante el siguiente comando apt.
sudo apt update
Una vez añadido el repositorio y actualizado el índice de paquetes, ejecuta el siguiente comando apt para instalar los paquetes influxdb2 e influxdb2-cli. En el momento de escribir esto, la última versión estable de influxdb es la v2.xx y la de influxdb-cli es la v2.xx.
sudo apt install influxdb2 influxdb2-cli
Cuando se te pida la configuración, introduce y y pulsa ENTER para continuar.
Una vez instalados influxdb2 e influxdb2-cli, utiliza el siguiente comando systemctl uitility para iniciar el servicio influxdb.
sudo systemctl start influxdb
Por último, verifica el servicio influxdb utilizando el comando systemctl utility que aparece a continuación.
sudo systemctl is-enabled influxdb sudo systemctl status influxdb
Deberías recibir la salida de que el servicio influxdb está activado y se ejecutará automáticamente al arrancar. Y el estado del servicio influxdb es en ejecución.
Con el servicio influxdb en ejecución, puedes proceder a la configuración básica de influxdb2-cli.
Configuración de influxDB-CLI
influxdb2-cli proporciona una herramienta de línea de comandos para gestionar el servidor influxdb, denominada«influx«. Ahora verificarás el influxdb2-cli y configurarás el complemento bash para el comando‘influx’.
Para verificar el influxdb2-cli, ejecuta el siguiente comando en tu terminal. El primer comando comprobará la ruta binaria completa del comando «influx«, y el segundo verificará la versión de influxdb2-cli que está instalada en tu sistema.
which influx influx version
Recibirás una salida como la siguiente captura de pantalla: el comando «influx» está disponible en«/bin/influx» y la versión del paquete influxdb2-cli que se ha instalado es la v2.xx.
A continuación, configurarás el complemento bash para el comando «influx» mediante el archivo de configuración «~/.bashrc».
Ejecuta el comando influx que aparece a continuación para generar el script bash-completion en ‘ /etc/bash_completion.d/influx.sh‘. A continuación, haz ejecutable el script recién generado ‘/etc/bash_completion.d/influx.sh’ mediante el comando chmod.
sudo influx completion bash > /etc/bash_completion.d/influx.sh sudo chmod +x /etc/bash_completion.d/influx.sh
A continuación, abre el archivo de configuración‘~/.bashrc‘ mediante el siguiente comando del editor nano.
sudo nano ~/.bashrc
Añade la siguiente configuración al final de la línea. Con esto, cargarás el completado de scripts bash que está disponible en múltiples directorios.
# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi
Guarda el archivo y sal del editor cuando hayas terminado.
A continuación, ejecuta el siguiente comando para recargar la configuración de‘~/.bashrc‘ y recargar tu shell actual.
source ~/.bashrc
Por último, escribe el comando‘influx’ en tu terminal y pulsa TAB para obtener las opciones disponibles para el comando‘influx‘.
sudo influx TAB
Recibirás entonces una salida como la siguiente.
Ahora que el servicio influxdb se está ejecutando y la línea de comandos influxdb2-cli está configurada, podrás configurar el firewalld y empezar a configurar el influxdb mediante la línea de comandos influxdb2-cli.
Configurar UFW
Por defecto, el servicio influxdb se ejecuta en el puerto 8086. Este puerto también se utiliza como punto final en el que influxdb recibirá métricas del telegraf.
En este paso, configurarás el cortafuegos ufw y abrirás el puerto influxdb«8086» en el cortafuegos ufw.
El paquete ufw no está instalado en la instalación por defecto de Debian. Instala ufw mediante el siguiente comando apt.
sudo apt install ufw -y
Una vez instalado el paquete ufw, ejecuta el siguiente comando ufw para añadir el servicio OpenSSH y activar el servicio de cortafuegos ufw.
sudo ufw allow OpenSSH sudo ufw enable
Cuando se te pida confirmación, introduce y y pulsa INTRO. El servicio ufw debería estar ahora iniciado y habilitado y se ejecutará automáticamente al arrancar.
A continuación, ejecuta el siguiente comando para añadir el puerto«8086» al cortafuegos ufw. A continuación, comprueba el estado actual del cortafuegos ufw.
sudo ufw allow 8086/tcp sudo ufw status
Recibirás una salida como la siguiente captura de pantalla: el estado del cortafuegos ufw está activo con el servicio OpenSSH y el puerto«8086» habilitados.
Configurar InfluxDB mediante InfluxDB-CLI
Para utilizar influxdb, debes configurarlo mediante la administración basada en web o utilizando la línea de comandos influxdb2-cli. La configuración básica de influxdb incluye lo siguiente:
- Usuario admin de influxdb
- Contraseña de administrador de influxdb
- Nombre de organización por defecto
- Cubo/base de datos por defecto
En este paso, configurarás influxdb mediante el comando influx proporcionado por el paquete influxdb2-cli. Ejecuta el siguiente comando para empezar a configurar influxdb.
sudo influx setup
Ahora se te pedirá alguna configuración de influxdb. Introduce el nombre de usuario y la contraseña de tu instalación de influxdb. Introduce el nombre de la organización por defecto y el bucket/base de datos por defecto.
Este ejemplo de la siguiente captura de pantalla muestra que el usuario para la instalación de influxdb es‘jokic‘, el nombre de la organización es‘HW.IO‘ y el bucket por defecto es‘mybucket‘.
Una vez configurado influxdb, ejecuta el siguiente comando influx para verificar la configuración.
sudo influx user list sudo influx auth list
Recibirás una salida similar a la captura de pantalla siguiente. El comando‘influx setup‘ también configuró automáticamente el token para el nuevo usuario administrador con algunos permisos de administrador por defecto.
Una vez creado el nuevo usuario administrador y generado el token, ahora deberás verificar las configuraciones iniciando sesión a través del shell influxdb y del panel de administración web.
Ejecuta el siguiente comando para crear una nueva variable de entorno ‘INFLUX_TOKEN‘. Y asegúrate de cambiar el token por tu token generado.
export INFLUX_TOKEN=r_We-DLv_GY64klANaag1jVQ1iQ3oT3By7PLG1m6-TCO_kImk4q0IyKXLDIFs3jjCGG_P8Q0Y_nVwiNw9Vk5tQ==
Ahora accede al shell influxdb mediante el comando influx que aparece a continuación.
sudo influx v1 shell $INFLUX_TOKEN
Tras acceder, recibirás un mensaje como ‘Conectado a InfluxDB OSS v2.5.1’.
Ejecuta la siguiente consulta para verificar la lista de buckets/bases de datos de tu instalación inlfuxdb. La siguiente pantalla de terminal te muestra que el bucket‘mybucket‘ está disponible en influxdb.
show DATABASES
Ahora introduce‘q’ para salir de la pantalla interactiva. A continuación, escribe ‘quit‘ para salir del intérprete de comandos influxdb.
A continuación, abre tu navegador web y visita la dirección IP de tu servidor seguida del puerto por defecto 8086 (es decir: http://192.168.5.8086/). Verás la página de inicio de sesión de influxdb.
Introduce tu usuario y contraseña de administrador y haz clic en «INICIAR SESIÓN».
Ahora accederás al panel de administración de influxdb.
Para verificar la lista de buckets/bases de datos en influxdb, haz clic en Cargar datos > Buckets, y verás que el bucket‘mybucket‘ está disponible en influxdb.
Llegados a este punto, ya has instalado y configurado influxdb con la instalación y configuración básicas. A continuación, asegurarás influxdb mediante certificados SSL/TLS y actualizarás el perfil predeterminado para ibnfluxdb2-cli.
Asegurar InfluxDB mediante certificados SSL/TLS
La instalación de influxdb puede asegurarse de muchas formas con diferentes escenarios. Puedes configurar la autorización y los permisos para cada usuario, y también asegurar el transporte mediante certificados SSL/TLS.
En este paso, asegurarás influxdb con certificados SSL/TLS, así que asegúrate de haber generado certificados SSL/TLS antes de configurar influxdb. A continuación, actualizarás el perfil por defecto en influxdb2-cli.
Antes de empezar a configurar, ejecuta el siguiente comando para crear un nuevo directorio ‘/etc/influxdb/ssl’ para almacenar los certificados SSL/TLS.
mkdir -p /etc/influxdb/ssl
Copia la clave pública y privada de tu certificado SSL/TLS en el nuevo directorio «/etc/influxdb/ssl«. A continuación, cambia la propiedad del directorio SSl/TLS al usuario«influxdb«.
cp *.pem /etc/influxdb/ssl/ sudo chown -R influxdb: /etc/influxdb/ssl
A continuación, abre el archivo de configuración de influxdb ‘/opt/influxdb/config.toml ‘ utilizando el siguiente comando del editor nano.
sudo nano /etc/influxdb/config.toml
Añade las siguientes líneas, que definen la ruta completa de la clave pública y privada SSL/TLS.
tls-cert = "/etc/influxdb/ssl/fullchain.pem" tls-key = "/etc/influxdb/ssl/privkey.pem"
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta la siguiente utilidad de comandos‘systemctl‘ para reiniciar el servicio influxdb y aplicar los nuevos cambios.
sudo systemctl restart influxdb
Con influxdb ejecutándose bajo conexión segura mediante certificados SSL/TLS, no podrás comunicarte con influxdb mediante el comando influx.
Ejecuta el siguiente comando influx para verificar la lista de perfiles en influxdb2-cli y ejecuta la consulta para verificar la lista de usuarios en influxdb.
sudo influx config ls sudo influx user list
Deberías ver un mensaje de error como‘failed to list users: 400 Bad Request..‘.
Para resolver el problema de autenticación, debes actualizar el perfil ‘por defecto‘ y cambiar el host/URL por defecto de influxdb a la conexión segura HTTPS.
Ejecuta el siguiente comando para actualizar el perfil «pordefecto» al host seguro de influxdb«https://influxdb.hwdomain.io:8086».
sudo influx config set --active --config-name=default --host-url=https://influxdb.hwdomain.io:8086 --token=$INFLUX_TOKEN --org=HW.IO
Ahora verifica la nueva actualización del perfil ‘pordefecto‘ mediante el siguiente comando de influx.
sudo influx user list sudo influx auth list
Ahora deberías poder comunicarte de nuevo con influxdb mediante el comando influx. Y la conexión entre el comando influx y el influxdb está protegida con certificados SSL/TLS.
Ya has terminado la configuración básica del servidor influxdb y estás listo para configurar Telegraf y enviar métricas del sistema al servidor influxdb.
Instalar y configurar Telegraf
Telegraf forma parte de la plataforma de series temporales creada por influxdata. Es un agente de código abierto basado en servidor para recopilar y enviar métricas y eventos de múltiples entornos, como sensores IoT, sistemas de bases de datos, telemetría de sistemas y herramientas y marcos DevOps. Telegraf se compila como un único archivo binario y está escrito en Go, sin necesidad de dependencias externas para su instalación.
Telegraf está disponible por defecto en el repositorio influxdb. Así que si utilizas varios servidores Debian, debes añadir el repositorio influxdb a todos tus servidores.
En este paso, instalarás telegraf en un servidor Debian 11. A continuación, configura telegraf para que envíe métricas al servidor influxdb.
Ejecuta el siguiente comando apt para instalar telegraf en un servidor Debian. Asegúrate de que se añade el repositorio influxdb.
sudo apt install telegraf
La instalación de telegraf debería estar ahora en marcha.
Una vez instalado telegraf, ejecuta el siguiente comando systemctl para iniciar el servicio telegraf.
sudo systemctl start telegraf
Ahora verifica el servicio telegraf utilizando la utilidad de comandos systemctl que aparece a continuación y asegúrate de que el servicio está activado y en funcionamiento.
sudo systemctl is-enabled telegraf sudo systemctl status telegraf
En la pantalla de tu terminal, recibirás una salida como la siguiente captura de pantalla – El servicio telegraf se está ejecutando actualmente y está habilitado, lo que significa que el servicio telegraf se iniciará automáticamente al arrancar.
A continuación, abre el archivo de configuración de telegraf ‘/etc/telegraf/telegraf.conf‘ utilizando el siguiente comando del editor nano.
sudo nano /etc/telegraf/telegraf.conf
Descomenta la sección ‘[[salidas.influxdb_v2]]’ y cambia la configuración de los detalles con los siguientes ajustes. Asegúrate de cambiar las URL de influxdb con una conexión HTTPS segura, el token, el nombre de la organización y el bucket/base de datos por defecto.
[[outputs.influxdb_v2]] # ## The URLs of the influxdb cluster nodes. ......... # ### ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] urls = ["https://influxdb.hwdomain.io:8086"] # # ## Token for authentication. token = "FlIq521ZVxEA40Iz7rVVKK25sDmuEWUHm_Mbly-4mYxt-rWrYOOytVnmE5yL5bpNB_gNHBWlYXKDED9PEbk-0g==" # # ## Organization is the name of the organization you wish to write to. organization = "HW.IO" # # ## Destination bucket to write into. bucket = "mybucket"
Guarda el archivo y sal del editor cuando hayas terminado.
Ahora ejecuta el siguiente comando de la utilidad systemctl para reiniciar el servicio telegraf y aplicar los cambios.
sudo systemctl restart telegraf
Una vez reiniciado telegraf y aplicados los cambios, a continuación deberás verificar la instalación de telegraf, lo que puedes hacer a través del panel de administración de influxdb o a través del shell de influxdb.
De vuelta al panel de administración de influxdb, haz clic en el menú Explorador de datos y selecciona el bucket«mibucket«. Deberías ver una lista de las métricas de telegraf está disponible en influxdb.
Para verificarlo desde el shell de influxdb, ejecuta el siguiente comando en el servidor terminal de influxdb.
sudo influx v1 shell
Tras acceder al shell de influxdb, ejecuta las siguientes consultas para verificar las métricas de telegraf. La primera consulta es para cambiar al bucket‘mybucket‘, y la segunda para mostrar las columnas/medidas disponibles en el bucket.
use mybucket SHOW MEASUREMENTS
A continuación se muestra la salida similar que recibirás en tu servidor terminal: las métricas de Telegraf que incluyen, la cpu, disco, diskio, kernel, mem, procesos, swap y el sistema están disponibles en el servidor influxdb.
Ahora has comprobado que las métricas del servidor telegraf están disponibles en el servidor influxdb. Esto significa que la instalación y configuración de telegraf ha finalizado y se ha realizado correctamente.
En el último paso, aprenderás a crear la monitorización del cuadro de mandos en influxdb y a configurar un nuevo sistema de monitorización con las métricas de telegraf que están disponibles en el servidor influxdb.
Crear la monitorización del cuadro de mandos
En este último paso, configurarás un nuevo cuadro de mando para la monitorización de la telemetría de los sistemas a través del servidor influxdb y telegraf. Crearás cuadros de mando influxdb y configurarás celdas para la supervisión del sistema y visualizarás las métricas recogidas por el telegraf.
Haz clic en el menú Cuadro de mandos y, a continuación, en«Crear cuadro de mandos«.
Introduce el nombre del cuadro de mando en la parte superior de la página, en este ejemplo se utiliza el nombre‘Cuadro de mando de pruebas‘.
Ahora haz clic en«AÑADIR CELDA» para añadir un nuevo gráfico para la monitorización del sistema.
A continuación se muestra el gráfico para la monitorización de la memoria.
Monitorización de la carga del sistema.
Tiempo de actividad del servidor de destino.
CPUs disponibles en el sistema de destino con el número X.
Y por último, el usuario actual que ha iniciado sesión en la máquina objetivo.
Una vez creadas las celdas, a continuación se muestra el resultado del ejemplo de creación de un cuadro de mando en influxdb para la monitorización del sistema. El telegraf recoge todas esas métricas y las envía a los servidores de influxdb.
Conclusión
En este tutorial, has instalado la base de datos de series temporales influxdb y el influxdb2-cli en un servidor Debian 11. También has asegurado la instalación de influxdb con certificados SSL/TLS y has configurado el servidor influxdb mediante la línea de comandos influxdb2-cli ‘influx’.
Además, instalaste y configuraste telegraf para recoger y enviar métricas al servidor influxdb mediante una conexión segura SSL/TLS. Y, por último, has creado un panel de control para la supervisión del sistema a través del servidor influxdb y telegraf.
Con todo listo, ya puedes visualizar tus sistemas y aplicaciones y configurar el cuadro de mandos para la supervisión. También puedes configurar las tareas de influxdb, configurar el sistema de alertas y mucho más.