Monitoriza tu NAS Synology con Grafana

6 minutos de lectura

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:

1docker 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 ese 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

 1version: '2.1'
 2services:
 3
 4   influxdb:
 5      image: influxdb:1.8
 6      container_name: influxdb
 7      networks:
 8         - metricas
 9      environment:
10         - INFLUXDB_DB=nas_telegraf
11         - INFLUXDB_ADMIN_USER=admin
12         - INFLUXDB_ADMIN_PASSWORD=admin
13         - INFLUXDB_USER=nas_telegraf
14         - INFLUXDB_USER_PASSWORD=nas_telegraf
15         - INFLUXDB_HTTP_AUTH_ENABLED=true
16      ports:                 # Optionnel
17         - 8086:8086         # Optionnel
18      volumes:
19         - /volume1/docker/metricas/influxdb:/var/lib/influxdb
20      restart: unless-stopped
21
22   grafana:
23      image: grafana/grafana
24      container_name: grafana
25      networks:
26         - metricas
27      volumes:
28         - /volume1/docker/metricas/grafana:/var/lib/grafana
29      user: "1026"           # Optionnel
30      ports:
31         - 3000:3000
32      depends_on:
33         - telegraf
34         - influxdb
35      restart: unless-stopped
36
37   telegraf:
38      image: telegraf
39      container_name: telegraf
40      networks:
41         - metricas
42      ports:                 # Optionnel
43         - 8125:8125         # Optionnel
44         - 8092:8092/udp     # Optionnel
45         - 8094:8094         # Optionnel
46      depends_on:
47         - influxdb
48      volumes:
49         - /volume1/docker/metricas/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:ro
50         - /usr/share/snmp/mibs:/usr/share/snmp/mibs:ro
51         - /var/run/docker.sock:/var/run/docker.sock:ro
52      restart: unless-stopped
53
54networks:
55   metricas:
56      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%5Fnas: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 enconrear 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 gran día

Referencia