discoveryrule.get

Description

integer/array discoveryrule.get(object parameters)

La méthode permet de récupérer les règles LLD selon les paramètres fournis.

Cette méthode est disponible pour les utilisateurs de tout type. Les autorisations d'appel de la méthode peuvent être révoquées dans les paramètres des rôles utilisateur. Consultez Rôles utilisateur pour plus d'informations.

Paramètres

(object) Paramètres définissant la sortie souhaitée.

La méthode prend en charge les paramètres suivants.

Parameter Type Description
itemids ID/array Retourne uniquement les règles LLD avec les IDs donnés.
groupids ID/array Retourne uniquement les règles LLD qui appartiennent aux hôtes des groupes donnés.
hostids ID/array Retourne uniquement les règles LLD qui appartiennent aux hôtes donnés.
inherited boolean Si défini sur true, retourne uniquement les règles LLD héritées d'un modèle.
interfaceids ID/array Retourne uniquement les règles LLD qui utilisent les interfaces d'hôte données.
monitored boolean Si défini sur true, retourne uniquement les règles LLD activées qui appartiennent à des hôtes surveillés.
templated boolean Si défini sur true, retourne uniquement les règles LLD qui appartiennent à des modèles.
templateids ID/array Retourne uniquement les règles LLD qui appartiennent aux modèles donnés.
selectFilter query Retourne une propriété filter avec les données du filtre utilisé par la règle LLD.
selectGraphs query Retourne une propriété graphs avec les prototypes de graphiques qui appartiennent à la règle LLD.

Prend en charge count.
selectHostPrototypes query Retourne une propriété hostPrototypes avec les prototypes d'hôte qui appartiennent à la règle LLD.

Prend en charge count.
selectHosts query Retourne une propriété hosts avec un tableau d'hôtes auxquels la règle LLD appartient.
selectItems query Retourne une propriété items avec les prototypes d'éléments qui appartiennent à la règle LLD.

Prend en charge count.
selectTriggers query Retourne une propriété triggers avec les prototypes de déclencheurs qui appartiennent à la règle LLD.

Prend en charge count.
selectLLDMacroPaths query Retourne une propriété lld_macro_paths avec une liste de macros LLD et de chemins vers les valeurs attribuées à chaque macro correspondante.
selectPreprocessing query Retourne une propriété preprocessing avec les options de prétraitement de la règle LLD.
selectOverrides query Retourne une propriété lld_rule_overrides avec une liste de filtres de remplacement, de conditions et d'opérations appliquées aux objets prototypes.
filter object Retourne uniquement les résultats qui correspondent exactement au filtre donné.

Accepte un objet, où les clés sont des noms de propriétés et les valeurs sont soit une valeur unique, soit un tableau de valeurs à comparer.

Ne prend pas en charge les propriétés de type de données text data type.

Prend en charge des propriétés supplémentaires :
host - nom technique de l'hôte auquel la règle LLD appartient.
limitSelects integer Limite le nombre d'enregistrements renvoyés par les sous-sélections.

S'applique aux sous-sélections suivantes : selectItems, selectGraphs, selectTriggers.
sortfield string/array Trie le résultat selon les propriétés données.

Valeurs possibles : itemid, name, key_, delay, type, status.
countOutput boolean Ces paramètres sont décrits dans le commentaire de référence.
editable boolean
excludeSearch boolean
limit integer
output query
preservekeys boolean
search object
searchByAny boolean
searchWildcardsEnabled boolean
sortorder string/array
startSearch boolean

Valeurs de retour

(integer/array) Renvoie soit :

  • un tableau d'objets ;
  • le nombre d'objets récupérés, si le paramètre countOutput a été utilisé.

Exemples

Récupération des règles de découverte d'un hôte

Récupère toutes les règles de découverte pour un ID d'hôte spécifique.

Requête :

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": "extend",
        "hostids": "10202"
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "27425",
            "type": "0",
            "snmp_oid": "",
            "hostid": "10202",
            "name": "Découverte des interfaces réseau",
            "key_": "net.if.discovery",
            "delay": "1h",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "22444",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "interfaceid": "119",
            "description": "Découverte des interfaces réseau telles que définies dans l'expression régulière globale \"Interfaces réseau pour la découverte\".",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "",
            "query_fields": [],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [],
            "retrieve_mode": "0",
            "request_method": "0",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        },
        {
            "itemid": "27426",
            "type": "0",
            "snmp_oid": "",
            "hostid": "10202",
            "name": "Découverte des systèmes de fichiers montés",
            "key_": "vfs.fs.discovery",
            "delay": "1h",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "22450",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "interfaceid": "119",
            "description": "Découverte des systèmes de fichiers de différents types tels que définis dans l'expression régulière globale \"Systèmes de fichiers pour la découverte\".",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "",
            "query_fields": [],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [],
            "retrieve_mode": "0",
            "request_method": "0",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        }
    ],
    "id": 1
}

Récupération des conditions de filtre

Récupérez le nom de la règle LLD "24681" et ses conditions de filtre. Le filtre utilise le type d'évaluation "and", donc la propriété formula est vide et eval_formula est générée automatiquement.

Requête :

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": ["name"],
        "selectFilter": "extend",
        "itemids": ["24681"]
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "24681",
            "name": "Filtered LLD rule",
            "filter": {
                "evaltype": "1",
                "formula": "",
                "conditions": [
                    {
                        "macro": "{#MACRO1}",
                        "value": "@regex1",
                        "operator": "8",
                        "formulaid": "A"
                    },
                    {
                        "macro": "{#MACRO2}",
                        "value": "@regex2",
                        "operator": "9",
                        "formulaid": "B"
                    },
                    {
                        "macro": "{#MACRO3}",
                        "value": "",
                        "operator": "12",
                        "formulaid": "C"
                    },
                    {
                        "macro": "{#MACRO4}",
                        "value": "",
                        "operator": "13",
                        "formulaid": "D"
                    }
                ],
                "eval_formula": "A and B and C and D"
            }
        }
    ],
    "id": 1
}

Récupérer le règle LLD par URL

Récupère la règle LLD pour un hôte par la valeur du champ URL de la règle. Seule la correspondance exacte de la chaîne URL définie pour la règle LLD est prise en charge.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "hostids": "10257",
        "filter": {
            "type": 19,
            "url": "http://127.0.0.1/discoverer.php"
        }
    },
    "id": 1
}

Réponse:

{
    "jsonrpc": "2.0",
    "result": [
        {
            "itemid": "28336",
            "type": "19",
            "snmp_oid": "",
            "hostid": "10257",
            "name": "API HTTP agent",
            "key_": "api_discovery_rule",
            "delay": "5s",
            "status": "0",
            "trapper_hosts": "",
            "templateid": "0",
            "valuemapid": "0",
            "params": "",
            "ipmi_sensor": "",
            "authtype": "0",
            "username": "",
            "password": "",
            "publickey": "",
            "privatekey": "",
            "interfaceid": "5",
            "description": "",
            "lifetime": "30d",
            "jmx_endpoint": "",
            "master_itemid": "0",
            "timeout": "",
            "url": "http://127.0.0.1/discoverer.php",
            "query_fields": [
                {
                    "name": "mode",
                    "value": "json"
                },
                {
                    "name": "elements",
                    "value": "2"
                }
            ],
            "posts": "",
            "status_codes": "200",
            "follow_redirects": "1",
            "post_type": "0",
            "http_proxy": "",
            "headers": [
                {
                    "name" : "X-Type",
                    "value": "api"
                },
                {
                    "name": "Authorization",
                    "value": "Bearer mF_A.B5f-2.1JcM"
                }
            ],
            "retrieve_mode": "0",
            "request_method": "1",
            "ssl_cert_file": "",
            "ssl_key_file": "",
            "ssl_key_password": "",
            "verify_peer": "0",
            "verify_host": "0",
            "allow_traps": "0",
            "uuid": "",
            "lifetime_type": "0",
            "enabled_lifetime_type": "2",
            "enabled_lifetime": "0",
            "state": "0",
            "error": "",
            "parameters": []
        }
    ],
    "id": 1
}

Récupérer une règle LLD avec des remplacements

Récupérez une règle LLD qui possède divers paramètres de remplacement.

Requête:

{
    "jsonrpc": "2.0",
    "method": "discoveryrule.get",
    "params": {
        "output": ["name"],
        "itemids": "30980",
        "selectOverrides": ["name", "step", "stop", "filter", "operations"]
    },
    "id": 1
}

Réponse :

{
    "jsonrpc": "2.0",
    "result": [
        {
            "name": "Discover database host",
            "overrides": [
                {
                    "name": "Discover MySQL host",
                    "step": "1",
                    "stop": "1",
                    "filter": {
                        "evaltype": "2",
                        "formula": "",
                        "conditions": [
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^mysqld\\.service$",
                                "formulaid": "A"
                            },
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^mariadb\\.service$",
                                "formulaid": "B"
                            }
                        ],
                        "eval_formula": "A or B"
                    },
                    "operations": [
                        {
                            "operationobject": "3",
                            "operator": "2",
                            "value": "Database host",
                            "opstatus": {
                                "status": "0"
                            },
                            "optag": [
                                {
                                    "tag": "database",
                                    "value": "mysql"
                                }
                            ],
                            "optemplate": [
                                {
                                    "templateid": "10170"
                                }
                            ]
                        }
                    ]
                },
                {
                    "name": "Discover PostgreSQL host",
                    "step": "2",
                    "stop": "1",
                    "filter": {
                        "evaltype": "0",
                        "formula": "",
                        "conditions": [
                            {
                                "macro": "{#UNIT.NAME}",
                                "operator": "8",
                                "value": "^postgresql\\.service$",
                                "formulaid": "A"
                            }
                        ],
                        "eval_formula": "A"
                    },
                    "operations": [
                        {
                            "operationobject": "3",
                            "operator": "2",
                            "value": "Database host",
                            "opstatus": {
                                "status": "0"
                            },
                            "optag": [
                                {
                                    "tag": "database",
                                    "value": "postgresql"
                                }
                            ],
                            "optemplate": [
                                {
                                    "templateid": "10263"
                                }
                            ]
                        }
                    ]
                }
            ]
        }
    ],
    "id": 1
}

Voir aussi

Source

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