Grafana: Métricas en OpenWrt

4 minutos de lectura

Ya vimos como instalar TIG (Telegraf + Influxdb + Grafana), en el articulo de hoy veremos como incluir las métricas en un router con firmware OpenWrt instalado, todo ello gracias a collectd

Instalando collectd en el router

Puedes hacerlo conectándote al router desde la interfaz web LuCI o a través de ssh, yo lo he realizado mediante conexión ssh

Lo primero es actualizar la lista de paquetes

1
2opkg update

Instalamos collectd y los plugins que nos interesen:

1opkg install collectd
2opkg install luci-app-statistics collectd collectd-mod-cpu \
3collectd-mod-interface collectd-mod-iwinfo \
4collectd-mod-load collectd-mod-memory collectd-mod-network collectd-mod-uptime

Hay muchos mas plugins que quizás te puedan interesar, los puedes encontrar en su wiki.

Habilitamos los servicios

1
2/etc/init.d/luci_statistics enable
3/etc/init.d/collectd enable

Configuración

Entra en la interface web del router y deberías ver una nueva entrada en el menú llamada Statistics. Pulsa en Setup, deberías de ver una pantalla parecida a esta.

En el campo Nombre de máquina pon el nombre que identifique a tu disolutivo. también puedes cambiar las opciones que más te interesen, como por ejemplo el tiempo de intervalo de envió de métricas al servidor.

Ahora pulsa en la pestaña General plugins y habilita los plugins Processor, System Load, Memoria y Tiempo activo. Pulsa en el botón Guardar y Aplicar.

En la pestaña Network plugins, selecciona las Interfaces que quieras monitorizar (lan, wan, wifi, etc).

También en la pestaña Network plugins, selecciona las redes inalámbricas que desees monitorizar, al ogual que en paso anterior pulsa en el botón/Guardar y Aplicar/.

Ahora pulsa en la pestaña Output plugins y habilita el plugin para que podamos enviar las métricas a Influxdb. Para terminar introducimos la dirección IP del servidor donde esta corriendo Influxdb y el puerto 25826. Pulsa en el botón Guardar y Aplicar.

Deja el plugin RRDTool como está o si quieres lo puedes deshabilitar ya que veremos las graficas en Grafana.

Configurando InfluxDB

Debemos configurar Influxdb para que recolecte las métricas del agente collectd.

Editamos el fichero de configuración /etc/influxdb/influxdb.conf para habilitarlo:

 1
 2[[collectd]]
 3   enabled = true
 4   bind-address = ":25826"
 5   database = "WRT3200"
 6   retention-policy = ""
 7
 8  # The collectd service supports either scanning a directory for multiple types
 9  # db files, or specifying a single db file.
10  # typesdb = "/usr/local/share/collectd"
11  #
12  security-level = "none"
13  # auth-file = "/etc/collectd/auth_file"
14
15  # These next lines control how batching works. You should have this enabled
16  # otherwise you could get dropped metrics or poor performance. Batching
17  # will buffer points in memory if you have many coming in.
18
19  # Flush if this many points get buffered
20  batch-size = 5000
21
22  # Number of batches that may be pending in memory
23  batch-pending = 10
24
25  # Flush at least this often even if we haven't hit buffer limit
26  batch-timeout = "10s"
27
28  # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
29  read-buffer = 0
30
31  # Multi-value plugins can be handled two ways.
32  # "split" will parse and store the multi-value plugin data into separate measurements
33  # "join" will parse and store the multi-value plugin as a single multi-value measurement.
34  # "split" is the default behavior for backward compatability with previous versions of influxdb.
35  parse-multivalue-plugin = "join"

Copiar definiciones de datos

Para terminar debemos de copiar el fichero type.db que se encuentra el router al dispositivos que tiene servidor Influxdb,

Creamos la carpeta como root:

1
2sudo mkdir /usr/local/share/collectd

Copiamos el fichero, yo lo realzado mediante scp, pero tu puedes elegir la forma que mas te guste

1
2scp root@ROUTER:/usr/share/collectd/types.db /usr/local/share/collectd/types.db

Crear la base de datos

Me gusta tener una instancia de la base de datos por cada dispositivo del que voy a recibir las métricas, desde la terminal

1
2influx
3
4create database WRT3200

Por ultimo reiniciamos el servidor de base datos

1
2sudo systemctl restart influxdb

Métricas en Grafana

Añadimos una nueva fuente de datos para Influxdb con los datos de conexión del servidor Influxdb y una etiqueta descriptiva.

Introducimos el nombre de la instancia de la base datos y la contraseña.

Como puedes ver ahora dispones de dos fientes de datos, la que configuramos en el anterior articulo y la nueva que acabos de crear.

Si no quieres crearte un tablero desde cero puedes importar este

Ahora te dejo unas capturas de las métricas recolectadas del router.

Espero que te haya gustado, pasa un buen dia…:penguin:

Referencias