discoveryrule.get
Описание
integer/array discoveryrule.get(object parameters)
Этот метод позволяет получать правила LLD в соответствии с заданными параметрами.
Этот метод доступен пользователям любого типа. Разрешения на вызов метода могут быть отозваны в настройках роли пользователя. Дополнительную информацию смотрите в разделе Роли пользователей.
Параметры
(object) Параметры, определяющие желаемый вывод.
Метод поддерживает следующие параметры.
| Параметр | Тип | Описание |
|---|---|---|
| itemids | ID/array | Возвращать только правила LLD с указанными ID. |
| groupids | ID/array | Возвращать только правила LLD, принадлежащие узлам сети из указанных групп. |
| hostids | ID/array | Возвращать только правила LLD, принадлежащие указанным узлам сети. |
| inherited | boolean | Если установлено в true, возвращать только правила LLD, унаследованные от шаблона. |
| interfaceids | ID/array | Возвращать только правила LLD, использующие указанные интерфейсы узла сети. |
| monitored | boolean | Если установлено в true, возвращать только включенные правила LLD, принадлежащие отслеживаемым узлам сети. |
| templated | boolean | Если установлено в true, возвращать только правила LLD, принадлежащие шаблонам. |
| templateids | ID/array | Возвращать только правила LLD, принадлежащие указанным шаблонам. |
| selectDiscoveryData | query | Возвращать свойство discoveryData с данными объекта обнаружения правила LLD. Объект обнаружения правила LLD связывает обнаруженное правило LLD с прототипом правила LLD, из которого оно было обнаружено. |
| selectDiscoveryRulePrototypes | query | Возвращать свойство discoveryRulePrototypes с прототипами правил LLD, принадлежащими правилу LLD.Поддерживает count. |
| selectFilter | query | Возвращать свойство filter с данными фильтра, используемого правилом LLD. |
| selectGraphs | query | Возвращает свойство graphs с прототипами графиков, принадлежащими правилу LLD.Поддерживает count. |
| selectHostPrototypes | query | Возвращать свойство hostPrototypes с прототипами узлов сети, принадлежащими правилу LLD.Поддерживает count. |
| selectHosts | query | Возвращать свойство hosts с массивом узлов сети, которым принадлежит правило LLD. |
| selectItems | query | Возвращать свойство items с прототипами элементов данных, принадлежащими правилу LLD.Поддерживает count. |
| selectTriggers | query | Возвращать свойство triggers с прототипами триггеров, принадлежащими правилу LLD.Поддерживает count. |
| selectLLDMacroPaths | query | Возвращать свойство lld_macro_paths со списком макросов LLD и путей к значениям, назначенным каждому соответствующему макросу. |
| selectPreprocessing | query | Возвращать свойство preprocessing с параметрами предобработки правила LLD. |
| selectOverrides | query | Возвращать свойство lld_rule_overrides со списком фильтров переопределения, условий и операций, выполняемых над объектами прототипов. |
| filter | object | Возвращать только те результаты, которые точно соответствуют указанному фильтру. Принимает объект, где ключи — это имена свойств, а значения — либо одиночное значение, либо массив значений для сопоставления. Не поддерживает свойства типа данных text data type.Поддерживает дополнительные свойства: host - техническое имя узла сети, которому принадлежит правило LLD. |
| limitSelects | integer | Ограничивает количество записей, возвращаемых подзапросами. Применяется к следующим подзапросам: selectItems, selectGraphs, selectTriggers. |
| sortfield | string/array | Сортировать результат по указанным свойствам. Возможные значения: itemid, name, key_, delay, type, status. |
| countOutput | boolean | Эти параметры описаны в справочном комментарии. |
| editable | boolean | |
| excludeSearch | boolean | |
| limit | integer | |
| output | query | |
| preservekeys | boolean | |
| search | object | |
| searchByAny | boolean | |
| searchWildcardsEnabled | boolean | |
| sortorder | string/array | |
| startSearch | boolean |
Возвращаемые значения
(integer/array) Возвращает:
- массив объектов
- количество полученных объектов, если был использован параметр
countOutput.
Примеры
Получение правил обнаружения с узла сети
Получите все правила обнаружения для указанного ID узла сети.
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": "extend",
"hostids": "10202"
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "27425",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Обнаружение сетевых интерфейсов",
"key_": "net.if.discovery",
"delay": "1h",
"status": "0",
"trapper_hosts": "",
"templateid": "22444",
"valuemapid": "0",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"flags": "1",
"interfaceid": "119",
"description": "Обнаружение сетевых интерфейсов, как определено в глобальном регулярном выражении \"Network interfaces for discovery\".",
"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",
"output_format": "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": "Обнаружение смонтированных файловых систем",
"key_": "vfs.fs.discovery",
"delay": "1h",
"status": "0",
"trapper_hosts": "",
"templateid": "22450",
"valuemapid": "0",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"flags": "1",
"interfaceid": "119",
"description": "Обнаружение файловых систем различных типов, как определено в глобальном регулярном выражении \"File systems for discovery\".",
"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",
"output_format": "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
}
Получение условий фильтра
Получите имя правила LLD "24681" и условия его фильтра.
Фильтр использует тип вычисления "and", поэтому свойство formula пустое, а eval_formula генерируется автоматически.
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"selectFilter": "extend",
"itemids": ["24681"]
},
"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
Получение правила 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": 1
}
Ответ:
{
"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": "",
"flags": "1",
"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",
"output_format": "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
}
Получение правила LLD с переопределениями
Получить одно правило LLD, у которого имеются различные настройки переопределения.
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"itemids": "30980",
"selectOverrides": ["name", "step", "stop", "filter", "operations"]
},
"id": 1
}
Ответ:
{
"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
}
См. также
Исходный код
CDiscoveryRule::get() в ui/include/classes/api/services/CDiscoveryRule.php.