5 Prototipos de descubrimiento
Descripción general
Los prototipos de descubrimiento son reglas de descubrimiento anidadas dentro de una regla de descubrimiento "principal", lo que permite crear un descubrimiento multinivel de objetos con sus propios elementos, disparadores, etc. Por ejemplo, puede querer descubrir todas las instancias de bases de datos en un servidor de bases de datos, luego descubrir los espacios de tablas para cada instancia y luego descubrir las tablas para cada espacio de tablas.
Los prototipos de descubrimiento tienen sus propios prototipos de elemento, disparador, gráfico, host y descubrimiento. Un prototipo de descubrimiento anidado utilizará el mismo valor JSON que la regla principal si especifica un tipo Anidado.
Los niveles de anidamiento para los prototipos de descubrimiento son ilimitados.
Configuración
Para crear un prototipo de descubrimiento:
- Haga clic en Prototipos de descubrimiento en la fila de una regla de descubrimiento existente

- Haga clic en Crear prototipo de descubrimiento

Los campos de configuración de este formulario se comparten con la descubrimiento de bajo nivel regular.
Si selecciona "Anidado" como Tipo en el formulario de prototipo de descubrimiento abierto, entonces las reglas de descubrimiento (del prototipo de descubrimiento) se generan en función de un objeto JSON del mismo valor JSON que la regla de descubrimiento principal. Por ejemplo, si el JSON original es [<objeto A>, <objeto B>] y hay un prototipo de regla de descubrimiento anidada, entonces se generarían dos reglas de descubrimiento basadas en los datos del objeto A y del objeto B respectivamente.
En este caso, el prototipo de descubrimiento se activa al mismo tiempo que la regla principal. Por lo tanto, la regla anidada puede utilizar preprocesamiento, para trabajar en otra "porción" de los mismos datos, ya adquiridos por la principal.
Las macros LLD de la regla LLD principal están disponibles para las reglas de descubrimiento anidadas.
Reglas LLD anidadas en equipos descubiertos
Una regla de descubrimiento de bajo nivel Anidada puede usarse en una plantilla de equipo asignada a un prototipo de equipo. Si existe una regla de descubrimiento Anidada en un equipo descubierto, entonces el objeto JSON utilizado para descubrir el equipo también se envía a todas las reglas LLD de tipo anidado en este equipo. Para más detalles, consulte el ejemplo.
Las macros LLD de la regla de descubrimiento que creó el equipo están disponibles para las reglas de descubrimiento anidadas.
Ejemplo
Ilustremos la posible aplicación de prototipos de descubrimiento, basándonos en la recepción del siguiente ejemplo de JSON multinivel.
[
{
"database": "db1",
"created_at": "2024-02-01T12:30:00Z",
"encoding": "UTF8",
"tablespaces": [
{ "name": "ts1", "max_size": "10GB" },
{ "name": "ts2", "max_size": "20GB" },
{ "name": "ts3", "max_size": "15GB" }
]
},
{
"database": "db2",
"created_at": "2023-11-15T08:45:00Z",
"encoding": "UTF16",
"tablespaces": [
{ "name": "ts1", "max_size": "5GB" },
{ "name": "ts2", "max_size": "25GB" },
{ "name": "ts3", "max_size": "30GB" }
]
},
{
"database": "db3",
"created_at": "2024-01-05T15:10:00Z",
"encoding": "UTF8",
"tablespaces": [
{ "name": "ts1", "max_size": "12GB" },
{ "name": "ts2", "max_size": "18GB" },
{ "name": "ts3", "max_size": "22GB" }
]
}
]
Caso 1
Descubrir instancias de bases de datos en un servidor de bases de datos y luego descubrir los tablespaces para cada instancia.
-
Tiene al menos un host relacionado con el descubrimiento del servidor de bases de datos.
-
Cree una regla LLD para este host llamada Descubrir bases de datos y tablespaces.
-
Cambie a la pestaña Macros LLD en esta regla, agregue la macro
{#DB}=$.database. -
Agregue un prototipo de elemento para esta regla llamado Conexiones activas a {#DB} (Tipo: Agente, Clave:
db.connections[{#DB}]). -
Se descubren los elementos relacionados con cada base de datos:
Conexiones activas a db1, Conexiones activas a db2, Conexiones activas a db3.
-
Cree un prototipo de descubrimiento para esta regla llamado Descubrir tablespaces para {#DB} (Tipo: Anidado, Clave:
db.tablespace.discovery[{#DB}]). -
Cambie a la pestaña Preprocesamiento de este prototipo de descubrimiento y agregue el paso
JSONPath=$.tablespaces. -
Cambie a la pestaña Macros LLD de este prototipo de descubrimiento, agregue la macro
{#TSNAME}=$.name. -
Cree un prototipo de elemento para este prototipo de descubrimiento llamado Tamaño del tablespace {#TSNAME} para {#DB} (Tipo: Agente, Clave:
db.ts.size[{#DB}, {#TSNAME}]). -
Se descubren los elementos relacionados con cada tablespace de cada base de datos:
Tamaño del tablespace ts1 para db1, Tamaño del tablespace ts2 para db1, Tamaño del tablespace ts3 para db1,
Tamaño del tablespace ts1 para db2, Tamaño del tablespace ts2 para db2, Tamaño del tablespace ts3 para db2,
Tamaño del tablespace ts1 para db3, Tamaño del tablespace ts2 para db3, Tamaño del tablespace ts3 para db3.
con claves db.ts.size[db1,ts1], db.ts.size[db1,ts2], ... db.ts.size[db3,ts3].
Caso 2
Descubrir instancias de bases de datos en el servidor de bases de datos representándolas como equipos descubiertos y luego descubrir los tablespaces para cada instancia.
-
Tiene al menos un equipo (equipo raíz) relacionado con el descubrimiento del servidor de bases de datos.
-
Cree una plantilla para descubrir los tablespaces de cada base de datos.
-
Cree un elemento en esta plantilla llamado Conexiones activas a {#DB} (Tipo: Agente, Clave:
db.connections[{#DB}]). -
Cree una regla LLD para esta plantilla llamada Descubrir tablespaces (Tipo: Anidada).
-
Cambie a la pestaña Preprocesamiento de esta regla y agregue el paso
JSONPath=$.tablespaces. -
Cambie a la pestaña Macros LLD de esta regla, agregue la macro
{#TSNAME}=$.name. -
Cree un prototipo de elemento para esta regla llamado Tamaño del tablespace {#TSNAME} para {#DB} (Tipo: Agente, Clave:
db.ts.size[{#DB}, {#TSNAME}]). -
De vuelta en el equipo raíz, cree una regla LLD para este equipo llamada Descubrir bases de datos y tablespaces.
-
Cambie a la pestaña Macros LLD en esta regla, agregue la macro
{#DB}=$.database. -
Agregue un prototipo de equipo para esta regla llamado Equipo para la base de datos {#DB}.
-
Cambie a la pestaña Macros en este prototipo de equipo, agregue la macro
{$DB}={#DB}(para el nombre y la clave del elemento del Paso 3). -
Vincule la plantilla del paso 2 a este prototipo de equipo.
-
Los equipos descubiertos contienen los elementos descubiertos relacionados con cada base de datos y sus tablespaces:
| Equipo | Elementos |
|---|---|
| Equipo para la base de datos db1 | Conexiones activas a db1 Tamaño del tablespace ts1 para db1 Tamaño del tablespace ts2 para db1 Tamaño del tablespace ts3 para db1 |
| Equipo para la base de datos db2 | Conexiones activas a db2 Tamaño del tablespace ts1 para db2 Tamaño del tablespace ts2 para db2 Tamaño del tablespace ts3 para db2 |
| Equipo para la base de datos db3 | Conexiones activas a db3 Tamaño del tablespace ts1 para db3 Tamaño del tablespace ts2 para db3 Tamaño del tablespace ts3 para db3 |