Grafana: Métricas en OpenWrt
2020-01-09
Índice
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.
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:
[[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.
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…🐧