This is the documentation page for an unsupported version of Zabbix.
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.

Paramètres

(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.

Paramètre Type Description
filter object Objet filtre de règle de découverte bas niveau.

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éez 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éez 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 des opérateurs logiques "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"
                       },
                       {
                           "macro": "{#MACRO3}",
                           "value": "@regex3"
                       }
                   ]
               }
           },
           "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
       }

Voir également

Source

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