Configuración e integración de dashboards de Grafana en WOCU-Monitoring
WOCU-Monitoring ofrece como complemento a sus funciones una serie de herramientas y aplicaciones OpenSource, desde donde es posible generar y exportar variedad de cuadros de mando (dashboards), véase Grafana.
Atención
La sección Cuadros de Mando (Dashboards) es un módulo adicional que enriquece las funcionalidades que WOCU-Monitoring ofrece por defecto.
Gracias a la versatilidad de WOCU-Monitoring para gestionar y procesar infinidad de métricas, con valores recogidos y almacenados durante chequeos, es posible integrar y renderizar cuadros de mando con potentes capacidades gráficas, es decir, WOCU-Monitoring soporta la integración, visualización y tratamiento de datos de multitud de fuentes y los renderiza en su propia interfaz.
La pestaña Cuadros de Mando (Dashboards) de un Reino determinado, centraliza los diferentes cuadros de mando habilitados en WOCU-Monitoring, bajo libre configuración y elección del Administrador.
El presente caso de uso abarca desde la creación de un panel en Grafana, hasta su integración y visualización en la pestaña Cuadros de Mando (Dashboards) de un Reino en WOCU.
Esta entrada se presenta dividida en cuatro bloques:
Creación del dashboard en Grafana.
Exportación del dashboard desde Grafana
Integración del dashboard en WOCU.
Visualización en la pestaña Cuadros de Mando (Dashboards) de un Reino.
1. Creación de un dashboard en Grafana
Existen dos vías de acceso a Grafana:
Mediante la URL válida resultado del acceso por protocolo HTTP a la IP de monitorización, añadiendo posteriormente el sufijo grafana:
http://<IP_de_monitorización>/grafana
Desde WOCU-Monitoring, a través de su acceso directo ubicado en la barra superior de navegación, siempre y cuando haya sido dado de alta previamente.
Recuerda
WOCU-Monitoring reserva la barra superior para que el Administrador pueda configurar y anclar enlaces directos a herramientas complementarias a WOCU-Monitoring.
Más información en: Añadir accesos directos a la barra superior de WOCU-Monitoring
A continuación, abandonaremos la aplicación y accederemos a la página principal Home de Grafana. En el menú vertical izquierdo, habrá que hacer clic sobre el icono ➕, y eligir la opción Dashboard, para comenzar con la configuración.
El primer paso consistirá en agregar el primer panel (elemento gráfico básico para la visualización de datos). Grafana provee diferentes tipos de paneles, en nuestro caso, seleccionaremos un panel de tipo gráfico: Graph.
Como punto de partida trabajaremos sobre esta gráfica, comenzando a editar desde el menú desplegable superior (junto al título del panel):
A continuación, comenzaremos a configurar las métricas y otros aspectos
visuales de la gráfica.
En este panel vamos añadir las métricas traffic_in
y traffic_out
, para visualizar el caudal de tráfico de las diferentes
interfaces de red de un Dispositivo.
Para ello realizaremos la siguiente configuración:
Nos mantenemos en Metrics y en el desplegable Data Source elegiremos la bases de datos
influx-demos
a la que se conectará Grafana para extraer los datos métricos. Toda BBDD debe ser dada de alta previamente desde el módulo de configuración de Grafana. Más información en: Alta de Fuentes de Datos (Data Sources) en Grafana.Grafana permite agregar varias consultas para solapar gráficas de diferentes datos. A continuación, definiremos una query por cada métrica. Los datos se visualizarán automáticamente en la gráfica superior:
Query A
FROM: en Select measurement definiremos la expresión regular
/metric_.*traffic_in/
, para capturar todas las métricas de tráfico de entrada existentes en la BBDD.A continuación, en el operador WHERE definiremos la siguiente consulta:
host_name =~
/^$EquiposRed$/
–> esta variable consulta y devuelve solo los equipos con conectividad de la BBDD.service_description =~
/^$InterfacesRed$/
–> esta variable complementa la anterior condición, devolviendo las interfaces (cuando existan) de los equipos de red. En conclusión, se filtrará los equipos de red que tengan aplicado el pack de monitorización genérico de tráfico. Más información en: Construcción de Variables de consulta en Grafana.Los siguientes parámetros serán configurados para reunir en un único valor (promedio) todos los valores de tráfico de entrada por interfaz y mostrarlos en la leyenda, mediante el uso de tags y patrones:
GROUP BY: pueden existir varios servicios asociados a una métrica y viceversa, por lo tanto, añadiremos la
tag (service_description)
para agrupar todos los servicios asociados a la métrica de tráfico entrante.ALIAS BY: añadimos el patrón
[[tag_service_description]]_IN
como identificativo de la las interfaces de red con tráfico entrante en la leyenda.
Query B
FROM: en Select measurement definiremos la expresión regular
/metric_.*traffic_out/
, para capturar todas las métricas de tráfico de entrada existentes en la BBDD.A continuación, en el operador WHERE definiremos la siguiente consulta:
host_name =~
/^$EquiposRed$/
–> esta variable consulta y devuelve solo los equipos con conectividad de la BBDD.service_description =~
/^$InterfacesRed$/
–> esta variable complementa la anterior condición, devolviendo las interfaces (cuando existan) de los equipos de red. En conclusión, se filtrará los equipos de red que tengan aplicado el pack de monitorización genérico de tráfico. Más información en: Construcción de Variables de consulta en Grafana.Los siguientes parámetros serán configurados para reunir en un único valor (promedio) todos los valores de tráfico de salida por equipo o interfaz y mostrarlos en la leyenda, mediante el uso de tags y patrones:
GROUP BY: pueden existir varios servicios asociados a una métrica y viceversa, por lo tanto, añadiremos la
tag (service_description)
para agrupar todos los servicios asociados a la métrica de tráfico saliente.ALIAS BY: añadimos el patrón
[[tag_service_description]]_OUT
como identificativo de la las interfaces de red con tráfico de salida en la leyenda.
En Axes se configuran los ejes de la gráfica modificando la escala y tipo de unidad. Para este caso de uso, en ambos ejes cambiaremos la unidad a:
Bits/sec
para la medición de datos de tráfico.En Legend se configura la leyenda de la gráfica. Para este caso de uso mostraremos la leyenda en formato tabular (casilla
As table
) y añadiremos el último valor recogido de la métrica (casillacurrent
), el valor medio (casillaavg
) y total (casillatotal
) resultado de la query planteada.En Display se define el estilo de la gráfica. Para nuestro caso de uso, marcaremos la casilla
Points
, para trazar con puntos los datos a lo largo del eje y ajustaremos su tamaño enPoint radius
. Por último, seleccionando la opción connected enNull value
la gráfica enlazará también los valores nulos (desconocidos o perdidos).Para finalizar la configuración, en General añadiremos el título a la gráfica en el campo
Title
que será mostrado en la parte superior del panel.
Por último, ya disponemos de la primera gráfica del dashboard.
En función de la configuración establecida mediante el uso de variables, en la parte superior de la gráfica podemos seleccionar dos elementos que influirán en los datos mostrados: un Dispositivo determinado en el desplegable EquiposRed y una de las interfaces de red identificadas en dicho Dispositivo en el filtro InterfacesRed. En consecuencia la gráfica quedará acotada y actualizada con los valores métricos relativos al tráfico de entrada y salida de dicha interfaz.
De modo que esta gráfica refleja el caudal de tráfico de de los Dispositivos con la interfaz N.
2. Exportación e integración del dashboard en WOCU
Generado el dashboard final, se procederá a su exportación. Para ello, en el encabezado superior de la vista, entre las acciones disponibles en la parte derecha, haremos clic sobre la opción Share dashboard.
A continuación, se abrirá el siguiente cuadro de diálogo con tres posibles
opciones para compartir el dashboard (Link, Snapshot y Export).
Nos mantenemos en la vista de la sección Link
, donde automáticamente se
generará un enlace único del dashboard que tendremos que copiar.
Conservaremos la configuración que viene establecida por defecto, para exportar el dashboard con el último rango de tiempo guardado y los valores de las variables de plantilla seleccionadas.
Atención
Es importante guardar todos los cambios realizados antes de generar y copiar el enlace.
El último paso en Grafana será pulsar el botón Copy, para que el enlace del dashboard pase a nuestro portapapeles.
3. Integración del cuadro de mando en WOCU-Monitoring
La agregación del dashboard será llevada a cabo solo por Administradores del sistema, pero será visible para el resto de usuarios.
Iniciando sesión en WOCU-Monitoring y desde la Configuración Avanzada del Import-tool, podremos vincular nuestro Dashboard construido en Grafana.
Dentro de la vista de administración, habrá que localizar la opción Extended Dashboards, y hacer clic en el botón Añadir (+ Add), ubicado en la misma fila, tal y como se aprecia en la siguiente imagen:
A continuación accederemos a una nueva ventana para dar de alta el dashboard en WOCU, cuyos campos tendrán que ser editados manualmente. Estos son:
• Name: añadiremos un identificador con el que se conocerá el dashboard en WOCU-Monitoring, por ejemplo:
Grafana-documentantion
.• Hostgroup: seleccionando un Hostgroups del desplegable, el dashboard será visible además de en el Reino Estándar, en el Reino Basado en Hostgroups en el que esté integrado el Hostgroup elegido.
• Fullview: en la sección Cuadros de Mando (Dashboards), existen dos vistas: Fullview y Panels, por las que se distribuirán los diferentes paneles y dashboards. Marcaremos esta casilla, para que nuestro dashboard sea visible una única vista.
• Visible: dejaremos marcada esta casilla para visualizar el nuevo dashboard. En caso contrario, quedará configurado pero no será visible en WOCU-Monitoring.
• Created: indica la fecha y hora exacta de creación y alta del dashboard en WOCU-Monitoring.
Ya configurado, guardaremos la edición y reiniciaremos sesión en WOCU-Monitoring. En el Import-tool en el que esté configurado este Reino, ya estará disponible el nuevo dashboard: Grafana-documentantion.
4. Visualización en la pestaña Dashboard de un Reino
Una vez dentro del Reino en cuestión y de la pestaña Cuadros de Mando (Dashboards), debemos acceder a la vista Fullview (como hemos configurado previamente) y seleccionar el dashboard añadido recientemente en el Filtro Search, donde se listan todos los paneles disponibles. De forma inmediata será mostrado en la interfaz.
Por defecto, el panel representará los datos recopilados en las últimas 24 horas, pero esto puede ser modificado gracias al Selector por rango temporal, donde es posible elegir un nuevo criterio temporal predefinido, o configurar un nuevo periodo mediante la opción Custom Range. También es posible ejecutar refrescos forzados de datos haciendo clic sobre el icono de las flechas en movimiento circular (🔁).
Por último, un dashboards es un entorno dinámico compuesto por elementos interactivos con funcionalidades extras, que permiten sacar un mayor partido a los datos mostrados en sus diferentes representaciones gráficas. Algunas funcionalidades e interacciones posibles son:
Cambiar el tamaño del panel o reubicarlo.
Visualizar una única serie de datos en la gráfica haciendo clic sobre la misma en la leyenda, y obtener los valores exactos registrados en un punto en concreto de la gráfica.
Existen multitud de opciones aplicables que variarán en función de la tipología del elemento y del alcance de la herramienta que los provee a WOCU. Conoce más funcionalidades en: Customización de Dashboards y funciones interactivas.
Nota
Recuerda que un dashboard bien construido permite conocer en tiempo real o en periodos de tiempo concretos, el progreso y evolución de métricas relevantes que impactan en nuestro negocio. Lo que facilita la medición del rendimiento, la toma decisiones y la aplicación de medidas de actuación en consecuencia.
Alta de Fuentes de Datos (Data Sources) en Grafana
Previo a la creación de un primer dashboard es necesario dar de alta la fuente de origen de datos (backends de almacenamiento), de donde se extraerán los valores métricos para ser representados. La adición de un nuevo Data Sources se realiza desde el módulo Configuration, accesible en el menú vertical izquierdo, como se observa en la siguiente imagen:
A continuación, pulsando el botón verde Add Data Source accederemos al formulario de alta:
Para este caso de uso hemos creado el siguiente Data Source:
Name: nombre por el que será identificada la fuente de datos en Grafana. Añadiremos
Influx_demos
para este caso de uso.Type: Grafana soporta diferentes tipos de fuentes de datos donde almacena todas las métricas registradas. En función de la tipología elegida, existirán unos parámetros de configuración adecuados a las características y capacidades de la fuente. En este caso de uso crearemos una BBDD InfluxBD como origen de datos métricos.
URL: de la máquina donde se aloja la BBDD InfluxBD. Es el resultado del acceso por protocolo HTTP a la dirección IP, más el puerto de la API InfluxDB (por defecto
8086
):
http://<IP>:8086
Database: nombre de la BBDD de InfluxDB, a la que se va acceder para la petición de valores métricos. Recuerda que cada BBDD recopila distintas métricas. Es importante conocer previamente el alcance y contenido de cada BBDD. En este caso de uso utilizaremos la BBDD
wocu-demos
.
Guardados los cambios realizados, este nuevo Data Source quedará creado en Grafana para ser utilizado como origen de valores métricos de cualquier dashboard.
Atención
Es preciso disponer de permisos de administración para el alta de Data Sources en el sistema.
Construcción de Variables de consulta en Grafana
Es posible predefinir una query concreta a una BBDD mediante la configuración de variables.
La construcción de variables de consulta, se realiza en el módulo Setting, accesible desde las acciones del menú superior del panel, como se observa en la siguiente imagen:
A continuación, pulsando el botón verde Add Variable accederemos al formulario de construcción:
En este caso de uso hemos utilizado dos variables:
1. EquiposRed
Su configuración es la siguiente:
Name: nombre por el que será conocida la variable en el dashboard.
Type: opción query, ya que la función de nuestra variable es consultar y devolver elementos.
Data Source:
Influx_demos
es la fuente de datos donde Grafana va a realizar la consulta y petición de datos.Refresh: opción on Dashboard Load para que el sistema refresque datos cuando cambiemos de dashboard.
Query: espacio para introducir la consulta que devolverá todos los equipos en los que se mide la conectividad y tráfico de red, es decir, que tengan asignados packs de monitorización de medición de tráfico.
SHOW TAG VALUES WITH KEY = host_name WHERE service_description =~ /^Traffic.*/Una previsualización de los elementos que cumplan con la consulta planteada será visible en la parte inferior de la vista.
Guardados los cambios realizados, la variable quedará creada para ser aplicada en configuración de cualquier panel del dashboard.
2. InterfacesRed
Su configuración es la siguiente:
Name: nombre por el que será conocida la variable en el dashboard.
Type: opción query, ya que la función de nuestra variable es consultar y devolver elementos.
Data Source:
Influx_demos
es la fuente de datos donde Grafana va a realizar la consulta y petición de datos.Refresh: opción on Dashboard Load para que el sistema refresque datos cuando cambiemos de dashboard.
Query: espacio para introducir la consulta que devolverá las interfaces de red descubiertas para cada equipo. Por cada interfaz se pintará en la gráfica los valores relativos al tráfico de entrada y salida que han sido registrados en WOCU-Monitoring.
SHOW TAG VALUES WITH KEY = "service_description" WHERE "service_description" =~ /^Traffic.*/ AND "host_name" =~ /^$EquiposRed$/Una previsualización de los elementos que cumplan con la consulta planteada será visible en la parte inferior de la vista.
Guardados los cambios realizados, la variable quedará creada para ser aplicada en configuración de cualquier panel del dashboard.
Recuerda
Tanto Grafana como Influx son soluciones que, aunque se integran como parte de WOCU-Monitoring, no son desarrollos creados ni mantenidos por nuestro equipo técnico, de modo que su descripción técnica o de funcionamiento excede el alcance de este Manual de Usuario.
Amplia información en su documentación oficial: