Configura Telegraf, InfluxDBv2 y Grafana para monitorizar los NAS de QNAP

Configura Telegraf, InfluxDBv2 y Grafana para monitorizar los NAS de QNAP

Sergio De Luz

La monitorización de los servidores y los equipos de red son fundamentales para avisarnos de posibles problemas antes de que sucedan, también nos permiten saber si hay un problema actual en uno de los equipos, para poder solucionarlo lo antes posible. Actualmente hay muchos sistemas de monitorización realmente completos como Zabbix, Prometheus o el popular Nagios entre otros muchos. Hoy en RedesZone os vamos a enseñar paso a paso cómo monitorizar un NAS del fabricante QNAP usando Telegraf, InfluxDBv2 y Grafana, todo ello instalado en Docker para minimizar el consumo de recursos.

Cuando montamos un sistema de monitorización en un servidor NAS, no solamente nos permitirá monitorizar el propio servidor NAS, sino que también nos permitirá recibir los datos desde otros equipos (routers, switches, firewalls e incluso diferentes Dockers) para escribir la información en la base de datos, y posteriormente mostrar todas las gráficas y configurar avisos o alertas. El objetivo de este tutorial es monitorizar nuestro NAS principal de QNAP, pero también sentar la base para que diferentes equipos y softwares puedan enviarnos los datos para que actúe como un sistema de monitorización centralizado.

Qué es Telegraf, InfluxDBv2 y Grafana

Para la realización del sistema de monitorización, vamos a usar tres softwares que son Telegraf, InfluxDBv2 y Grafana. Todos ellos son imprescindibles y hacen una labor fundamental para recopilar, enviar los datos, escribirlos a una base de datos y mostrarlos en un panel de control totalmente personalizable. Si no conoces estos tres softwares, a continuación, os vamos a explicar qué es lo que hacen y para qué nos servirán.

Telegraf es un agente que nos permitirá recopilar, procesar, agregar y escribir las métricas, registros y otros datos arbitrarios. Este software incorpora más de 300 complementos para adaptarse a cualquier origen de datos, por lo que cubren una amplia gama de funciones que incluyen la monitorización del sistema, servicios en la nube y transmisión de los mensajes. Este software permite la integración de código para recopilar, transformar y transmitir los datos de forma eficiente. El archivo de configuración está en lenguaje TOML, por lo que la sintaxis es bastante amigable en comparación con otros.

Este software es bastante fácil de configurar, básicamente tendremos un origen de datos que puede ser HTTP, sensores usando diferentes protocolos y también la nube. En la parte de «Input» o entrada, podremos leer los estados de CPU, RAM, los mensajes MQTT, leer el estado del sistema a través de SNMP y mucho más. Una vez que hayamos recopilado toda esta información, tenemos la posibilidad de procesar estos datos e incluso hacer agregación de ellos, para posteriormente escribir en una base de datos o en un archivo, para su posterior tratamiento.

En este tutorial usaremos Telegraf para recopilar el estado del servidor NAS del fabricante QNAP vía SNMP, el propio sistema operativo QTS y QuTS hero disponen de un servidor SNMPv3 desde donde podemos leer una gran cantidad de datos del equipo. Además, QNAP nos proporciona la MIB necesaria para poder leer todos los datos, y poder configurar Telegraf adecuadamente para su posterior envío a la base de datos de InfluxDBv2.

InfluxDB es la base de datos de series temporales Open Source más utilizada, esta base de datos tiene todo lo que necesitamos en el mismo software, y es que no solo contamos con la propia base de datos, sino también una interfaz gráfica de usuario que nos permitirá mostrar los datos que nosotros queramos, e incluso tiene herramientas para hacer agregación de datos de manera avanzada. No obstante, para mostrar toda la información con sus gráficas y demás usaremos Grafana. La interfaz gráfica de usuario de InfluxDB nos permitirá crear las bases de datos, y también obtener el código de la consulta para posteriormente copiarlo y pegarlo en Grafana.

La base de datos de InfluxDB dispone ahora mismo de un total de tres versiones:

  • InfluxDBv1: todavía se sigue utilizando esta base de datos para almacenar todos los registros desde Telegraf. Utiliza un lenguaje SQL para la realización de todas las consultas, con el objetivo de facilitar a los administradores la búsqueda de todo lo que necesiten dentro de la BBDD.
  • InfluxDBv2: esta base de datos es la actual «stable», Telegraf y muchos otros softwares son compatibles con ella. La parte negativa es que usa un lenguaje llamado «Flux» que es propio, por lo que la sintaxis es bastante diferente al típico SQL. Esto no es ningún problema, porque la interfaz gráfica de usuario de InfluxDBv2 incorpora un «Editor de consultas» donde nosotros vamos seleccionando las diferentes tablas para que nos genere el código necesario para posteriormente copiarlo en Grafana u otro software. Además de hacer la consulta, también es capaz de usar funciones avanzadas de agregación de datos, y todo ello sin necesidad de tener apenas conocimientos de Flux.
  • InfluxDBv3: es la nueva versión de la base de datos, pero todavía no está en versión «stable», es bastante nueva y todavía no tenemos compatibilidad con muchos softwares. Esta nueva versión mejora las prestaciones de la segunda versión, y vuelve a tener un lenguaje de consulta SQL abandonando Flux (al menos, es lo que se sabe, aunque podría cambiar).

En este tutorial nosotros usaremos InfluxDBv2, y veréis que el lenguaje Flux no es ningún problema, y el funcionamiento es simplemente perfecto. Además, todas las comunicaciones las haremos vía HTTPS para proporcionar la mejor seguridad posible, los certificados SSL/TLS serán autofirmados.

Grafana es un software libre que nos permite la visualización de cualquier dato, permitiéndonos crear cuadros de mando y gráficos muy útiles a partir de múltiples fuentes. Este software es compatible con bases de datos relacionales, noSQL e incluso bases de datos de series de tiempo como Graphite o InfluxDB entre otras. Lo mejor de este software es que es multiplataforma, aunque también lo podemos instalar perfectamente en Docker. Este software dispone de una grandísima cantidad de orígenes donde leer la información para poder mostrarla, además, incorpora muchísimos plugins que podemos instalar para aumentar las funcionalidades.

En nuestro tutorial, usaremos Grafana para conectarse con InfluxDBv2 y obtener todos los datos, para posteriormente mostrarlos en gráficas realmente impresionantes. Las posibilidades de Grafana son inmensas, porque también nos permitirá transformar los datos obtenidos en otros, directamente «al vuelo», sin necesidad de escribirlos en una base de datos adicional. La comunicación de este software con InfluxDBv2 será a través de HTTPS con certificados autofirmados, y comprobando la CA para dotar al sistema de la máxima seguridad.

El objetivo de este tutorial es poder crear un panel de control donde podamos ver mucha información sobre el servidor NAS de QNAP, o cualquier otro equipo que envíe datos a InfluxDBv2. En nuestro caso, estamos monitorizando un NAS TVS-h1288X con el sistema operativo QuTS hero. Podemos monitorizar el tiempo de encendido, firmware actual o si hay una actualización, el SAI conectado, CPU y RAM, ventiladores, temperaturas, los conjuntos de almacenamiento y en definitiva, todo lo que nos permita la MIB del SNMP del sistema operativo QTS o QuTS hero.

Gracias a las diferentes gráficas que nos permite crear Grafana, tenemos la posibilidad de verlo todo de una manera realmente espectacular. Dependiendo de los datos que nos interese mostrar, tendremos un tipo de gráfico u otros. El límite lo pone tu imaginación y lo que quieras realmente mostrar.

Tal y como podéis ver, para mostrar el almacenamiento de las carpetas compartidas (dataset) podemos usar diferentes gráficos:

Una vez que ya conocéis para qué sirven todos los softwares que vamos a instalar, os vamos a hacer un pequeño resumen de cómo sería el flujo de datos para que lo tengáis muy claro:

  • Telegraf se encargará de leer todos los estados vía SNMP hacia el NAS, el propio QNAP ya tiene un servidor SNMP en su interior que debemos activar y configurar, y tendremos la MIB para poder leer todos los datos. Telegraf enviará los datos a InfluxDBv2 vía HTTPS a un «Bucket» concreto.
  • InfluxDBv2 se encargará de recibir todos los datos de Telegraf instalado en el NAS, o bien desde cualquier Telegraf que tengamos en otros equipos, porque podemos estar recibiendo datos desde todos los que queramos de forma completamente simultánea. Tanto el acceso a la web de administración como la recepción de los datos se hará con HTTPS con certificados autofirmados y una CA.
  • Grafana se encargará de conectarse a InfluxDBv2 vía HTTPS para leer todos los datos, y mostrarlos en paneles de control muy configurables.

Antes de empezar debéis saber que en el siguiente vídeo explicamos en detalle todo el proceso de instalación y puesta en marcha, es un «complemento» a este tutorial, ya que puede ser complicado de entender en un primer momento. En este tutorial encontraréis todo el código fuente y comandos que sean necesarios para poner en marcha el sistema.

Ahora vamos a realizar la configuración inicial del servidor NAS, activando tanto SSH como el SNMP.

Configurar el servidor QNAP para su monitorización

Antes de empezar, podéis descargar todos los comandos y código fuente usados en este tutorial aquí:

También puedes ver todo el código fuente en GitHub. Para poder instalar todo el software y poder monitorizar el servidor NAS, es necesario activar los servicios que tenemos en el sistema operativo.

Configuración del servidor SSH en QNAP

Lo primero que debemos hacer es habilitar el servidor SSH, es totalmente necesario para ejecutar ciertos comandos a través de consola. Para poder hacerlo, basta con irnos a «Panel de control / Red y servicios de archivos / Telnet y SSH«. Le damos a la opción de «Permitir conexión SSH» y elegimos el puerto, por defecto es el 22, pero podemos cambiar al puerto que nosotros queramos.

Una vez que esté habilitado, podemos entrar usando programas como PuTTY, o directamente usando la consola de Windows o Linux.

Configuración del SNMP en QNAP

Ahora debemos habilitar el servidor SNMP, que es al que se conectará Telegraf para «leer» absolutamente todos los estados del servidor NAS. Para hacer esto, tenemos que irnos a «Panel de control / Red y servicios de archivos / SNMP«. En este menú pinchamos en el botón de «Habilitar servicio SNMP» y realizamos estos ajustes:

  • Versión SNMP: SNMP v3. Es la última versión y más segura.
  • Nombre de usuario: telegraf (podemos poner el que queramos, pero debe corresponderse con la configuración del propio Telegraf, de lo contrario no funcionará).
  • Usar autenticación: activado
    • Protocolo de autenticación: HMAC-SHA
    • Contraseña de autenticación: redeszone
  • Privacidad de uso: activado
    • Protocolo de privacidad: CBC-DES
    • Contraseña de privacidad: redeszone

Ahora pinchamos en «Aplicar» y esperamos unos segundos, también es muy recomendable descargar la SNMP MIB, que es básicamente la base de datos con todo lo que podemos monitorizar. Dependiendo de si usas un sistema operativo QuTS hero o QTS cambiará respecto al almacenamiento, el resto es exactamente igual como ver la velocidad de ventiladores, temperaturas de discos duros etc. Es muy importante descargar la MIB, porque tendremos que copiarla dentro de la carpeta de Telegraf para que pueda usarla.

Creación del árbol de directorios para Docker

Con el fin de evitar problemas de Docker a la hora de levantar los diferentes contenedores, vamos a crear la carpeta compartida o dataset donde almacenaremos todos los contenedores e información. En nuestro caso, la ruta donde tendremos absolutamente todo lo relacionado con Docker es «/share/MaquinasVirtuales/Docker». De este directorio colgará todo el software. Aunque a la hora de ejecutar el stack en Portainer se creará el árbol de directorio, debido a que vamos a configurar «volumes» con archivos específicos, es necesario crear previamente estos archivos, y también asignarles adecuadamente los permisos necesarios.

Lo primero que hacemos es crear los tres directorios para los tres softwares que vamos a crear:

mkdir -p /share/MaquinasVirtuales/Docker/telegraf
mkdir -p /share/MaquinasVirtuales/Docker/influxdb
mkdir -p /share/MaquinasVirtuales/Docker/grafana

Para que Telegraf se cree correctamente con el Docker-compose, es necesario crear el archivo de configuración vacío, luego lo editaremos:

touch /share/MaquinasVirtuales/Docker/telegraf/telegraf.conf

Para que Grafana se inicie correctamente, es necesario proporcionar los permisos adecuados a la carpeta que creará el contenedor, para ello ejecutamos:

mkdir -p /share/MaquinasVirtuales/Docker/grafana/grafana_data
chmod 777 -R /share/MaquinasVirtuales/Docker/grafana/grafana_data

Ahora ya tendremos toda la estructura lista, ahora procedemos a crear los certificados digitales SSL/TLS que usaremos para todos los contenedores, así toda la comunicación se hace vía HTTPS.

Creación de certificados SSL/TLS

Ahora empezaremos con la creación de la CA y los certificados SSL/TLS para los diferentes softwares y que la comunicación sea siempre vía HTTPS. Es muy importante crear estos certificados para que toda la comunicación esté cifrada, porque es muy posible que este sistema de monitorización lo amplíes en un futuro, e instales Telegraf en otros servidores, y solamente necesitaremos configurarlo adecuadamente para que se comunique con InfluxDB. Si no quieres nada de HTTPS, puedes obviar esta parte y quitar de todos los archivos de configuración lo que hace referencia a TLS.

La configuración de los certificados SSL/TLS que vamos a crear, se puede cambiar en cualquier momento a través de los comandos OpenSSL, pero hemos configurado una suite bastante robusta en cuanto a seguridad:

  • Hemos usado una criptografía de curva elíptica, concretamente secp384r1
  • Para el certificado hemos usado ecdsa-with-SHA512.
  • Validez de 10 años
  • subjectAltName: tenemos que poner la dirección IP del servidor InfluxDBv2, este parámetro es crítico, sino no funcionará cuando hagamos la comprobación del certificado desde Grafana.

Para la ejecución de todos estos comandos, se puede usar el servidor de QNAP por SSH sin ningún problema, así lo hemos hecho nosotros. También podrías hacerlo de forma externa en cualquier Linux y posteriormente copiar los certificados digitales al NAS.

Creamos la autoridad de certificación (CA) que usaremos en Telegraf y Grafana para comprobar el certificado de InfluxDBv2. Tendremos que rellenar los datos de país, estado y demás valores, puedes pulsar «enter», lo importante es el CN (Common Name), puedes poner «RZ-CA» o lo que quieras, es para identificar la Autoridad de Certificación.

openssl ecparam -genkey -name secp384r1 -out redeszone-ca.key
openssl req -x509 -new -SHA512 -nodes -key redeszone-ca.key -days 3650 -out redeszone-ca.crt

Creamos el certificado del servidor, es fundamental no olvidar el subjectAltName al firmar el certificado, tenemos que poner la IP del servidor donde está InfluxDBv2

openssl ecparam -genkey -name secp384r1 -out redeszone-autofirmado.key
openssl req -new -SHA512 -key redeszone-autofirmado.key -nodes -out redeszone-autofirmado.csr
openssl req -in redeszone-autofirmado.csr -noout -text

Ahora debemos crear el fichero «opciones.txt» con el siguiente contenido. Es crítico poner la dirección IP de nuestro InfluxDBv2, sustituir 10.11.1.9 por la IP de tu NAS:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
IP.1 = 10.11.1.9

Guardamos el archivo y ahora ejecutamos la siguiente orden para firmar el certificado:

openssl x509 -req -SHA512 -extfile opciones.txt -days 3650 -in redeszone-autofirmado.csr -CA redeszone-ca.crt -CAkey redeszone-ca.key -CAcreateserial -out redeszone-autofirmado.crt

De todos los archivos que nos crea al ejecutar todos estos comandos, debemos usar:

  • redeszone-ca.crt para Telegraf y para Grafana, esto sirve para conectarse con InfluxDBv2 y comprobar el certificado TLS
  • redeszone-autofirmado.crt y redeszone-autofirmado.key tanto en InfluxDBv2 como en Grafana, ya que será el certificado HTTPS para entrar vía web.

Ahora que ya hemos creado todos los certificados, vamos a proporcionarles los permisos adecuados:

chmod 755 /share/MaquinasVirtuales/redeszone-ca.crt
chmod 755 /share/MaquinasVirtuales/redeszone-autofirmado.crt
chmod 755 /share/MaquinasVirtuales/redeszone-autofirmado.key

Y copiarlos en los directorios correspondientes de Telegraf, InfluxDBv2 y Grafana, ponemos:

cp /share/MaquinasVirtuales/redeszone-ca.crt /share/MaquinasVirtuales/Docker/telegraf/redeszone-ca.crt
cp /share/MaquinasVirtuales/redeszone-autofirmado.crt /share/MaquinasVirtuales/Docker/influxdb/redeszone-autofirmado.crt
cp /share/MaquinasVirtuales/redeszone-autofirmado.key /share/MaquinasVirtuales/Docker/influxdb/redeszone-autofirmado.key
cp /share/MaquinasVirtuales/redeszone-autofirmado.crt /share/MaquinasVirtuales/Docker/grafana/redeszone-autofirmado.crt
cp /share/MaquinasVirtuales/redeszone-autofirmado.key /share/MaquinasVirtuales/Docker/grafana/redeszone-autofirmado.key

Ahora ya podemos levantar el «Stack» de Portainer con todo el software.

Instalar todo el software usando Docker

Para la instalación de todo el software vamos a usar la consola por SSH de QNAP, primero crearemos un Docker-compose en el propio NAS con solamente el contenedor de Portainer, que se encargará de crear y gestionar el resto de contenedores muy fácilmente. Después crearemos un Stack con el resto de contenedores. Os vamos a proporcionar todo el código en un archivo .ZIP para su descarga sencilla.

Crearemos un archivo llamado docker-compose.yaml en el directorio «/share/MaquinasVirtuales/Docker» con el siguiente contenido:

#Comprobar Docker-compose:
#docker-compose -f docker-compose.yml config
version: '3.7'
networks:
dockerportainer:
name: dockerportainer
driver: bridge
ipam:
config:
- subnet: 172.30.1.0/24
services:
## Portainer - Gestor Dockers
portainer:
container_name: Portainer
image: portainer/portainer-ce:2.19.5
command: -H unix:///var/run/docker.sock
restart: always
networks:
dockerportainer:
ipv4_address: 172.30.1.2
ports:
- '10.11.1.9:9443:9443/tcp'
security_opt:
- no-new-privileges:true
volumes:
- /share/MaquinasVirtuales/Docker/portainer:/data
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime:ro
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid

Solamente tendrás que modificar la dirección IP 10.11.1.9 por la de tu servidor NAS. Es muy importante que sea lenguaje yaml, podéis usar un validador de sintaxis para los espacios. De todas formas, si usáis el código fuente nuestro vais a poder ejecutarlo sin problemas, es simplemente copiar y pegar. Para hacerlo tendrás que ejecutar «vim docker-compose.yaml» y dentro copiar todo el contenido, si no sabes usar de manera básica vim, siempre puedes usar el editor de texto de QNAP que podéis descargarlo desde App Center.

Ahora lo ejecutaremos con la orden siguiente:

docker compose up -d

Esperamos unos segundos y ya podremos iniciar sesión en Portainer a través de la dirección IP de tu NAS y el puerto 9443. Tendrás que poner la dirección https://IP:9443 y te pedirá el nombre de usuario «admin» y poner una contraseña robusta. Una vez creada la clave, ya podrás acceder a su administración y crear el nuevo stack.

Para crear el nuevo stack en Portainer, debemos irnos a «Dashboard / Stacks«:

Ahora tenemos que darle al botón de «Add Stack» que tenemos en la parte superior derecha.

Y ahora tenemos que darle un nombre (un nombre en minúsculas), y en el cuadro de texto debemos poner todo el código del docker-compose que os vamos a indicar.

Una vez que estemos en el menú anterior, tendremos que copiar el siguiente código:

#Comprobar Docker-compose:
#docker-compose -f docker-compose.yml config
version: '3.7'
networks:
dockerredeszone:
name: dockerredeszone
driver: bridge
ipam:
config:
- subnet: 172.30.2.0/24
services:
#Telegraf para leer datos del QNAP via SNMP
telegraf:
image: telegraf:latest
hostname: "QNAPredeszone"
container_name: telegraf
restart: unless-stopped
networks:
dockerredeszone:
ipv4_address: 172.30.2.2
ports:
- '10.11.1.9:8125:8125/tcp'
environment:
- TZ=Europe/Madrid
volumes:
- /share/MaquinasVirtuales/Docker/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf
- /share/MaquinasVirtuales/Docker/telegraf/mibs:/usr/share/snmp/mibs
- /share/MaquinasVirtuales/Docker/telegraf/conf.d:/etc/telegraf/telegraf.d
- /share/MaquinasVirtuales/Docker/telegraf/redeszone-ca.crt:/etc/telegraf/redeszone-ca.crt
depends_on:
- influxdb
#InfluxDB para Home Assistant y otros servicios
influxdb:
image: influxdb:latest
container_name: influxdb
restart: unless-stopped
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=redeszone
- DOCKER_INFLUXDB_INIT_PASSWORD=redeszone123
- DOCKER_INFLUXDB_INIT_ORG=RedesZoneORG
- DOCKER_INFLUXDB_INIT_BUCKET=RedesZoneBUCKET
- INFLUXD_TLS_CERT=/etc/ssl/redeszone-autofirmado.crt
- INFLUXD_TLS_KEY=/etc/ssl/redeszone-autofirmado.key
networks:
dockerredeszone:
ipv4_address: 172.30.2.3
ports:
- '10.11.1.9:8086:8086/tcp'
volumes:
- /share/MaquinasVirtuales/Docker/influxdb/influxdb_data:/var/lib/influxdb2
- /share/MaquinasVirtuales/Docker/influxdb/config:/etc/influxdb2
- /share/MaquinasVirtuales/Docker/influxdb/redeszone-autofirmado.crt:/etc/ssl/redeszone-autofirmado.crt
- /share/MaquinasVirtuales/Docker/influxdb/redeszone-autofirmado.key:/etc/ssl/redeszone-autofirmado.key
#Grafana para mostrar todo lo de InfluxDB
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: unless-stopped
networks:
dockerredeszone:
ipv4_address: 172.30.2.4
ports:
- '10.11.1.9:8088:3000/tcp'
volumes:
- /share/MaquinasVirtuales/Docker/grafana/grafana_data:/var/lib/grafana
- /share/MaquinasVirtuales/Docker/grafana/redeszone-autofirmado.crt:/etc/ssl/redeszone-autofirmado.crt
- /share/MaquinasVirtuales/Docker/grafana/redeszone-autofirmado.key:/etc/ssl/redeszone-autofirmado.key
depends_on:
- influxdb
environment:
- GF_SERVER_CERT_FILE=/etc/ssl/redeszone-autofirmado.crt
- GF_SERVER_CERT_KEY=/etc/ssl/redeszone-autofirmado.key
- GF_SERVER_PROTOCOL=https
- GF_SECURITY_ADMIN_USER=redeszone
- GF_SECURITY_ADMIN_PASSWORD=redeszone123
## FIN ##

Tal y como ocurre en el caso anterior, es necesario que cambiéis la dirección IP 10.11.1.9 de nuestro NAS, por la del vuestro. Este fichero de docker-compose ya se encargará de crear los usuarios de administración en InfluxDB y Grafana de forma automática, activar el HTTPS y cargar los certificados digitales anteriores. Por este motivo, es muy importante tenerlo todo listo previamente, sino dará error a la hora de desplegar el stack. Este archivo de Docker-compose también lo tenéis disponible en la descarga de todo el código fuente, así no tendréis errores con la sintaxis.

Cuando tengamos todo instalado y funcionando, deberíamos ver algo como esto:

Si entramos en cada contenedor, en la sección de «logs» podemos ver si hay algún tipo de error. De momento no hemos realizado la configuración en Telegraf, así que habrá errores en este contenedor, es completamente normal. Cuando hablemos de «reiniciar» el contenedor, básicamente es seleccionarlo y pinchar en «Restart» para reiniciarlo:

Ahora que ya lo tenemos todo listo, vamos a proceder a realizar la configuración de todo el software.

Configuración del software

Ha llegado el momento de empezar con la configuración de los tres softwares. Primero vamos a configurar el InfluxDBv2 que es la base de datos, porque debemos crear los TOKEN necesarios para que tanto Telegraf como Grafana puedan conectarse correctamente. Os vamos a enseñar cómo crear un nuevo TOKEN con determinados permisos, y cómo conseguir los diferentes identificadores necesarios para el buen funcionamiento del sistema de monitorización.

Configuración de InfluxDBv2

Lo primero que tenemos que hacer es configurar la base de datos de InfluxDBv2, concretamente tenemos que coger cierta información y crear varios TOKEN para que los otros dos softwares (Telegraf y Grafana) puedan tener acceso. Para ello iniciamos sesión vía web, poniendo la dirección HTTPS://IP_NAS:8086 que es el puerto que hemos elegido. El nombre de usuario es «redeszone» y la contraseña es «redeszone123» tal y como teníamos en el docker-compose.

Una vez que estemos dentro, podemos ver en la parte superior izquierda la organización a la que pertenecemos, que es la que configuramos a través del «environment» del Docker-compose.

En este menú de «About» podemos ver el «Organization ID» que lo necesitaremos posteriormente para configurar Grafana, así que no lo olvidéis.

Lo más importante son los «Buckets«, esto son las bases de datos donde se almacenará todo el contenido. Tenemos la posibilidad de crear todos los buckets que nosotros queramos, simplemente le daremos un nombre. Con el docker-compose ya generamos uno automáticamente llamado «RedesZoneBUCKET» que será donde Telegraf escribirá toda la información que recoja vía SNMP. No obstante, podemos crear uno nuevo sin problemas y que recoja toda la información ahí.

En la sección de «API TOKENS» es donde podemos generar TOKEN nuevos con ciertos permisos, tanto de lectura como escritura en todos los BUCKETS o solamente en ciertos.

En este menú, tendremos que darle un nombre el TOKEN, por ejemplo, «Telegraf«, y a continuación, elegiremos el Bucket donde Telegraf trabajará, y le daremos permisos de lectura y escritura. No es recomendable crear un TOKEN universal para todos los buckets por cuestiones de seguridad.

Una vez que lo hayamos creado, copiamos todo ese TOKEN en el portapapeles, será el que usaremos en Telegraf para escribir, o bien en Grafana para leer toda la información.

La configuración de los TOKEN que debemos realizar en InfluxDB son los siguientes:

  • Token para Telegraf: creamos un token con permisos de escritura (no es necesario lectura) solamente en el bucket de trabajo.
  • Token para Grafana: creamos un token con permisos de lectura (no es necesario escritura) para todos los buckets. Si no lo hacemos así, el día de mañana si creamos un nuevo bucket, tendremos que reconfigurar Grafana con un nuevo token que tenga permisos para todos. También podrías hacerlo individualmente para mayor seguridad, pero tendrás que reconfigurar Grafana cada vez que pongas uno nuevo.

Configuración de Telegraf

Ha llegado el momento de configurar Telegraf adecuadamente para que escriba todos los datos conseguidos por SNMP al InfluxDB. Esta parte es la más compleja y delicada, sobre todo si nunca has trabajo con SNMP. Lo primero que debemos hacer es copiar la MIB del sistema operativo de QNAP (ya sea QTS o QuTS hero) en el directorio de «/share/MaquinasVirtuales/Docker/telegraf/mibs», también debemos copiar la MIB SNMPv2 que podéis bajar de aquí. Una vez que estén las dos en el directorio, ya estaremos listos para configurar el archivo de configuración telegraf.conf.

Debe tener el siguiente contenido:

## COMPROBAR LAS MIBS CON EL SNMP
##snmpget -v3 -l authPriv -u telegraf -a SHA -A "redeszone" -x DES -X "redeszone" 10.11.1.9 QTS-MIB::upsBatteryChargeWarningLevel.0
[[outputs.influxdb_v2]]
urls = ["https://10.11.1.9:8086/"]
token = "TOKEN_DEL_INFLUXDB2"
organization = "RedesZoneORG"
bucket = "RedesZoneBUCKET"
tls_ca = "/etc/telegraf/redeszone-ca.crt"
[[inputs.snmp]]
# Direccion IP del servidor NAS.
agents = [ "10.11.1.9" ]
# Intervalo de consulta al NAS
interval = "30s"
# Timeout a la hora de hacer la peticion de la Query
timeout = "30s"
# Numero de intentos máximos antes de dar timeout.
retries = 3
# The GETBULK max-repetitions parameter
max_repetitions = 10
# Nombre del SNMP
name = "snmp.QNAP_NAS"
#SNMPv3
version = 3
sec_name = "telegraf"
auth_protocol = "SHA"
auth_password = "redeszone"
sec_level = "authPriv"
priv_protocol = "DES"
priv_password = "redeszone"
path = ["/usr/share/snmp/mibs"]
###### QuTS hero #####
######
###### Si usas QTS todo lo que hay abajo debes quitarlo, y dejar solamente la parte de QTS.
######
##
## Detalles del sistema operativo y todas las métricas
##
# CPU
[[inputs.snmp.field]]
name = "nombre_nas"
oid = "QTS-MIB::enclosureName.1"
[[inputs.snmp.field]]
name = "cpu_uso"
oid = "QTS-MIB::systemCPU-Usage.0"
# Memoria RAM
[[inputs.snmp.field]]
name = "memoria_ram_total"
oid = "QTS-MIB::systemTotalMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_libre"
oid = "QTS-MIB::systemFreeMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_disponible"
oid = "QTS-MIB::systemAvailableMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_usada"
oid = "QTS-MIB::systemUsedMemory.0"
[[inputs.snmp.field]]
name = "memoria_cache_usada"
oid = "QTS-MIB::systemCacheMemory.0"
[[inputs.snmp.field]]
name = "memoria_buffer"
oid = "QTS-MIB::systemBufferMemory.0"
# Uptime
[[inputs.snmp.field]]
name = "tiempo_uso"
oid = "QTS-MIB::sysUptime.0"
# Version actual firmware
[[inputs.snmp.field]]
name = "firmware_version_actual"
oid = "QTS-MIB::firmwareVersion.0"
# Version disponble del firmware
[[inputs.snmp.field]]
name = "firmware_version_nueva"
oid = "QTS-MIB::firmwareUpgradeAvailable.0"
# Temperatura
[[inputs.snmp.field]]
name = "temperatura_sistema"
oid = "QTS-MIB::enclosureSystemTemp.1"
[[inputs.snmp.field]]
name = "temperatura_sistema_2"
oid = "QTS-MIB::systemTemperature.0"
[[inputs.snmp.field]]
name = "temperatura_cpu"
oid = "QTS-MIB::cpuTemperature.0"
# Ventiladores
[[inputs.snmp.field]]
name = "rpm_ventilador_1"
oid = "QTS-MIB::sysFanSpeed.1"
[[inputs.snmp.field]]
name = "rpm_ventilador_2"
oid = "QTS-MIB::sysFanSpeed.2"
[[inputs.snmp.field]]
name = "rpm_ventilador_3"
oid = "QTS-MIB::sysFanSpeed.3"
##
## Discos duros y SSD
##
# DISCO 1
# Debes poner tantos discos duros y SSD como tengas instalados en el sistema.
[[inputs.snmp.field]]
name = "disco_numero_1"
oid = "QTS-MIB::diskIndex.1"
[[inputs.snmp.field]]
name = "disco_id_1"
oid = "QTS-MIB::diskID.1"
[[inputs.snmp.field]]
name = "disco_fabricante_1"
oid = "QTS-MIB::diskManufacturer.1"
[[inputs.snmp.field]]
name = "disco_modelo_1"
oid = "QTS-MIB::diskModel.1"
[[inputs.snmp.field]]
name = "disco_numero_serie_1"
oid = "QTS-MIB::diskSerialNumber.1"
[[inputs.snmp.field]]
name = "disco_tipo_1"
oid = "QTS-MIB::diskType.1"
[[inputs.snmp.field]]
name = "disco_estado_1"
oid = "QTS-MIB::diskStatus.1"
[[inputs.snmp.field]]
name = "disco_temperatura_1"
oid = "QTS-MIB::diskTemperature.1"
[[inputs.snmp.field]]
name = "disco_capacidad_1"
oid = "QTS-MIB::diskCapacity.1"
##
## Conjuntos de almacenamiento
##
#CONJUNTO DE ALMACENAMIENTO 1
#Debes poner tantos conjuntos de almacenamiento como tengas creados
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_ID"
oid = "QTS-MIB::storagepoolID.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_capacidad_total"
oid = "QTS-MIB::storagepoolCapacity.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_espacio_disponible"
oid = "QTS-MIB::storagepoolFreeSize.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_estado"
oid = "QTS-MIB::storagepoolStatus.1"
##
## Carpetas compartidas (DATASET)
##
#DATASET XXXXXX
#Debes poner tantas carpetas compartidas como tengas creadas
[[inputs.snmp.field]]
name = "carpeta_compartida_1_nombre"
oid = "QTS-MIB::sharedFolderName.1"
[[inputs.snmp.field]]
name = "carpeta_compartida_1_capacidad_total"
oid = "QTS-MIB::sharedFolderCapacity.1"
[[inputs.snmp.field]]
name = "carpeta_compartida_1_capacidad_disponible"
oid = "QTS-MIB::sharedFolderFreeSize.1"
[[inputs.snmp.field]]
name = "carpeta_compartida_1_estado"
oid = "QTS-MIB::sharedFolderStatus.1"
##
## Monitorizacion de un SAI
##
#Monitorizacion de SAI
[[inputs.snmp.field]]
name = "ups_modelo"
oid = "QTS-MIB::upsModel.0"
[[inputs.snmp.field]]
name = "ups_carga_porcentaje"
oid = "QTS-MIB::upsLoadPercentage.0"
[[inputs.snmp.field]]
name = "ups_carga_bateria"
oid = "QTS-MIB::upsBatteryCharge.0"
[[inputs.snmp.field]]
name = "ups_carga_aviso"
oid = "QTS-MIB::upsBatteryChargeWarningLevel.0"
###### QTS #####
######
###### Si usas QuTS hero todo lo que hay abajo debes quitarlo, y dejar solamente la parte de QuTS hero.
######
##
## Detalles del sistema operativo y todas las métricas
##
# CPU
[[inputs.snmp.field]]
name = "nombre_nas"
oid = "QTS-MIB::enclosureName.1"
[[inputs.snmp.field]]
name = "cpu_uso"
oid = "QTS-MIB::systemCPU-Usage.0"
# Memoria RAM
[[inputs.snmp.field]]
name = "memoria_ram_total"
oid = "QTS-MIB::systemTotalMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_libre"
oid = "QTS-MIB::systemFreeMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_disponible"
oid = "QTS-MIB::systemAvailableMem.0"
[[inputs.snmp.field]]
name = "memoria_ram_usada"
oid = "QTS-MIB::systemUsedMemory.0"
[[inputs.snmp.field]]
name = "memoria_cache_usada"
oid = "QTS-MIB::systemCacheMemory.0"
[[inputs.snmp.field]]
name = "memoria_buffer"
oid = "QTS-MIB::systemBufferMemory.0"
# Uptime
[[inputs.snmp.field]]
name = "tiempo_uso"
oid = "QTS-MIB::sysUptime.0"
# Version actual firmware
[[inputs.snmp.field]]
name = "firmware_version_actual"
oid = "QTS-MIB::firmwareVersion.0"
# Version disponble del firmware
[[inputs.snmp.field]]
name = "firmware_version_nueva"
oid = "QTS-MIB::firmwareUpgradeAvailable.0"
# Temperatura
[[inputs.snmp.field]]
name = "temperatura_sistema"
oid = "QTS-MIB::enclosureSystemTemp.1"
[[inputs.snmp.field]]
name = "temperatura_cpu"
oid = "QTS-MIB::cpuTemperature.0"
# Ventiladores
[[inputs.snmp.field]]
name = "rpm_ventilador_1"
oid = "QTS-MIB::sysFanSpeed.1"
[[inputs.snmp.field]]
name = "rpm_ventilador_2"
oid = "QTS-MIB::sysFanSpeed.2"
[[inputs.snmp.field]]
name = "rpm_ventilador_3"
oid = "QTS-MIB::sysFanSpeed.3"
##
## Discos duros y SSD
##
# DISCO 1
[[inputs.snmp.field]]
name = "disco_numero_1"
oid = "QTS-MIB::diskIndex.1"
[[inputs.snmp.field]]
name = "disco_id_1"
oid = "QTS-MIB::diskID.1"
[[inputs.snmp.field]]
name = "disco_fabricante_1"
oid = "QTS-MIB::diskManufacturer.1"
[[inputs.snmp.field]]
name = "disco_modelo_1"
oid = "QTS-MIB::diskModel.1"
[[inputs.snmp.field]]
name = "disco_numero_serie_1"
oid = "QTS-MIB::diskSerialNumber.1"
[[inputs.snmp.field]]
name = "disco_tipo_1"
oid = "QTS-MIB::diskType.1"
[[inputs.snmp.field]]
name = "disco_estado_1"
oid = "QTS-MIB::diskStatus.1"
[[inputs.snmp.field]]
name = "disco_temperatura_1"
oid = "QTS-MIB::diskTemperature.1"
[[inputs.snmp.field]]
name = "disco_capacidad_1"
oid = "QTS-MIB::diskCapacity.1"
##
## Conjuntos de almacenamiento
##
#CONJUNTO DE ALMACENAMIENTO 1
#Debes dar de alta tantos conjuntos de almacenamiento como tengas.
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_ID"
oid = "QTS-MIB::storagepoolID.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_capacidad_total"
oid = "QTS-MIB::storagepoolCapacity.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_espacio_disponible"
oid = "QTS-MIB::storagepoolFreeSize.1"
[[inputs.snmp.field]]
name = "conjunto_almacenamiento_1_estado"
oid = "QTS-MIB::storagepoolStatus.1"
##
## Volumenes creados en QTS
##
#Volumen 1
#Debes poner tantos como tengas creados en el QTS.
[[inputs.snmp.field]]
name = "volumen_1_nombre"
oid = "QTS-MIB::volumeName.1"
[[inputs.snmp.field]]
name = "volumen_1_capacidad_total"
oid = "QTS-MIB::volumeCapacity.1"
[[inputs.snmp.field]]
name = "volumen_1_capacidad_disponible"
oid = "QTS-MIB::volumeFreeSize.1"
[[inputs.snmp.field]]
name = "volumen_1_estado"
oid = "QTS-MIB::volumeStatus.1"
#Monitorizacion de SAI
[[inputs.snmp.field]]
name = "ups_modelo"
oid = "QTS-MIB::upsModel.0"
[[inputs.snmp.field]]
name = "ups_carga_porcentaje"
oid = "QTS-MIB::upsLoadPercentage.0"
[[inputs.snmp.field]]
name = "ups_carga_bateria"
oid = "QTS-MIB::upsBatteryCharge.0"
[[inputs.snmp.field]]
name = "ups_carga_aviso"
oid = "QTS-MIB::upsBatteryChargeWarningLevel.0"

Este archivo es el «universal» para QTS y QuTS hero, por lo que, dependiendo del sistema operativo que uses, tendrás que quitar la parte de uno u otro. Además, con el fin de configurar adecuadamente los diferentes inputs.snmp.field, os recomendamos hacer uso de la herramienta snmpget para ver uno a uno los valores de vuestro NAS. Para usar esto, deberás utilizar cualquier sistema operativo Linux como Debian, y usar la siguiente sintaxis:

snmpget -v3 -l authPriv -u telegraf -a SHA -A "redeszone" -x DES -X "redeszone" 10.11.1.9 QTS-MIB::systemCPU-Usage.0

Al poner esta orden, nos devolverá información sobre el uso de la CPU del sistema. Lo mismo debes hacer con la parte de discos duros y carpetas compartidas o conjuntos de almacenamiento, tienes que adaptar el fichero de configuración anterior.

Otro aspecto muy importante es la parte de «outputs», aquí debes configurar adecuadamente la dirección IP del InfluxDB y el TOKEN correspondiente, así como la organización y el bucket elegido. Todo este código fuente también os lo vamos a proporcionar.

Una vez que lo tengamos todo configurado, reiniciamos el contenedor de Telegraf como os hemos indicado antes, y nos aseguramos de que no haya ningún tipo de error. Sí es normal que aparezca un warning indicando: «DeprecationWarning: Value «agent_host» for option «agent_host_tag» of plugin «inputs.snmp» deprecated since version 1.29.0 and will be removed in : set to «source» for consistent usage across plugins or safely ignore this message and continue to use the current value». Pero no es necesario hacer nada.

Una vez que esperemos aproximadamente un minuto, podremos ver en nuestro InfluxDB que ya hay información en el bucket configurado. Con el «Data Explorer» podemos ir navegando por la diferente información escrita en la base de datos, y al terminar podemos pinchar en «Submit» para que nos la muestre. Este «Data explorer» es muy completo, porque también nos permite tratar los datos e incluso generar el código fuente para posteriormente copiarlo en Grafana.

Es muy importante elegir siempre el «host» QNAPredeszone tal y como podéis ver, para localizar exactamente nuestro servidor NAS.

Podemos mostrar el uso de la CPU de las últimas horas, tanto la media, como últimos valores etc. En la siguiente imagen podéis ver la configuración con «mean»:

En la siguiente imagen podéis ver la configuración con «last»:

También podremos ver las temperaturas de los discos duros o SSD, muchísima información del NAS lo tenemos disponible aquí.

En estos instantes, ya tenemos Telegraf funcionando perfectamente enviando los datos a la base de datos con InfluxDBv2. Ahora vamos a irnos a Grafana para proceder con la configuración básica.

Configuración de Grafana

Lo primero que tenemos que hacer, es iniciar sesión vía web, poniendo la dirección HTTPS://IP_NAS:8088 que es el puerto que hemos elegido. El nombre de usuario es «redeszone» y la contraseña es «redeszone123» tal y como teníamos en el docker-compose. Nada más acceder, veremos acceso a algunos tutoriales que podemos seguir para realizar la puesta en marcha.

Lo primero que debemos hacer es irnos a «Connections» y elegir «InfluxDB»:

Ahora elegiremos el nombre del origen de los datos, nosotros hemos puesto simplemente «influxdb«. En la sección de «Query Language» debemos elegir «Flux» ya que estamos ante una base de datos InfluxDBv2. Abajo tendremos que empezar con la configuración para conectarnos a la base de datos:

  • HTTP:
    • URL: https://IP_NAS:8086
    • Auth: «with CA cert» activado

En la siguiente imagen podéis ver cómo quedaría:

Ahora en la sección de TLS/SSL Auth Details, debemos copiar el contenido del redeszone-ca.crt, es decir, el certificado de la Autoridad de Certificación. Esto sirve para que Grafana verifique que se está conectando al servidor InfluxDBv2 correctamente y con seguridad.

En el menú de «InfluxDB Details», debemos poner:

  • Organization: tenemos que poner el identificador de la organización que teníamos en «ABOUT», es la cadena de caracteres.
  • Token: es el token que generamos en InfluxDB con permisos de lectura a todos los buckets. Debemos copiarlo aquí.

Recuerda que el menú de «Organization» está en About, concretamente aquí:

Una vez que lo hayamos hecho todo, pinchamos en «Save & Test» y nos indicará si se ha conectado correctamente o no. Si se ha conectado bien, nos indicará que el origen de los datos está correcto, y que se ha encontrado con un bucket.

Ahora podemos irnos al menú principal, arriba a la derecha en el «+» elegimos «New Dashboard«.

Ahora elegimos «Add Visualization«:

Elegimos el origen de los datos, que es el InfluxDB que acabamos de crear.

Si nos vamos al menú del InfluxDB en el «Data Explorer», mostramos la información que queramos, tal y como aparece aquí:

Al pinchar en «Script editor» nos aparecerá el código fuente de la consulta que debemos poner en Grafana:

Con tan solo copiar este código, Grafana no lo mostrará exactamente igual, pero lógicamente tenemos la posibilidad de personalizar en detalle absolutamente todo:

Este es uno de los muchos paneles que podemos configurar muy fácilmente, ahora ya solo es necesario que investigues todo lo que puedes mostrar con Grafana, e incluso configurar avisos por email o Telegram.

Ahora que ya tenemos todo conectado, os vamos a enseñar cómo son nuestros paneles, y os daremos el código fuente para que lo adaptéis como vosotros queráis.

Panel de control de Grafana monitorizando el NAS

Grafana es un software que nos va a permitir mostrar muchísimos datos, y es que tenemos paneles realmente completos y totalmente personalizables. Lo mejor de todo esto, es que vamos a poder usar nuestro NAS como servidor de monitorización, donde recibir todos los datos para posteriormente mostrarlos con Grafana de una forma realmente bonita. Actualmente nosotros usamos Grafana para recibir datos desde el propio NAS de QNAP, desde un pfSense que es nuestro router, pero que está virtualizado en QNAP, y también desde un contenedor docker llamado speedtest-tracker que nos permite realizar test de velocidad automáticos y nos genera datos muy interesantes sobre velocidades y latencias.

Panel de Grafana monitorizando QNAP

El panel de monitorización del QNAP está formado por diferentes módulos, vamos a poder ver el tiempo de encendido, la versión actual del firmware y si hay una nueva, así como monitorizar el SAI que tengamos conectado por USB. También podemos ver el uso de CPU, RAM, funcionamiento de los ventiladores, las temperaturas de CPU y sistema.

Las temperaturas de las unidades SSD y de los discos duros es crítico, por lo que también lo tenemos monitorizándolos, tanto con la temperatura actual como el histórico, para detectar posibles problemas que tengamos.

Tener los conjuntos de almacenamiento y las carpetas compartidas (o volúmenes) con espacio libre es crítico para el buen funcionamiento del sistema, así que también monitorizamos en detalle todo esto.

Como podéis ver, usamos diferentes tipos de gráficas para mostrarnos la información. En esencia nos muestra la misma información, pero una nos mostrará los datos en bruto, otra nos muestra el porcentaje muy fácil de ver, y en la gráfica de abajo tendremos el histórico de almacenamiento.

Panel de Grafana monitorizando pfSense

Aprovechando que tenemos la estructura de InfluxDBv2 y Grafana, también hemos puesto a nuestro pfSense a enviar los datos a la base de datos, para monitorizar todo en detalle para saber si hay algún tipo de problema. Podremos ver los datos de CPU, RAM, uso de disco y mucha más información.

Algo muy interesante, es que podemos monitorizar todas las interfaces de red del equipo, tanto las físicas como también las virtuales que vayamos a crear. Podemos ver la velocidad en tiempo real, los paquetes, el tráfico en tiempo real de descarga y subida, así como el tráfico acumulado y los errores de entrada y/o salida.

Simplemente tenemos que instalar el paquete de Telegraf en pfSense, y configurarlo adecuadamente con el siguiente código en la parte de opciones personalizadas (no debemos marcar InfluxDB en la parte superior):

[[outputs.influxdb_v2]]
urls = ["https://192.168.10.2:8086/"]
token = "XXXXX"
organization = "BronHome"
bucket = "PFSENSE"
tls_ca = "/usr/local/etc/telegraf-ca.crt"

Aplicamos, y ya deberíamos empezar a verlo en el InfluxDB, previamente tenemos que crear el bucket nuevo con su correspondiente token. Recuerda que los datos en InfluxDB pueden tardar un par de minutos en aparecer, no es algo instantáneo, pero en unos dos minutos sí debería estar funcionando sin problemas.

Panel de Grafana monitorizando el test de velocidad de Internet

Speedtest-tracker es un contenedor Docker que permite realizar test de velocidad cada cierto tiempo, y nos mostrará las estadísticas en una web específicamente dedicada a ello. No obstante, en la web de administración tenemos la posibilidad de enviar los datos también a InfluxDB. Nosotros lo hemos hecho, y así podemos mostrarlo todo en Grafana de manera centralizada. De todas formas, la web de administración de este Docker también tiene un muy buen diseño, por lo que no tienes la necesidad de integrarlo en InfluxDB y Grafana, pero debido a la facilidad de configuración de este Docker, nosotros lo hemos puesto y la verdad es que visualmente es realmente espectacular para controlar todas las velocidades reales de nuestra conexión.

Como podéis ver, todos estos paneles llevan bastante trabajo para personalizarlo en detalle y que sean útiles para ver toda la monitorización de los diferentes equipos. Para facilitaros la creación y configuración de los paneles, podéis descargarlos todos directamente desde aquí:

Si habéis seguido paso a paso nuestro tutorial, tendrás que tocar muy poco la consulta Flux que realizamos en cada panel, no obstante, si has ido cambiando los nombres para personalizarlo todo en detalle a tu gusto, lo más normal es que tengas que modificar la consulta Flux seleccionando el BUCKET, el hostname y otros parámetros similares.

No olvides que tenemos un vídeo en YouTube explicando todo esto, el vídeo es bastante largo porque explicamos paso a paso todo desde el principio. Aunque no tengas conocimientos sobre monitorización, ni Telegraf, InfluxDB ni Grafana, podrás seguir este tutorial y que no tengas problemas. Lógicamente es necesario ciertos conocimientos base para poder realizar toda esta configuración, pero está todo muy bien explicado tanto en este tutorial como en el vídeo, que será una ayuda importante para poder seguir el tutorial sin dificultad.

Hasta aquí hemos llegado con este tutorial paso a paso para instalar y configurar Telegraf, InfluxDBv2 y Grafana. Si tenéis alguna duda podéis ponernos un comentario.

2 Comentarios
Logo redeszone.net
Navega gratis con cookies…

Navegar por redeszone.net con publicidad personalizada, seguimiento y cookies de forma gratuita. i

Para ello, nosotros y nuestros socios i necesitamos tu consentimiento i para el tratamiento de datos personales i para los siguientes fines:

Las cookies, los identificadores de dispositivos o los identificadores online de similares características (p. ej., los identificadores basados en inicio de sesión, los identificadores asignados aleatoriamente, los identificadores basados en la red), junto con otra información (p. ej., la información y el tipo del navegador, el idioma, el tamaño de la pantalla, las tecnologías compatibles, etc.), pueden almacenarse o leerse en tu dispositivo a fin de reconocerlo siempre que se conecte a una aplicación o a una página web para una o varias de los finalidades que se recogen en el presente texto.

La mayoría de las finalidades que se explican en este texto dependen del almacenamiento o del acceso a la información de tu dispositivo cuando utilizas una aplicación o visitas una página web. Por ejemplo, es posible que un proveedor o un editor/medio de comunicación necesiten almacenar una cookie en tu dispositivo la primera vez que visite una página web a fin de poder reconocer tu dispositivo las próximas veces que vuelva a visitarla (accediendo a esta cookie cada vez que lo haga).

La publicidad y el contenido pueden personalizarse basándose en tu perfil. Tu actividad en este servicio puede utilizarse para crear o mejorar un perfil sobre tu persona para recibir publicidad o contenido personalizados. El rendimiento de la publicidad y del contenido puede medirse. Los informes pueden generarse en función de tu actividad y la de otros usuarios. Tu actividad en este servicio puede ayudar a desarrollar y mejorar productos y servicios.

La publicidad que se presenta en este servicio puede basarse en datos limitados, tales como la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que está interactuando (o con el que ha interactuado) (por ejemplo, para limitar el número de veces que se presenta un anuncio concreto).

  • Un fabricante de automóviles quiere promocionar sus vehículos eléctricos a los usuarios respetuosos con el medioambiente que viven en la ciudad fuera del horario laboral. La publicidad se presenta en una página con contenido relacionado (como un artículo sobre medidas contra el cambio climático) después de las 18:30 h a los usuarios cuya ubicación no precisa sugiera que se encuentran en una zona urbana.
  • Un importante fabricante de acuarelas quiere realizar una campaña publicitaria en Internet para dar a conocer su última gama de acuarelas con la finalidad de llegar tanto a artistas aficionados como a profesionales y, a su vez, se evite mostrar el anuncio junto a otro contenido no relacionado (por ejemplo, artículos sobre cómo pintar una casa). Se detectará y limitará el número de veces que se ha presentado el anuncio a fin de no mostrarlo demasiadas veces.

La información sobre tu actividad en este servicio (por ejemplo, los formularios que rellenes, el contenido que estás consumiendo) puede almacenarse y combinarse con otra información que se tenga sobre tu persona o sobre usuarios similares(por ejemplo, información sobre tu actividad previa en este servicio y en otras páginas web o aplicaciones). Posteriormente, esto se utilizará para crear o mejorar un perfil sobre tu persona (que podría incluir posibles intereses y aspectos personales). Tu perfil puede utilizarse (también en un momento posterior) para mostrarte publicidad que pueda parecerte más relevante en función de tus posibles intereses, ya sea por parte nuestra o de terceros.

  • En una plataforma de redes sociales has leído varios artículos sobre cómo construir una casa en un árbol Esta información podría añadirse a un perfil determinado para indicar tuinterés en el contenido relacionado con la naturaleza, así como en los tutoriales de bricolaje (con el objetivo de permitir la personalización del contenido, de modo que en el futuro, por ejemplo, se te muestren más publicaciones de blogs y artículos sobre casas en árboles y cabañas de madera).
  • Has visualizado tres vídeos sobre la exploración espacial en diferentes aplicaciones de televisión. Una plataforma de noticias sin relación con las anteriores y con la que no has tenido contacto en el pasado crea un perfil basado en esa conducta de visualización marcando la exploración del espacio como un tema de tu posible interés para para otros vídeos.

El contenido que se te presenta en este servicio puede basarse en un perfilde personalización de contenido que se haya realizado previamente sobre tu persona, lo que puede reflejar tu actividad en este u otros servicios (por ejemplo, los formularios con los que interactúas o el contenido que visualizas), tus posibles intereses y aspectos personales. Un ejemplo de lo anterior sería la adaptación del orden en el que se te presenta el contenido, para que así te resulte más sencillo encontrar el contenido (no publicitario) que coincida con tus intereses.

  • Has leído unos artículos sobre comida vegetariana en una plataforma de redes sociales. Posteriormente has usado una aplicación de cocina de una empresa sin relación con la anterior plataforma. El perfil que se ha creado sobre tu persona en la plataforma de redes sociales se utilizará para mostrarte recetas vegetarianas en la pantalla de bienvenida de la aplicación de cocina.
  • Has visualizado tres vídeos sobre remo en páginas web diferentes. Una plataforma de video, no relacionada con la página web en la que has visualizado los vídeos sobre remo, pero basandose en el perfil creado cuando visistaste dicha web, podrá recomendarte otros 5 vídeos sobre remo cuando utilices la plataforma de video a través de tu televisor .

La información sobre qué publicidad se te presenta y sobre la forma en que interactúas con ella puede utilizarse para determinar lo bien que ha funcionado un anuncio en tu caso o en el de otros usuarios y si se han alcanzado los objetivos publicitarios. Por ejemplo, si has visualizado un anuncio, si has hecho clic sobre el mismo, si eso te ha llevado posteriormente a comprar un producto o a visitar una página web, etc. Esto resulta muy útil para comprender la relevancia de las campañas publicitarias./p>

  • Has hecho clic en un anuncio en una página web/medio de comunicación sobre descuentos realizados por una tienda online con motivo del “Black Friday” online y posteriormente has comprado un producto. Ese clic que has hecho estará vinculado a esa compra. Tu interacción y la de otros usuarios se medirán para saber el número de clics en el anuncio que han terminado en compra.
  • Usted es una de las pocas personas que ha hecho clic en un anuncio que promociona un descuento por el “Día de la madre”de una tienda de regalos en Internet dentro de la aplicación de una web/medio de comunicación. El medio de comunicación quiere contar con informes para comprender con qué frecuencia usted y otros usuarios han visualizado o han hecho clic en un anuncio determinado dentro de la aplicación y, en particular, en el anuncio del “Día de la madre” para así ayudar al medio de comunicación y a sus socios (por ejemplo, las agencias de publicidad) a optimizar la ubicación de los anuncios.

La información sobre qué contenido se te presenta y sobre la forma en que interactúas con él puede utilizarse para determinar, por ejemplo, si el contenido (no publicitario) ha llegado a su público previsto y ha coincidido con sus intereses. Por ejemplo, si hasleído un artículo, si has visualizado un vídeo, si has escuchado un “pódcast” o si has consultado la descripción de un producto, cuánto tiempo has pasado en esos servicios y en las páginas web que has visitado, etc. Esto resulta muy útil para comprender la relevancia del contenido (no publicitario) que se te muestra.

  • Has leído una publicación en un blog sobre senderismo desde la aplicación móvil de un editor/medio de comunicación y has seguido un enlace a una publicación recomendada y relacionada con esa publicación. Tus interacciones se registrarán para indicar que la publicación inicial sobre senderismo te ha resultado útil y que la misma ha tenido éxito a la hora de ganarse tu interés en la publicación relacionada. Esto se medirá para saber si deben publicarse más contenidos sobre senderismo en el futuro y para saber dónde emplazarlos en la pantalla de inicio de la aplicación móvil.
  • Se te ha presentado un vídeo sobre tendencias de moda, pero tu y otros usuarios habéis dejado de visualizarlo transcurridos unos 30 segundos. Esta información se utilizará para valorar la duración óptima de los futuros vídeos sobre tendencias de moda.

Se pueden generar informes basados en la combinación de conjuntos de datos (como perfiles de usuario, estadísticas, estudios de mercado, datos analíticos) respecto a tus interacciones y las de otros usuarios con el contenido publicitario (o no publicitario) para identificar las características comunes (por ejemplo, para determinar qué público objetivo es más receptivo a una campaña publicitaria o a ciertos contenidos).

  • El propietario de una librería que opera en Internet quiere contar con informes comerciales que muestren la proporción de visitantes que han visitado su página y se han ido sin comprar nada o que han consultado y comprado la última autobiografía publicada, así como la edad media y la distribución de género para cada uno de los dos grupos de visitantes. Posteriormente, los datos relacionados con la navegación que realizas en su página y sobre tus características personales se utilizan y combinan con otros datos para crear estas estadísticas.
  • Un anunciante quiere tener una mayor comprensión del tipo de público que interactúa con sus anuncios. Por ello, acude a un instituto de investigación con el fin de comparar las características de los usuarios que han interactuado con el anuncio con los atributos típicos de usuarios de plataformas similares en diferentes dispositivos. Esta comparación revela al anunciante que su público publicitario está accediendo principalmente a los anuncios a través de dispositivos móviles y que es probable que su rango de edad se encuentre entre los 45 y los 60 años.

La información sobre tu actividad en este servicio, como tu interacción con los anuncios o con el contenido, puede resultar muy útil para mejorar productos y servicios, así como para crear otros nuevos en base a las interacciones de los usuarios, el tipo de audiencia, etc. Esta finalidad específica no incluye el desarrollo ni la mejora de los perfiles de usuario y de identificadores.

  • Una plataforma tecnológica que opera con un proveedor de redes sociales observa un crecimiento en los usuarios de aplicaciones móviles y se da cuenta de que, en funciónde sus perfiles, muchos de ellos se conectan a través de conexiones móviles. La plataforma utiliza una tecnología nueva para mostrar anuncios con un formato óptimo para los dispositivos móviles y con un ancho de banda bajo a fin de mejorar su rendimiento.
  • Un anunciante está buscando una forma de mostrar anuncios en un nuevo tipo de dispositivo. El anunciante recopila información sobre la forma en que los usuarios interactúan con este nuevo tipo de dispositivo con el fin de determinar si puede crear un nuevo mecanismo para mostrar la publicidad en ese tipo de dispositivo.

El contenido que se presenta en este servicio puede basarse en datos limitados, como por ejemplo la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que estás interactuando (o con el que has interactuado) (por ejemplo, para limitar el número de veces que se te presenta un vídeo o un artículo en concreto).

  • Una revista de viajes, para mejorar las experiencias de viaje en el extranjero, ha publicado en su página web un artículo sobre nuevos cursos que ofrece una escuela de idiomas por Internet. Las publicaciones del blog de la escuela se insertan directamente en la parte inferior de la página y se seleccionan en función de la ubicación no precisa del usuario (por ejemplo, publicaciones del blog que explican el plan de estudios del curso para idiomas diferentes al del país en el que este te encuentras).
  • Una aplicación móvil de noticias deportivas ha iniciado una nueva sección de artículos sobre los últimos partidos de fútbol. Cada artículo incluye vídeos alojados por una plataforma de streaming independiente que muestra los aspectos destacados de cada partido. Si adelantas un vídeo, esta información puede utilizarse para determinar que el siguiente vídeo a reproducir sea de menor duración.

Se puede utilizar la localización geográfica precisa y la información sobre las características del dispositivo

Al contar con tu aprobación, tu ubicación exacta (dentro de un radio inferior a 500 metros) podrá utilizarse para apoyar las finalidades que se explican en este documento.

Con tu aceptación, se pueden solicitar y utilizar ciertas características específicas de tu dispositivo para distinguirlo de otros (por ejemplo, las fuentes o complementos instalados y la resolución de su pantalla) en apoyo de las finalidades que se explican en este documento.

O sin cookies desde 1,67€ al mes

Por solo 1,67€ al mes, disfruta de una navegación sin interrupciones por toda la red del Grupo ADSLZone: adslzone.net, movilzona.es, testdevelocidad.es, lamanzanamordida.net, hardzone.es, softzone.es, redeszone.net, topesdegama.com y más. Al unirte a nuestra comunidad, no solo estarás apoyando nuestro trabajo, sino que también te beneficiarás de una experiencia online sin cookies.