Índice #
Ya he escrito varios artículos sobre como recolectar mótricas con Grafana, y aunque lo explicado en este articulo está orientado a la instalación en un NAS de Synology tambión lo
Ya he escrito varios artículos sobre como recolectar mótricas con Grafana, y aunque lo explicado en este articulo está orientado a la instalación en un NAS de Synology tambión lo puedes aplicar a cualquier servidor o máquina con GNU/Linux instalado, ya que el despliegue del stack Telegraf + Influx + Grafana (TIG) lo voy realzar mediante docker-compose
Repasando conceptos #
Antes de empezar es bueno recordar lo que hace cada elemento de nuestro despliegue
Grafana #
Grafana es una plataforma de código abierto para el monitoreo, análisis y visualización de datos que viene con un servidor web que permite acceder a ól desde cualquier lugar.
En la interfaz web, los usuarios pueden crear tableros para representar mótricas a lo largo del tiempo.
Telegraf #
Es un agente que se encarga de recolectar las diferentes mótricas y enviarlas a la base de datos Influxdb. Mediante su fichero de configuración puede configurar que mótricas recoger o bien utilizar plugins.
Influxdb #
Es la base de datos donde almacenaremos las mótricas
SNMP #
Tambión hago uso del protocolo simple de administración de red o SNMP (del inglós Simple Network Management Protocol) es un protocolo que facilita el intercambio de información de administración entre dispositivos de red.
Preparando el entorno #
Estructura #
Antes de nada debemos crear una serie de carpetas donde se irán desplegando los contenedores con sus respectivas configuraciones y datos.
Yo he creado una carpeta llamada metricas y dentro de esta, una carpeta por cada elemento del stack TIG
Red #
Podemos crear la red a utilizar por TIG y configurar el fichero dcker compose
para que use esa red o bien crearla al mimo tiempo que desplegamos el stack, si eliges esta última forma te puedes saltar este paso
Desde la aplicación Docker en la sección de Red hacemos clic en Agregar
Eliges un nombre para la nueva red y el tramo de red que vas a utilizar para los contenedores.
Si tienes activado el cortafuegos debes de dar acceso a tu NAS a la nueva red
Telegraf #
Antes de arrancar Telegraf debemos de crear el fichero de configuración lo puedes generar totalmente limpio o puedes crearlo manualmente
Automáticamente #
Para ello debes de conectarte vía SSH al NAS Synology y ejecutar:
docker run --rm telegraf telegraf config > telegraf.conf
Este seria un archivo limpio, ahora según sobre que dispositivo deseemos recolectar las mótricas tendrás que añadir o configurar el fichero para de tu dispositivo.
Manualmente #
En la carpeta donde se desplegará telegraf descarga y copia el fichero telegraf.conf, cambia xxx.xxx.xxx.xxx, por la dirección IP de los equipos a supervisar (tu NAS, router, etc), si vas a supervisar varios equipos, las direcciones IP han de ir separadas por comas :
Este fichero de configuración está pensado para recolectar las mótricas de dispositivos Synology y sus archivos MIB
Influxdb #
Los datos para la creación y configuración de la base de datos los editamos en el fichero docker-compose.yml
Servidor SNMP #
Activaremos el servidor SNMP para recopilar las mótricas del NAS
Si tienes un router Synology actívalo tambión
Fichero docker-compose.yml #
Una vez terminada la configuración previa vreamos nuestro fichero docker-compose.yalm y desplegamos nuesro stack
version: '2.1'
services:
influxdb:
image: influxdb:1.8
container_name: influxdb
networks:
- metricas
environment:
- INFLUXDB_DB=nas_telegraf
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=admin
- INFLUXDB_USER=nas_telegraf
- INFLUXDB_USER_PASSWORD=nas_telegraf
- INFLUXDB_HTTP_AUTH_ENABLED=true
ports: # Optionnel
- 8086:8086 # Optionnel
volumes:
- /volume1/docker/metricas/influxdb:/var/lib/influxdb
restart: unless-stopped
grafana:
image: grafana/grafana
container_name: grafana
networks:
- metricas
volumes:
- /volume1/docker/metricas/grafana:/var/lib/grafana
user: "1026" # Optionnel
ports:
- 3000:3000
depends_on:
- telegraf
- influxdb
restart: unless-stopped
telegraf:
image: telegraf
container_name: telegraf
networks:
- metricas
ports: # Optionnel
- 8125:8125 # Optionnel
- 8092:8092/udp # Optionnel
- 8094:8094 # Optionnel
depends_on:
- influxdb
volumes:
- /volume1/docker/metricas/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
- /usr/share/snmp/mibs:/usr/share/snmp/mibs:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: unless-stopped
networks:
metricas:
external: true
Cambia las rutas a los volúmenes de cada contenedor de acuerdo a la estructura de tu servidor así como la red utilizada
Gafana #
Accederemos a la interfaz web de Grafana en la dirección http://IP_NAS:3000/
Las credenciales de acceso la primera vez son admin/admin
Origen de datos #
Lo primero que debemos de configurar en Grafana es el origen de los datos para realizar las gráficas, para ello hacemos clic en DataSources
Seleccionamos Influxdb como base de datos
Rellenamos los datos de conexión, el usuario y contraseña son los que configuramos en el fichero docker-compose.yml
Hacemos clic en Save & Test para comprobar que funciona
Tableros #
Lo mejor para empezar es que importes un Dashboard y ver como trabaja antes de decidirte a crear uno desde cero, por ejemplo el tablero 9961, aunque puedes encotrar más para Synology aquí
Tambión puedes bajarte el fichero json que contiene la configuración de un tablero e importarla
Espero que te haya gustado, pasa un buen día. 🐧