Grafana: Métricas en OpenWrt

2020-01-09

Índice

  1. Instalando collectd en el router
    1. Configuración
  2. Configurando InfluxDB
    1. Copiar definiciones de datos
    2. Crear la base de datos
  3. Mótricas en Grafana
  4. Referencias

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

opkg update

Instalamos collectd y los plugins que nos interesen:

opkg install collectd
opkg install luci-app-statistics collectd collectd-mod-cpu \
collectd-mod-interface collectd-mod-iwinfo \
collectd-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

/etc/init.d/luci_statistics enable
/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.

img

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.

img

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

img

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/.

img

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.

img

img

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

img

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:

[[collectd]]
   enabled = true
   bind-address = ":25826"
   database = "WRT3200"
   retention-policy = ""

  # The collectd service supports either scanning a directory for multiple types
  # db files, or specifying a single db file.
  # typesdb = "/usr/local/share/collectd"
  #
  security-level = "none"
  # auth-file = "/etc/collectd/auth_file"

  # These next lines control how batching works. You should have this enabled
  # otherwise you could get dropped metrics or poor performance. Batching
  # will buffer points in memory if you have many coming in.

  # Flush if this many points get buffered
  batch-size = 5000

  # Number of batches that may be pending in memory
  batch-pending = 10

  # Flush at least this often even if we haven't hit buffer limit
  batch-timeout = "10s"

  # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
  read-buffer = 0

  # Multi-value plugins can be handled two ways.
  # "split" will parse and store the multi-value plugin data into separate measurements
  # "join" will parse and store the multi-value plugin as a single multi-value measurement.
  # "split" is the default behavior for backward compatability with previous versions of influxdb.
  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:

sudo mkdir /usr/local/share/collectd

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

scp 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

influx

create database WRT3200

Por ultimo reiniciamos el servidor de base datos

sudo 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.

img

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

img

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

img

Si no quieres crearte un tablero desde cero puedes importar este

img

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

img

img

img

Espero que te haya gustado, pasa un buen dia…🐧

Referencias


Ingrese la dirección de su instancia