discoveryrule.update
Описание
object discoveryrule.update(объект/массив lldRules)
Этот метод позволяет обновлять существующие правила LLD.
Этот метод доступен только пользователям с типом доступа Администратор и Супер-администратор. Разрешения на вызов метода можно отозвать в настройках ролей пользователя. Дополнительную информацию см. в разделе Роли пользователей.
Параметры
(object/array) свойства правила LLD, которые должны быть обновлены.
Свойство itemid должно быть определено для каждого правила LLD, все остальные
свойства являются необязательными. Будут обновлены только переданные свойства, все
остальные останутся без изменений.
В дополнение к стандартным свойствам правила LLD, метод принимает следующие параметры.
| Параметр | Тип | Описание |
|---|---|---|
| filter | object | Фильтр правила LLD для замены существующего фильтра. |
| preprocessing | object/array | Параметры предобработки правила LLD для замены существующих параметров предобработки. Поведение параметра: - только для чтения для унаследованных объектов |
| lld_macro_paths | object/array | Параметры lld_macro_path правила LLD для замены существующих параметров lld_macro_path. Поведение параметра: - только для чтения для унаследованных объектов |
| overrides | object/array | Параметры переопределений правила LLD для замены существующих параметров переопределений. Поведение параметра: - только для чтения для унаследованных объектов |
Возвращаемые значения
(объект) Возвращает объект, который содержит ID обновленных правил LLD, указанных в свойстве itemids.
Примеры
Добавление фильтра в правило LLD
Добавьте фильтр так, чтобы содержимое макроса {#FSTYPE} соответствовало регулярному выражению \@File systems for discovery.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"filter": {
"evaltype": 1,
"conditions": [
{
"macro": "{#FSTYPE}",
"value": "@File systems for discovery"
}
]
}
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
Добавление путей макросов LLD
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"lld_macro_paths": [
{
"lld_macro": "{#MACRO1}",
"path": "$.json.path"
}
]
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"22450"
]
},
"id": 1
}
Отключение траппинга
Отключите траппинг LLD для правила обнаружения.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "28336",
"allow_traps": 0
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28336"
]
},
"id": 1
}
Обновление параметров предобработки правила LLD
Обновите правило LLD с правилом предобработки “JSONPath”.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "44211",
"preprocessing": [
{
"type": 12,
"params": "$.path.to.json",
"error_handler": 2,
"error_handler_params": "5"
}
]
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
Обновление скрипта правила LLD
Обновите скрипт правила LLD другим скриптом и удалите ненужные параметры, которые использовались предыдущим скриптом.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "23865",
"parameters": [],
"script": "Zabbix.log(3, 'Log test');\nreturn 1;"
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Обновление срока жизни правила LLD
Обновите правило LLD, чтобы отключать сущность, которая больше не обнаруживается, через 12 часов и удалять её через 7 дней.
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "46864",
"lifetime_type": 0,
"lifetime": "7d",
"enabled_lifetime_type": 0,
"enabled_lifetime": "12h"
},
"id": 1
}
Ответ:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"46864"
]
},
"id": 1
}
Источник
CDiscoveryRule::update() в ui/include/classes/api/services/CDiscoveryRule.php.