объект discoveryrule.update(объект/массив lldRules)
Этот метод позволяет обновлять существующие правила LLD.
(объект/массив)
Свойства правил LLD, которые будут обновлены.
Свойство itemid
должно быть указано по каждому правилу LLD, все остальные свойства опциональны. Будут обновлены только переданные свойства, все остальные останутся неизменными.
В дополнение к стандартным свойствам правила LLD, этот метод принимает следующие параметры.
Параметр | Тип | Описание |
---|---|---|
filter | объект | Объект фильтра правила LLD, который заменит текущий фильтр. |
(объект)
Возвращает объект, который содержит ID обновленных правил LLD под свойством itemids
.
Добавление фильтра таким образом, чтобы содержимое макроса {#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"
}
]
}
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Ответ:
Отключение трапов у LLD правила обнаружения.
Запрос:
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "28336",
"allow_traps": "0"
},
"id": 36,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Ответ:
CDiscoveryRule::update() в frontends/php/include/classes/api/services/CDiscoveryRule.php.
Update an LLD rule with preprocessing rule “JSONPath”.
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "44211",
"preprocessing": [
{
"type": "12",
"params": "$.path.to.json",
"error_handler": "2",
"error_handler_params": "5"
}
]
},
"auth": "700ca65537074ec963db7efabda78259",
"id": 1
}
Response:
Update an LLD rule script with a different script and remove unnecessary parameters that were used by previous script.
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "23865",
"parameters": [],
"script": "Zabbix.Log(3, 'Log test');\nreturn 1;"
},
"auth": "700ca65537074ec963db7efabda78259",
"id": 1
}
Response:
CDiscoveryRule::update() in ui/include/classes/api/services/CDiscoveryRule.php.