Isabel Bernal Márquez

[centreon] Meta Services en las Custom Views

Un meta-service de centreon es un servicio virtual que nos devuelve el agregado de las métricas de diferentes servicios vía operaciones matemáticas (están disponibles average, sum, min, max). Se parametrizan del mismo modo que el resto de servicios, es decir, tenemos thresholds, notificaciones, gráficas, etc.

Por ejemplo, sería posible determinar el tráfico total WAN simplemente reuniendo todos los servicios implicados en un solo meta-service.

Si quisiésemos, además, plasmarlos en una custom view, sería necesario consultar y hacer algunos cambios en la base de datos. Estos servicios no aparecen vinculados a ningún host en Resources Status y no podemos importarlos desde ningún widget de forma “tradicional”.

En primer lugar debemos buscar cómo ha llamado centreon internamente a nuestro nuevo servicio de cara a las métricas. Si hacemos click para ver los detalles,

Vemos que el meta-id que le ha asignado centreon es 63. Con esa información podremos saber el nombre del “host”. Nos vamos al menú izquierdo en Personas > Parameters > Data

Y así tendremos el dato: _ModuleMeta

Bien, pasamos a la configuración del widget en la custom view. Lo que debemos hacer es “engañar” a centreon configurando uno cualquiera pero del mismo tipo que necesitemos (por ejemplo, graph-monitoring) para después cambiarlo por nuestros datos en la BDD.

Entramos en nuestra BDD y buscamos, en las tablas que los contienen, el id del host ModuleMeta y de nuestro meta-service MF-_Trafico_in_H01_02-U01-DCI-01-INT_H5_CLUSTER0_6x20G.

MariaDB [centreon]> SELECT * FROM tabla_host where host_name="_Module_Meta";
...
|    1011 |                       NULL |               NULL | NULL                    |             NULL |              NULL |                NULL | NULL
| ModuleMeta
...

host_id=1011

MariaDB [centreon]> SELECT * FROM tabla_service where service_description="meta_63";
...
|     158130 |                          NULL |               NULL |             NULL |                NULL |              NULL | meta_63             | NULL          | MF_-_Trafico_in_H01_02-U01-DCI-01-INT_H5_CLUSTER0_6x20G
...

meta-service_id=158130

Nos vamos ahora a la tabla de widgets para averiguar el id del que hemos creado a modo de “señuelo” para centreon.

MariaDB [centreon]> SELECT * FROM tabla_widgets;
...
|      1129 |               6 | Trafico in INT_H5_CLUSTER0_6x20G                               

widget_id=1129

Por último sólo quedaría modificar la entrada correspondiente en la tabla que contenga las preferencias de nuestro widget.

MariaDB [centreon]> SELECT * FROM tabla_widget_preferencias where widget_view_id=1129;
+----------------+--------------+------------------+---------+
| widget_view_id | param_id | preferencias_valor | user_id |
+----------------+--------------+------------------+---------+
|           1129 |           51 | 3083-94207       |       1 |
...

En la columna preferencias_valor tendríamos, en nuestro caso, la pareja host-servicio. Es lo que debemos cambiar con los datos de host_id y meta-service_id que hemos obtenido.

MariaDB [centreon]> update tabla_widget_preferencias set preferencias_valor='1011-158130' where widget_view_id=1129
Query OK, 222 rows affected (0.005 sec)
Rows matched: 222  Changed: 222  Warnings: 0

MariaDB [centreon]> SELECT * FROM tabla_widget_preferencias where widget_view_id=1129;

+----------------+--------------+------------------+---------+
| widget_view_id | param_id | preferencias_valor| user_id |
+----------------+--------------+------------------+---------+
|           1129 |           51 | 1011-158130      |       1 |

Ahora, si volvemos a nuestro widget, ya nos permite seleccionar el servicio adecuado (meta_63) aun sin establecer ningún host.

Trabajando con Centreon 21.10

built with btw btw logo