# Discovery

Este plugin puede integrarse con el *Discovery* de Pandora FMS.

Para ello se debe cargar el paquete `.disco` correspondiente desde la librería de Pandora FMS o desde el sistema de plugins de la consola.

Una vez cargado, se podrán monitorizar recursos Azure Load Balancer creando tareas de *Discovery* desde la sección correspondiente de Cloud/Application Discovery.

Para cada tarea se solicitarán los siguientes datos en el paso **Azure Base**:

- **Azure Subscription ID:** identificador de la suscripción de Azure donde se descubrirán los Load Balancers.
- **Azure Tenant ID:** identificador del tenant de Azure Active Directory usado por el Service Principal.
- **Azure Client ID:** identificador de aplicación del Service Principal.
- **Azure Client Secret:** secreto del Service Principal.
- **Resource group:** filtro opcional para limitar el descubrimiento a un grupo de recursos. Si se deja vacío, se descubren Load Balancers de toda la suscripción.

En el paso **Azure Load Balancer Detailed** se podrán configurar opciones adicionales:

- **Max threads:** número máximo de hilos usados para procesar los Load Balancers descubiertos.
- **Target agent:** agente destino donde se almacenarán todos los módulos cuando no se active la creación de agente por Load Balancer.
- **Custom module prefix:** prefijo opcional para todos los nombres de módulos generados.
- **Scan Load Balancers:** activa el descubrimiento automático de Load Balancers.
- **Create agent per Load Balancer:** si está activo, cada Load Balancer genera su propio agente. Si está desactivado, todos los módulos se envían al agente indicado en **Target agent**.
- **Custom Load Balancer agent prefix:** prefijo opcional para los agentes creados por Load Balancer. Por ejemplo, `Azure LB ` creará agentes como `Azure LB my-load-balancer`.
- **Enable entities file re-scan interval:** activa el refresco periódico del fichero temporal de entidades descubiertas.
- **Re-scan entities file interval:** intervalo usado para reconstruir la caché de entidades cuando el re-scan está activado.
- **Metric time window:** ventana temporal usada para consultar métricas de Azure Monitor. Normalmente debe coincidir o ser ligeramente superior al intervalo de la tarea.
- **Availability metrics:** crea módulos de disponibilidad: `data path availability` y `health probe status`.
- **Traffic metrics:** crea módulos de tráfico: `byte count`, `packet count` y `SYN count`.
- **SNAT metrics:** crea módulos SNAT: `allocated SNAT ports`, `used SNAT ports` y `SNAT connection count`.
- **Backend pool host count:** crea el módulo de conteo de hosts configurados en backend pools.
- **Load Balancer count:** crea el módulo de conteo de recursos Load Balancer descubiertos.
- **Azure Monitor metric interval:** granularidad de Azure Monitor en formato ISO-8601. Por defecto `PT1M`.
- **Azure API timeout:** timeout en segundos para cada llamada a Azure. Si se configura `0` o un valor negativo, el plugin usará `30` segundos.
- **Azure API max retries:** número máximo de reintentos para errores temporales de API, incluyendo rate limiting HTTP 429.

Las tareas completadas correctamente mostrarán un resumen de ejecución con información similar a:

- **Total agents:** número total de agentes generados por la tarea.
- **Targets up:** número de Load Balancers disponibles o descubiertos correctamente.
- **Targets down:** número de Load Balancers almacenados previamente que ya no aparecen en el descubrimiento actual.
- **Load Balancers discovered:** número de Load Balancers descubiertos durante la ejecución actual.
- **Modules allow regexp:** únicamente se crean los módulos cuyo nombre final coincida con alguna de las expresiones definidas.
- **Modules deny regexp:** Cualquier módulo cuyo nombre final coincida con una expresión deny será descartado. Las expresiones deny tienen prioridad sobre las expresiones allow.