integer/array discoveryrule.get(object parameters)
La méthode permet de récupérer les règles de découverte bas niveau en fonction des paramètres donnés.
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 du rôle utilisateur. Voir les rôles utilisateur pour plus d'informations.
(object)
Paramètres définissant la sortie souhaitée.
La méthode prend en charge les paramètres suivants.
Paramètre | Type | Description |
---|---|---|
itemids | string/array | Renvoie uniquement les règles avec les ID donnés. |
groupids | string/array | Renvoie uniquement les règles appartenant aux groupes d'hôtes donnés. |
hostids | string/array | Renvoie uniquement les règles appartenant aux hôtes donnés. |
inherited | boolean | Si défini à true , ne renvoie que les règles héritées d'un modèle. |
interfaceids | string/array | Renvoie uniquement les règles utilisant les interfaces hôtes données. |
monitored | boolean | Si défini à true , seules les règles actives appartenant aux hôtes surveillés seront renvoyées. |
templated | boolean | Si défini à true , seules les règles appartenant à des modèles seront renvoyées. |
templateids | string/array | Renvoie uniquement les règles appartenant aux modèles donnés. |
selectFilter | query | Renvoie le filtre utilisé par la règle dans la propriété filter. |
selectGraphs | query | Renvoie les prototypes de graphe appartenant à la règle dans la propriété graphs. Supporte count . |
selectHostPrototypes | query | Renvoie les prototypes d'hôte appartenant à la règle dans la propriété hostPrototypes. Supporte count . |
selectHosts | query | Renvoie l'hôte auquel la règle appartient sous forme de tableau dans la propriété hosts. |
selectItems | query | Renvoie les prototypes d'élément appartenant à la règle dans la propriété items. Supporte count . |
selectTriggers | query | Renvoie les prototypes de déclencheur appartenant à la règle dans la propriété triggers. Supporte count . |
selectLLDMacroPaths | query | Renvoie une propriété lld_macro_paths avec une liste de macros LLD et des chemins vers les valeurs affectées à chaque macro correspondante. |
selectPreprocessing | query | Renvoie une propriété preprocessing avec les options de prétraitement de la règle LLD.Elle possède les propriétés suivantes : type - (string) Le type d'option de prétraitement :5 - Regular expression matching; 11 - XML XPath; 12 - JSONPath; 15 - Does not match regular expression; 16 - Check for error in JSON; 17 - Check for error in XML; 20 - Discard unchanged with heartbeat; 23 - Prometheus to JSON; 24 - CSV to JSON; 25 - Replace; 27 - XML to JSON. params - (string) Paramètres supplémentaires utilisés par l'option de prétraitement. Plusieurs paramètres sont séparés par le caractère LF (\n).error_handler - (string) Type d'action utilisé en cas d'échec de l'étape de prétraitement :0 - Error message is set by Zabbix server; 1 - Discard value; 2 - Set custom value; 3 - Set custom error message. error_handler_params - (string) Paramètres du gestionnaire d'erreurs. |
selectOverrides | query | Renvoie une propriété lld_rule_overrides avec une liste de filtres de remplacement, de conditions et d'opérations effectuées sur des objets prototypes. |
filter | object | Renvoie uniquement les résultats qui correspondent exactement au filtre donné. Accepte un tableau dans lequel les clés sont des noms de propriétés et les valeurs sont une valeur unique ou un tableau de valeurs à comparer. Prend en charge des filtres supplémentaires : host - nom technique de l'hôte auquel la règle appartient. |
limitSelects | integer | Limite le nombre d'enregistrements renvoyés par les sous-requêtes. S'applique aux sous-requêtes suivantes : selctItems ;selectGraphs ;selectTriggers . |
sortfield | string/array | Trie le résultat par les propriétés données. Les valeurs possibles sont : itemid , name , key_ , delay , type et status . |
countOutput | boolean | Ces paramètres, communs à toutes les méthodes get , sont décrits dans les commentaires 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 |
(integer/array)
Retourne soit :
countOutput
a été utilisé.Récupérer toutes les règles de découverte de l'hôte "10202".
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": "extend",
"hostids": "10202"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "27425",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Network interface discovery",
"key_": "net.if.discovery",
"delay": "1h",
"state": "0",
"status": "0",
"trapper_hosts": "",
"error": "",
"templateid": "22444",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"interfaceid": "119",
"description": "Discovery of network interfaces as defined in global regular expression \"Network interfaces for discovery\".",
"lifetime": "30d",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"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",
"parameters": []
},
{
"itemid": "27426",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"delay": "1h",
"state": "0",
"status": "0",
"trapper_hosts": "",
"error": "",
"templateid": "22450",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"interfaceid": "119",
"description": "Discovery of file systems of different types as defined in global regular expression \"File systems for discovery\".",
"lifetime": "30d",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"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",
"parameters": []
}
],
"id": 1
}
Récupérez le nom de la règle "24681" et ses conditions de filtrage. Le filtre utilise le type d'évaluation "et". La propriété formula
est donc vide et la propriété eval_formula
est générée automatiquement.
Requête :
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": [
"name"
],
"selectFilter": "extend",
"itemids": ["24681"]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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 la règle pour l'hôte par la valeur du champ URL de la règle. Seule la correspondance exacte de la chaîne d'URL définie pour la règle 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": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Réponse :
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "28336",
"type": "19",
"snmp_oid": "",
"hostid": "10257",
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"delay": "5s",
"history": "90d",
"trends": "0",
"status": "0",
"value_type": "4",
"trapper_hosts": "",
"units": "",
"error": "",
"logtimefmt": "",
"templateid": "0",
"valuemapid": "0",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"flags": "1",
"interfaceid": "5",
"description": "",
"inventory_link": "0",
"lifetime": "30d",
"state": "0",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"url": "http://127.0.0.1/discoverer.php",
"query_fields": [
{
"mode": "json"
},
{
"elements": "2"
}
],
"posts": "",
"status_codes": "200",
"follow_redirects": "1",
"post_type": "0",
"http_proxy": "",
"headers": {
"X-Type": "api",
"Authorization": "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",
"parameters": []
}
],
"id": 39
}
Récupérer 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": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
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": 39
}
CDiscoveryRule::get() dans ui/include/classes/api/services/CDiscoveryRule.php.