Áú»¢¶Ä²©

This is the documentation page for an unsupported version of Áú»¢¶Ä²©.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

discoveryrule.create

Description

object discoveryrule.create(object/array lldRules)

Cette m¨¦thode permet de cr¨¦er de nouvelles r¨¨gles de d¨¦couverte bas niveau.

Cette m¨¦thode est disponible uniquement pour les utilisateurs de type Admin et Super admin. Les autorisations d'appel de la m¨¦thode peuvent ¨ºtre r¨¦voqu¨¦es dans les r¨¦glages du r?le d'utilisateur. Voir les R?les utilisateur pour plus d'informations.

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

(object/array) R¨¨gles de d¨¦couverte bas niveau ¨¤ cr¨¦er.

En plus des propri¨¦t¨¦s de l'objet r¨¨gle de d¨¦couverte bas niveau standard, la m¨¦thode accepte les param¨¨tres suivants.

±Ê²¹°ù²¹³¾¨¨³Ù°ù±ð Type Description
filter object Objet filtre de la r¨¨gle LLD.
preprocessing array Options de ±è°ù¨¦³Ù°ù²¹¾±³Ù±ð³¾±ð²Ô³Ù de la r¨¨gle LLD.
lld_macro_paths array Options lld_macro_path de la r¨¨gle LLD.
overrides array Options de remplacement de la r¨¨gle LLD.

Valeurs retourn¨¦es

(object) Retourne un objet contenant les identifiants des r¨¨gles de d¨¦couverte bas niveau cr¨¦¨¦es sous la propri¨¦t¨¦ itemids. L'ordre des ID retourn¨¦s correspond ¨¤ l'ordre des r¨¨gles de d¨¦couverte bas niveau transmises.

Exemples

Cr¨¦ation d'une r¨¨gle de d¨¦couverte bas niveau

Cr¨¦er une r¨¨gle de d¨¦couverte bas niveau pour d¨¦couvrir les syst¨¨mes de fichiers mont¨¦s. Les objets d¨¦couverts seront mis ¨¤ jour toutes les 30 secondes.

Requ¨ºte :

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

R¨¦ponse :

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

Utilisation d'un filtre

Cr¨¦er une r¨¨gle de d¨¦couverte bas niveau avec un ensemble de conditions pour filtrer les r¨¦sultats. Les conditions seront regroup¨¦es ¨¤ l¡¯aide de l'op¨¦rateur logique "et".

Requ¨ºte :

{
           "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"
                       }
                   ]
               }
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

R¨¦ponse :

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

Cr¨¦ation d'une r¨¨gle LLD avec des chemins de macro

¸é±ð±ç³Ü¨º³Ù±ð:

{
           "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"
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

R¨¦ponse :

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

Utilisation d'un filtre d'expression personnalis¨¦

Cr¨¦er une r¨¨gle de d¨¦couverte bas niveau avec un filtre qui utilisera une expression personnalis¨¦e pour ¨¦valuer les conditions. La r¨¨gle doit d¨¦couvrir uniquement les objets dont la macro "{#MACRO1}" correspond ¨¤ l'expression r¨¦guli¨¨re "regex1" et "regex2", et la valeur de "{#MACRO2}" correspond ¨¤ "regex3" ou "regex4". Les ID de formule "A", "B", "C" et "D" ont ¨¦t¨¦ choisis arbitrairement.

Requ¨ºte :

{
           "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"
                       }
                   ]
               }
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

R¨¦ponse :

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

Utilisation de champs de requ¨ºte et d'en-t¨ºtes personnalis¨¦s

Cr¨¦er une r¨¨gle de d¨¦couverte bas niveau avec des champs de requ¨ºte et des en-t¨ºtes personnalis¨¦s.

Requ¨ºte :

{
           "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": 35,
               "auth": "d678e0b85688ce578ff061bd29a20d3b",
           }
       }

R¨¦ponse :

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

Cr¨¦ation d'une r¨¨gle LLD avec ±è°ù¨¦³Ù°ù²¹¾±³Ù±ð³¾±ð²Ô³Ù

Requ¨ºte :

{
           "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": ""
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

R¨¦ponse :

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

Cr¨¦ation d'une r¨¨gle LLD avec remplacements

Requ¨ºte :

{
           "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"
                                   }
                               ]
                           }
                       ]
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

R¨¦ponse :

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

Cr¨¦ation d'une r¨¨gle LLD script

Cr¨¦er une collecte de donn¨¦es simple ¨¤ l'aide d'une r¨¨gle LLD script.

Requ¨ºte :

{
           "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 CurlHttpRequest();\nreturn request.Post(\"https://postman-echo.com/post\", JSON.parse(value));",
               "parameters": [{
                   "name": "host",
                   "value": "{HOST.CONN}"
               }],
               "timeout": "6s",
               "delay": "30s"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 2
       }

R¨¦ponse :

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

Voir ¨¦galement

Source

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