object 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
}
Ответ:
Запрос:
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "22450",
"lld_macro_paths": [
{
"lld_macro": "{#MACRO1}",
"path": "$.json.path"
}
]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Ответ:
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:
Обновить скрипт LLD правила другим скриптом и удалить ненужные параметры, которые использовались предыдущим сценарием.
Запрос:
{
"jsonrpc": "2.0",
"method": "discoveryrule.update",
"params": {
"itemid": "23865",
"parameters": [],
"script": "Zabbix.Log(3, 'Log test');\nreturn 1;"
},
"auth": "700ca65537074ec963db7efabda78259",
"id": 1
}
Ответ:
CDiscoveryRule::update() в ui/include/classes/api/services/CDiscoveryRule.php.