Áú»¢¶Ä²©

discoveryrule.create

¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô

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 Administrador y Superadministrador. Los permisos para llamar al m¨¦todo se pueden revocar en la configuraci¨®n del rol de usuario. Ver Roles de usuario para m¨¢s informaci¨®n.

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç²õ

(objeto/matriz) Reglas LLD para crear.

Adem¨¢s de las [propiedades est¨¢ndar de la regla LLD] (object#lld_rule), el m¨¦todo acepta los siguientes par¨¢metros.

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç Tipo ¶Ù±ð²õ³¦°ù¾±±è³¦¾±¨®²Ô
filter objeto Filtro de regla LLD para la regla LLD.
preprocessing matriz Opciones de preprocesamiento de la regla LLD .
lld_macro_paths matriz Opciones de regla LLD lld_macro_path.
overrides matriz Opciones de las anulaciones de la regla LLD .

Valores de retorno

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

Ejemplos

Creando una regla LLD

Cree una regla LLD del agente Áú»¢¶Ä²© 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 "y" .

Solicitud:

{
       "jsonrpc": "2.0",
       "method": "discoveryrule.create",
       "params": {
       "name": "Filtered LLD rule",
       "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
       }

Creaci¨®n de una regla LLD con rutas de macros

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "LLD rule with LLD macro paths",
               "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
       }

Usando un filtro de expresi¨®n personalizado

Cree una regla LLD con un filtro que utilizar¨¢ una expresi¨®n personalizada para evaluar las condiciones. La regla LLD s¨®lo debe descubrir objetos en los que el valor de macro "{#MACRO1}" cuyo valor coincide con ambas expresiones regulares "regex1" y "regex2", y el valor de "{#MACRO2}" coincide con cualquiera de los dos "regex3" o "regex4". Los ID de f¨®rmula "A", "B", "C" y "D" han sido elegidos arbitrariamente.

Solicitud:

{
       "jsonrpc": "2.0",
       "method": "discoveryrule.create",
       "params": {
       "name": "Filtered LLD rule",
       "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 encabezados y campos de consulta personalizados

Cree una regla LLD con encabezados y campos de consulta personalizados.

Solicitud:

{
       "jsonrpc": "2.0",
       "method": "discoveryrule.create",
       "params": {
       "hostid": "10257",
       "interfaceid": "5",
       "type": 19,
       "name": "API HTTP agent",
       "key_": "api_discovery_rule",
       "value_type": 3,
       "delay": "5s",
       "url": "http://127.0.0.1?discoverer.php",
       "query_fields": [
       {
       "mode": "json"
       },
       {
       "elements": "2"
       }
       ],
       "headers": {
       "X-Type": "api",
       "Authorization": "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
       }

Creaci¨®n de una regla LLD con preprocesamiento

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Discovery rule with preprocessing",
               "key_": "lld.with.preprocessing",
               "hostid": "10001",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "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 anulaciones

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Discover database host",
               "key_": "lld.with.overrides",
               "hostid": "10001",
               "type": 0,
               "value_type": 3,
               "delay": "60s",
               "interfaceid": "1155",
               "overrides": [
                   {
                       "name": "Discover MySQL host",
                       "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": "Discover PostgreSQL host",
                       "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 secuencia de comandos

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

Request:

{
           "jsonrpc": "2.0",
           "method": "discoveryrule.create",
           "params": {
               "name": "Script example",
               "key_": "custom.script.lldrule",
               "hostid": "12345",
               "type": 21,
               "value_type": 4,
               "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
       }

Ver tambi¨¦n

-LLD rule filter -LLD macro paths -LLD rule preprocessing

Fuente

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