integer/array discoveryrule.get(object parameters)
Метод дозволяє отримати правила LLD за заданими параметрами.
Цей спосіб доступний користувачам будь-якого типу. Дозволи на виклик методу можна скасувати в налаштуваннях ролі користувача. Див. Ролі користувача для отримання додаткової інформації.
(object)
Параметри, що визначають бажаний результат.
Метод підтримує такі параметри.
Параметр | Тип | Опис |
---|---|---|
itemids | рядок/масив | Повертати лише правила LLD із заданими ідентифікаторами. |
groupids | string/array | Повертати лише правила LLD, які належать хостам із заданих груп. |
hostids | рядок/масив | Повертає лише правила LLD, які належать вказаним хостам. |
inherited | boolean | Якщо встановлено значення true повертає лише правила LLD, успадковані з шаблону. |
interfaceids | string/array | Повернути лише правила LLD, які використовують задані інтерфейси хоста. |
monitored | boolean | Якщо встановлено значення true повертає лише ввімкнені правила LLD, які належать контрольованим хостам. |
templated | boolean | Якщо встановлено значення true , повертати лише правила LLD, які належать до шаблонів. |
templateids | рядок/масив | Повертати лише правила LLD, які належать до вказаних шаблонів. |
selectFilter | запит | Повернути властивість filter із даними фільтра, який використовується правилом LLD. |
selectGraphs | запит | Повертає властивість graphs із прототипами графіків, які належать до правила LLD. Підтримує count . |
selectHostPrototypes | запит | Повертає властивість hostPrototypes із прототипами хостів, які належать до правила LLD. Підтримує count . |
selectHosts | запит | Повернути властивість hosts із масивом хостів, до яких належить правило LLD. |
selectItems | запит | Повертає властивість items із прототипами елементів, які належать до правила LLD. Підтримує count . |
selectTriggers | запит | Повертає властивість triggers із прототипами тригерів, які належать до правила LLD. Підтримує count . |
selectLLDMacroPaths | запит | Повернути властивість lld_macro_paths зі списком макросів LLD і шляхів до значень, призначених кожному відповідному макросу. |
selectPreprocessing | query | Повертає властивість попередньої обробки з параметрами попередньої обробки правила LLD.Вона має такі властивості: type - (string) Тип параметра попередньої обробки:5 - Зіставлення регулярного виразу; 11 - XML XPath; 12 - JSONPath; 15 - Не відповідає регулярному виразу; 16 - Перевірте наявність помилок у JSON; 17 - Перевірте наявність помилок у форматі XML; 20 - Відкинути без змін із серцевим ритмом; 23 - Prometheus до JSON; 24 - CSV до JSON; 25 - Замінити; 27 - XML до JSON. параметри - (рядок) Додаткові параметри, які використовуються параметром попередньої обробки. Кілька параметрів розділені символом LF (\n).error_handler - (рядок) Тип дії, який використовується у випадку помилки етапу попередньої обробки:0 - повідомлення про помилку встановлено сервером Zabbix;<br >1 - Відкинути значення; 2 - Установити користувацьке значення; 3 - Установити власне повідомлення про помилку. error_handler_params - (рядок) Параметри обробника помилок. |
selectOverrides | запит | Повернути властивість lld_rule_overrides зі списком замінених фільтрів, умов і операцій, які виконуються над об’єктами-прототипами. |
фільтр | об'єкт | Повертає лише ті результати, які точно відповідають заданому фільтру. Приймає масив, де ключі є іменами властивостей, а значення є або одним значенням, або масивом значень для порівняння. Підтримує додаткові фільтри: host - технічна назва хоста, до якого належить правило LLD. |
limitSelects | ціле число | Обмежує кількість записів, що повертаються підвиборами. Застосовується до таких підвиборів: selctItems ;selectGraphs ;selectTriggers . |
sortfield | string/array | Відсортуйте результат за заданими властивостями. Можливі значення: itemid , name , key_ , delay , type і status . |
countOutput | boolean | Ці параметри, які є спільними для всіх методів get , детально описані в довідковому коментарі. |
редагований | логічний | |
excludeSearch | boolean | |
ліміт | ціле | |
вивід | запит | |
preservekeys | boolean | |
пошук | об'єкт | |
searchByAny | логічний | |
увімкнено знаки підстановки | логічний | |
порядок сортування | рядок/масив | |
почати пошук | логічний |
(integer/array)
Повертає або:
countOutput
.Отримати всі правила виявлення для певного ідентифікатора хоста.
Запит:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": "extend",
"hostids": "10202"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Відповідь:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "27425",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Network interface discovery",
"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": "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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
},
{
"itemid": "27426",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Mounted filesystem discovery",
"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": "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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
}
],
"id": 1
}
Отримайте ім’я правила LLD «24681» та його умови фільтрації. Фільтр використовує тип оцінки "and", тому властивість formula
порожня, а eval_formula
генерується автоматично.
Запит:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"selectFilter": "extend",
"itemids": ["24681"]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Відповідь:
{
"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
}
Отримати правило LLD для хоста за значенням поля URL-адреси правила. Підтримується лише точний збіг рядка URL-адреси, визначеного для правила LLD.
Запит:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"hostids": "10257",
"filter": {
"type": 19,
"url": "http://127.0.0.1/discoverer.php"
}
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Відповідь:
{
"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": "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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
}
],
"id": 39
}
Отримайте одне правило LLD, яке має різні налаштування заміни.
Запит:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"itemids": "30980",
"selectOverrides": ["name", "step", "stop", "filter", "operations"]
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Відповідь:
{
"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() в ui/include/classes/api/services/CDiscoveryRule.php.