# Pandora Azure Event Hubs

# Introducción

**Ver**. 23-08-2022  
  
Plugin con el que monitorear un espacio de nombres de Event Hubs de azure.

<div id="bkmrk-tipo%3A-plug-in-de-ser"><div>**Tipo**: Plug-in de servidor</div></div>

# Matriz de compatibilidad

<table border="1" id="bkmrk-sistemas-donde-se-ha"><tbody><tr><td>**Sistemas donde se ha probado**</td><td>CentOS 7, Fedora, rocky linux

</td></tr><tr><td>**Sistemas donde debería funcionar**</td><td>Cualquier sistema linux

</td></tr></tbody></table>

# Pre requisitos

- Tener el **Data Server** de Pandora FMS habilitado
- Tener el **Plugin Server** de Pandora FMS habilitado
- Conocer algunas credenciales de tu cuenta, como tu tenant id, secret, client id y el id resource del namespace

# Configuración previa

El plugin hace uso de un fichero en el que se pueden meter dos tipos de datos.

```
#credentials
tenant_id:<tenant-id>
client_id:<client-id>
secret:<secret>
#id resources
eventhubspacename_id:<event_hub_namespace_resource_id>
```

**Obtención de credenciales necesarias para el uso del plugin.**

**1. Credenciales para autenticar:**

-Tenant id

-Client id

-Secret

**2. ID de recurso**

**Es necesaria la id de cada recurso que monitoriza el plugin estas son :**

\- ID de recurso de la base de datos

**Obtención de tenant id y client id.**

1\. Para obtener el tenant id y el client id, iremos al menú registro de aplicaciones dentro de active directory:

[![menu.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/menu.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/menu.png)

2\. Entraremos dentro de la aplicación.

[![menu2.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/menu2.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/menu2.png)

3\. En el menú de la aplicación aparecerá el tenant id y el client id.

[![menu3.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/menu3.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/menu3.png)

4\. Para encontrar el secreto iremos a certificados y secretos dentro del menu de active directory.

[![menu4.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/menu4.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/menu4.png)

5\. Dentro de este menú podremos ver las claves de secreto o generarlas (tiene que ser el valor de la clave, no la id)

[![menu5.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/menu5.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/menu5.png)

**Obtención de la id de recurso de la base de datos.**

En el espacio de nombres, en información general, podremos ver la id de recurso del event hub pinchando en Vista json.

[![image-1652285449723.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/scaled-1680-/image-1652285449723.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-05/image-1652285449723.png)

# Parámetros

<table border="1" id="bkmrk-par%C3%A1metro-descripci%C3%B3" style="width: 100%;"><tbody><tr><td style="width: 17.5496%;">**Parámetro**</td><td style="width: 82.4504%;">**Descripción**</td></tr><tr><td style="width: 17.5496%;">--timespan</td><td style="width: 82.4504%;">En horas(opcional), ultimo periodo de tiempo, se puede utilizar en una ejecución personalizada para mostrar los datos desde un periodo de tiempo. (opcional) </td></tr><tr><td style="width: 17.5496%;">--metric</td><td style="width: 82.4504%;">Nombre de la métrica para ejecución personalizada. (opcional)</td></tr><tr><td style="width: 17.5496%;">--granularity</td><td style="width: 82.4504%;">En minutosCombinado con timespan te mostrará los datos en intervalos. (opcional) </td></tr><tr><td style="width: 17.5496%;">--name\_module</td><td style="width: 82.4504%;">Para elegir el nombre del módulo en una ejecución personalizada. (opcional)</td></tr><tr><td style="width: 17.5496%;">--tentacle\_port</td><td style="width: 82.4504%;">Puerto de tentacle.Por defecto 41121 (opcional)</td></tr><tr><td style="width: 17.5496%;">--tentacle\_address</td><td style="width: 82.4504%;">Ip del servidor tentacle al que mandar los datos (opcional)</td></tr><tr><td style="width: 17.5496%;">--agent\_name</td><td style="width: 82.4504%;">Para ponerle un nombre al agente que contendrá los módulos , por defecto : "Azure SQL". (opcional)</td></tr><tr><td style="width: 17.5496%;">--prefix\_module</td><td style="width: 82.4504%;">Para ponerle un prefijo a los módulos por si se quieren diferencias de otras ejecuciones. (opcional)</td></tr><tr><td style="width: 17.5496%;">--conf</td><td style="width: 82.4504%;">Path del archivo conf con las querys (obligatorio)</td></tr><tr><td style="width: 17.5496%;">-g,--group</td><td style="width: 82.4504%;">Grupo de destino de Pandora FMS (opcional)</td></tr><tr><td style="width: 17.5496%;">--data\_dir</td><td style="width: 82.4504%;">Directorio de datos de Pandora FMS. **Por defecto** es */var/spool/pandora/data\_in/* (opcional)</td></tr><tr><td style="width: 17.5496%;">--as\_agent\_plugin</td><td style="width: 82.4504%;">Es opcional, si quieres que el plugin sea de agente y te meta los módulos en el agente de pandora, ejecuta esto con un 1 (opcional)</td></tr></tbody></table>

# Ejecución manual

**Ejecución manual básica**

```
./pandora_azureventhubs --conf <path-conf> --as_agent_plugin 1
```

[![image-1661256584234.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256584234.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256584234.png)

[![image-1661256628704.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256628704.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256628704.png)

**Ejecución manual personalizada**

```
./pandora_azureventhubs --conf <path-conf> --as_agent_plugin 1 --timespan <period in hours> --granularity <interval in minutes> --metric <name-metric> --name_module <name_module>
```

[![image-1661256378023.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256378023.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256378023.png)

[![image-1661256406937.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256406937.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256406937.png)

# Configuración en PandoraFMS

**Como plugin de servidor**

**Instalación manual**

Iremos a servidores &gt; plugins:

[![image-1629974405286.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974405286.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/image-1629974405286.png)

Pinchamos en añadir:

[![image-1629974430627.png](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/scaled-1680-/image-1629974430627.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2021-08/image-1629974430627.png)

Le ponemos en nombre y la descripción que se prefiera.

Metemos como comando la ejecución con la ruta del plugin:

```
/path_pandora_azureventhubs
```

<p class="callout info align-center">Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora\_server/util/plugin/</p>

Y en parámetros del plugin introduciremos estos seguidos de la macro "\_field&lt;N&gt;\_", el obligatorio para que funcione es --conf.

<p class="callout warning">Aunque no es obligatorio, es muy recomendable el uso del parámetro --agent\_name , ya que nos permite personalizar el nombre del agente que contendrá los módulos creados para cada consulta personalizada. También es recomendable usar el parámetro --prefix\_module ya que este nos permitirá asignar un prefijo a los módulos, lo que puede ser util para reconocerlos más rápido y diferenciarlos si creamos varias ejecuciones para bases de datos diferentes.</p>

**--CONF**

[![image-1656438528074.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-06/scaled-1680-/image-1656438528074.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-06/image-1656438528074.png)

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

[![image-1646741530197.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/scaled-1680-/image-1646741530197.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-03/image-1646741530197.png)

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar.

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente

# Módulos generados por el plugin

El plugin creará un agente con el nombre que hayamos puesto con el parametro --agent\_name.

[![image-1661256675433.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256675433.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256675433.png)

Y creará los siguientes módulos:

<table border="1" id="bkmrk-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-%C2%A0-"><tbody><tr><td><div><div>SuccessfulRequests</div></div></td></tr><tr><td><div><div>ServerErrors</div></div></td></tr><tr><td><div><div>UserErrors</div></div></td></tr><tr><td><div><div>QuotaExceededErrors</div></div></td></tr><tr><td><div><div>ThrottledRequests</div></div></td></tr><tr><td><div><div>IncomingRequests</div></div></td></tr><tr><td><div><div>IncomingMessages</div></div></td></tr><tr><td><div><div>IncomingBytes</div></div></td></tr><tr><td><div><div>OutgoingBytes</div></div></td></tr><tr><td><div><div>ActiveConnections</div></div></td></tr><tr><td><div><div>ConnectionsOpened</div></div></td></tr><tr><td><div><div>ConnectionsClosed</div></div></td></tr><tr><td><div><div>CaptureBacklog</div></div></td></tr><tr><td><div><div>CapturedMessages</div></div></td></tr><tr><td><div><div>CapturedBytes</div></div></td></tr><tr><td><div><div>Size</div></div></td></tr><tr><td><div><div>NamespaceCpuUsage</div></div></td></tr><tr><td><div><div>NamespaceMemoryUsage</div></div></td></tr></tbody></table>

[![image-1661256696704.png](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/scaled-1680-/image-1661256696704.png)](https://pandorafms.com/guides/public/uploads/images/gallery/2022-08/image-1661256696704.png)