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 una posible aplicación de los prototipos de descubrimiento, basada 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
Descubrimiento de instancias de base de datos en un server de base de datos, y luego descubrimiento de los tablespaces para cada instancia.
-
Tiene al menos un host relacionado con el descubrimiento del server de base de datos.
-
Cree una regla LLD para este host llamada Descubrir bases de datos y tablespaces.
-
Cambie a la pestaña Macros LLD de esta regla y añada la macro
{#DB}=$.database. -
Añada un prototipo de item para esta regla llamado Conexiones activas a {#DB} (Tipo: Agent, Clave:
db.connections[{#DB}]). -
Se descubren los items relacionados con cada base de datos:
Active connections to db1, Active connections to db2, Active connections to db3.
-
Cree un prototipo de descubrimiento para esta regla llamado Descubrir tablespaces para {#DB} (Tipo: Nested, Clave:
db.tablespace.discovery[{#DB}]). -
Cambie a la pestaña Preprocessing de este prototipo de descubrimiento y añada el paso
JSONPath=$.tablespaces. -
Cambie a la pestaña Macros LLD de este prototipo de descubrimiento y añada la macro
{#TSNAME}=$.name. -
Cree un prototipo de item para este prototipo de descubrimiento llamado Tamaño del tablespace {#TSNAME} para {#DB} (Tipo: Agent, Clave:
db.ts.size[{#DB}, {#TSNAME}]). -
Se descubren los items relacionados con cada tablespace de cada base de datos:
Size of tablespace ts1 for db1, Size of tablespace ts2 for db1, Size of tablespace ts3 for db1,
Size of tablespace ts1 for db2, Size of tablespace ts2 for db2, Size of tablespace ts3 for db2,
Size of tablespace ts1 for db3, Size of tablespace ts2 for db3, Size of tablespace ts3 for db3.
con las 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 server de bases de datos representándolas como hosts descubiertos, y luego descubrir los tablespaces de cada instancia.
-
Debe tener al menos un host (host raíz) relacionado con el descubrimiento del server de bases de datos.
-
Cree un template para descubrir los tablespaces de cada base de datos.
-
Cree un item en este template llamado Conexiones activas a {#DB} (Tipo: Agent, clave:
db.connections[{#DB}]). -
Cree una regla LLD para este template llamada Descubrir tablespaces (Tipo: Nested).
-
Cambie a la pestaña Preprocessing de esta regla y añada el paso
JSONPath=$.tablespaces. -
Cambie a la pestaña LLD Macros de esta regla y añada la macro
{#TSNAME}=$.name. -
Cree un prototipo de item para esta regla llamado Tamaño del tablespace {#TSNAME} para {#DB} (Tipo: Agent, clave:
db.ts.size[{#DB}, {#TSNAME}]). -
De vuelta en el host raíz, cree una regla LLD para este host llamada Descubrir bases de datos y tablespaces.
-
Cambie a la pestaña LLD Macros de esta regla y añada la macro
{#DB}=$.database. -
Añada un prototipo de host para esta regla llamado Host para la base de datos {#DB}.
-
Cambie a la pestaña Macros de este prototipo de host y añada la macro
{$DB}={#DB}(para el nombre y la clave del item del paso 3). -
Vincule el template del paso 2 a este prototipo de host.
-
Los hosts descubiertos contienen los items descubiertos relacionados con cada base de datos y sus tablespaces:
| Host | Items |
|---|---|
| Host 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 |
| Host 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 |
| Host 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 |