Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

discoveryrule.create

Descripción

object discoveryrule.create(object/array lldRules)

Este método permite crear nuevas reglas LLD.

Este método solo está disponible para los tipos de usuario Admin y Super admin. Los permisos para llamar al método pueden ser revocados en la configuración de roles de usuario. Consulte Roles de usuario para más información.

Parámetros

(objeto/array) Reglas LLD a crear.

Además de las propiedades estándar de la regla LLD, el método acepta los siguientes parámetros.

Parámetro Tipo Descripción
filter objeto Filtro de regla LLD para la regla LLD.
preprocessing objeto/array Opciones de preprocesamiento de la regla LLD.
lld_macro_paths objeto/array Opciones de lld_macro_path de la regla LLD.
overrides objeto/array Opciones de anulaciones de la regla LLD.

Valores de retorno

(object) Devuelve un objeto que contiene los IDs de las reglas LLD creadas bajo la propiedad itemids. El orden de los IDs devueltos coincide con el orden de las reglas LLD proporcionadas.

Ejemplos

Creando una regla LLD

Cree una regla LLD de agente Zabbix para descubrir sistemas de archivos montados. Las métricas descubiertas se actualizarán cada 30 segundos.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Mounted filesystem discovery",
               "key_": "vfs.fs.discovery",
               "hostid": "10197",
               "type": 0,
               "interfaceid": "112",
               "delay": "30s"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }

Usando un filtro

Cree una regla LLD con un conjunto de condiciones para filtrar los resultados. Las condiciones se agruparán utilizando el operador lógico "and".

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Regla LLD filtrada",
               "key_": "lld",
               "hostid": "10116",
               "type": 0,
               "interfaceid": "13",
               "delay": "30s",
               "filter": {
                   "evaltype": 1,
                   "conditions": [
                       {
                           "macro": "{#MACRO1}",
                           "value": "@regex1"
                       },
                       {
                           "macro": "{#MACRO2}",
                           "value": "@regex2",
                           "operator": "9"
                       },
                       {
                           "macro": "{#MACRO3}",
                           "value": "",
                           "operator": "12"
                       },
                       {
                           "macro": "{#MACRO4}",
                           "value": "",
                           "operator": "13"
                       }
                   ]
               }
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }

Creando una regla LLD con rutas de macro

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Regla LLD con rutas de macro LLD",
               "key_": "lld",
               "hostid": "10116",
               "type": 0,
               "interfaceid": "13",
               "delay": "30s",
               "lld_macro_paths": [
                   {
                       "lld_macro": "{#MACRO1}",
                       "path": "$.path.1"
                   },
                   {
                       "lld_macro": "{#MACRO2}",
                       "path": "$.path.2"
                   }
               ]
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }

Usar un filtro de expresión personalizada

Cree una regla LLD con un filtro que utilice una expresión personalizada para evaluar las condiciones. La regla LLD solo debe descubrir objetos cuyo valor de macro "{#MACRO1}" coincida tanto con la expresión regular "regex1" como con "regex2", y el valor de "{#MACRO2}" coincida con "regex3" o "regex4". Los IDs de fórmula "A", "B", "C" y "D" se han elegido arbitrariamente.

Petición:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Regla LLD filtrada",
               "key_": "lld",
               "hostid": "10116",
               "type": 0,
               "interfaceid": "13",
               "delay": "30s",
               "filter": {
                   "evaltype": 3,
                   "formula": "(A and B) and (C or D)",
                   "conditions": [
                       {
                           "macro": "{#MACRO1}",
                           "value": "@regex1",
                           "formulaid": "A"
                       },
                       {
                           "macro": "{#MACRO1}",
                           "value": "@regex2",
                           "formulaid": "B"
                       },
                       {
                           "macro": "{#MACRO2}",
                           "value": "@regex3",
                           "formulaid": "C"
                       },
                       {
                           "macro": "{#MACRO2}",
                           "value": "@regex4",
                           "formulaid": "D"
                       }
                   ]
               }
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27665"
               ]
           },
           "id": 1
       }

Uso de campos de consulta y cabeceras personalizadas

Cree una regla LLD con campos de consulta y cabeceras personalizadas.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "hostid": "10257",
               "interfaceid": "5",
               "type": 19,
               "name": "API HTTP agent",
               "key_": "api_discovery_rule",
               "delay": "5s",
               "url": "http://127.0.0.1?discoverer.php",
               "query_fields": [
                   {
                       "name": "mode",
                       "value": "json"
                   },
                   {
                       "name": "elements",
                       "value": "2"
                   }
               ],
               "headers": [
                   {
                       "name": "X-Type",
                       "value": "api"
                   },
                   {
                       "name": "Authorization",
                       "value": "Bearer mF_A.B5f-2.1JcM"
                   }
               ],
               "allow_traps": 1,
               "trapper_hosts": "127.0.0.1"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "28336"
               ]
           },
           "id": 1
       }

Creando una regla LLD con preprocesamiento

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Regla de descubrimiento con preprocesamiento",
               "key_": "lld.with.preprocessing",
               "hostid": "10001",
               "ruleid": "27665",
               "type": 0,
               "delay": "60s",
               "interfaceid": "1155",
               "preprocessing": [
                   {
                       "type": 20,
                       "params": "20",
                       "error_handler": 0,
                       "error_handler_params": ""
                   }
               ]
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "44211"
               ]
           },
           "id": 1
       }

Creación de una regla LLD con sobrescrituras

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Descubrir equipo de base de datos",
               "key_": "lld.with.overrides",
               "hostid": "10001",
               "type": 0,
               "delay": "60s",
               "interfaceid": "1155",
               "overrides": [
                   {
                       "name": "Descubrir equipo MySQL",
                       "step": "1",
                       "stop": "1",
                       "filter": {
                           "evaltype": "2",
                           "conditions": [
                               {
                                   "macro": "{#UNIT.NAME}",
                                   "operator": "8",
                                   "value": "^mysqld\\.service$"
                               },
                               {
                                   "macro": "{#UNIT.NAME}",
                                   "operator": "8",
                                   "value": "^mariadb\\.service$"
                               }
                           ]
                       },
                       "operations": [
                           {
                               "operationobject": "3",
                               "operator": "2",
                               "value": "Database host",
                               "opstatus": {
                                   "status": "0"
                               },
                               "optemplate": [
                                   {
                                       "templateid": "10170"
                                   }
                               ],
                               "optag": [
                                   {
                                       "tag": "database",
                                       "value": "mysql"
                                   }
                               ]
                           }
                       ]
                   },
                   {
                       "name": "Descubrir equipo PostgreSQL",
                       "step": "2",
                       "stop": "1",
                       "filter": {
                           "evaltype": "0",
                           "conditions": [
                               {
                                   "macro": "{#UNIT.NAME}",
                                   "operator": "8",
                                   "value": "^postgresql\\.service$"
                               }
                           ]
                       },
                       "operations": [
                           {
                               "operationobject": "3",
                               "operator": "2",
                               "value": "Database host",
                               "opstatus": {
                                   "status": "0"
                               },
                               "optemplate": [
                                   {
                                       "templateid": "10263"
                                   }
                               ],
                               "optag": [
                                   {
                                       "tag": "database",
                                       "value": "postgresql"
                                   }
                               ]
                           }
                       ]
                   }
               ]
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "30980"
               ]
           },
           "id": 1
       }

Crear regla LLD de script

Cree una recopilación de datos simple utilizando una regla LLD de script.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Ejemplo de script",
               "key_": "custom.script.lldrule",
               "hostid": "12345",
               "type": 21,
               "params": "var request = new HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
               "parameters": [{
                   "name": "host",
                   "value": "{HOST.CONN}"
               }],
               "timeout": "6s",
               "delay": "30s"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "23865"
               ]
           },
           "id": 1
       }

Crear una regla LLD con un período de tiempo especificado para deshabilitar y sin eliminación

Cree una regla LLD con un período de tiempo personalizado para deshabilitar la entidad después de que ya no se descubra, con la configuración de que nunca se eliminará.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "lld disable after 1h",
               "key_": "lld.disable",
               "hostid": "10001",
               "type": 2,
               "lifetime_type": 1,
               "enabled_lifetime_type": 0, 
               "enabled_lifetime": "1h"
           },
           "id": 1
       }

Respuesta:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "46864"
               ]
           },
           "id": 1
       }

Véase también

Fuente

CDiscoveryRule::create() en ui/include/classes/api/services/CDiscoveryRule.php.