Configuración e integración de dashboards de Grafana en WOCU

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

Gracias a la versatilidad de WOCU 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 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, bajo libre configuración y elección del Administrador.

../../_images/5_049_aggregator_use_cases-dashboard-view_0-40.jpg

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:

  1. Creación del dashboard en Grafana.
  2. Exportación del dashboard desde Grafana
  3. Integración del dashboard en WOCU.
  4. 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, a través de su acceso directo ubicado en la barra superior de navegación, siempre y cuando haya sido dado de alta previamente.
../../_images/5_050_aggregator_use_cases-grafana-link-menu_0-40.jpg

Recuerda

WOCU reserva la barra superior para que el Administrador pueda configurar y anclar enlaces directos a herramientas complementarias a WOCU. Más información en: Añadir accesos directos a la barra superior de WOCU

A continuación, abandonaremos WOCU 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.

../../_images/5_051_aggregator_use_cases-grafana-add-dash_0-40.jpg

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.

../../_images/5_052_aggregator_use_cases-grafana-add-panel_0-40.jpg

Como punto de partida trabajaremos sobre esta gráfica, comenzando a editar desde el menú desplegable superior (junto al título del panel):

../../_images/5_053_aggregator_use_cases-grafana-graph-edit_0-40.jpg

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.

    ../../_images/5_056_aggregator_use_cases-grafana-source_0-40.jpg

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:

../../_images/5_055_aggregator_use_cases-grafana-query_0-40.jpg

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.

    ../../_images/5_056_aggregator_use_cases-grafana-axes_0-40.jpg
  • 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 (casilla current), el valor medio (casilla avg) y total (casilla total) resultado de la query planteada.

    ../../_images/5_057_aggregator_use_cases-grafana-legend_0-40.jpg
  • 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 en Point radius. Por último, seleccionando la opción connected en Null value la gráfica enlazará también los valores nulos (desconocidos o perdidos).

    ../../_images/5_058_aggregator_use_cases-grafana-display_0-40.jpg
  • 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.

    ../../_images/5_059_aggregator_use_cases-grafana-general_0-40.jpg

Por último, ya disponemos de la primera gráfica del dashboard.

../../_images/5_060_aggregator_use_cases-grafana-graph_0-40.jpg

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.

../../_images/5_065_aggregator_use_cases-grafana-filters_0-40.jpg

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.

../../_images/5_044_aggregator_use_cases-grafana-export_0-40.jpg

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.

../../_images/5_045_aggregator_use_cases-grafana-export-confirmation_0-40.jpg

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.

Attention

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.

../../_images/5_046_aggregator_use_cases-grafana-copy_0-40.jpg

3. Integración del cuadro de mando en WOCU


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 y desde la Configuración Avanzada del Import-tool, podremos vincular nuestro Dashboard construido en Grafana

../../_images/4_086_import-tool_advanced-configuration_button_0-40.jpg

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:

../../_images/5_047_aggregator_use_cases-wocu-extended-dashboards_0-40.jpg

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:

../../_images/5_048_aggregator_use_cases-wocu-extended-dashboards-add_0-40.jpg

• Name: añadiremos un identificador con el que se conocerá el dashboard en WOCU, 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: Vista Completa (FullView) y Paneles (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.

• Created: indica la fecha y hora exacta de creación y alta del dashboard en WOCU.

Ya configurado, guardaremos la edición y reiniciaremos sesión en WOCU. 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 Vista Completa (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.

../../_images/5_061_aggregator_use_cases-dashboard-selector_0-40.jpg

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 (🔁).

../../_images/5_062_aggregator_use_cases-dashboard-time-interval_0-40.jpg

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.
../../_images/5_063_aggregator_use_cases-dashboard-resize_0-40.jpg
  • 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.
../../_images/5_064_aggregator_use_cases-dashboard-detail_0-40.jpg

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 Cuadros de Mando y funciones interactivas.

Note

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:

../../_images/5_070_aggregator_use_cases-dashboard-add-data-sources_0-40.jpg

A continuación, pulsando el botón verde Add Data Source accederemos al formulario de alta:

../../_images/5_071_aggregator_use_cases-dashboard-add-data-sources_0-40.jpg

Para este caso de uso hemos creado el siguiente Data Source:

../../_images/5_072_aggregator_use_cases-dashboard-add-data-sources_0-40.jpg

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.

Attention

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:

../../_images/5_066_aggregator_use_cases-dashboard-setting_0-40.jpg

A continuación, pulsando el botón verde Add Variable accederemos al formulario de construcción:

../../_images/5_067_aggregator_use_cases-dashboard-new-variable_0-40.jpg

En este caso de uso hemos utilizado dos variables:

1. EquiposRed

../../_images/5_068_aggregator_use_cases-dashboard-equipored_0-40.jpg

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

../../_images/5_069_aggregator_use_cases-dashboard-interfaces_0-40.jpg

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.

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, 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: