更新

描述

object discoveryrule.update(object/array lldRules)

此方法更新已存在的LLD规则。

此方法只有 Admin(管理员)Super admin(超级管理员) 用户可用。可以在用户角色设置中撤销调用该方法的权限。更多信息请查看用户角色

参数

(object/array) 需要更新的 LLD 规则属性。

必须为每个 LLD 规则定义“itemid”属性,所有其他属性都是可选的。只有传递的属性将被更新,所有其他的将保持不变。

除了 标准 LLD 规则属性,该方法还接受以下参数。

参数类型描述
filterobjectLLD规则过滤器,用于替换现有的过滤器。
preprocessingobject/arrayLLD规则预处理选项,用于替换现有的预处理选项。

参数行为:
- 对于继承对象是只读
lld_macro_pathsobject/arrayLLD规则lld_macro_path选项,用于替换现有的lld_macro_path选项。

参数行为:
- 对于继承对象是只读
overridesobject/arrayLLD规则覆盖选项,用于替换现有的覆盖选项。

参数行为:
- 对于继承对象是只读

返回值

(object) 返回一个对象,其中包含 itemids 属性下更新的 LLD 规则的 ID。

示例

LLD 规则添加一个过滤器

添加一个过滤器,以便 {#FSTYPE} 宏的内容与 @File systems for discovery 正则表达式匹配。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "22450",
  6. "filter": {
  7. "evaltype": 1,
  8. "conditions": [
  9. {
  10. "macro": "{#FSTYPE}",
  11. "value": "@File systems for discovery"
  12. }
  13. ]
  14. }
  15. },
  16. "id": 1
  17. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "22450"
  6. ]
  7. },
  8. "id": 1
  9. }

添加LLD宏路径

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "22450",
  6. "lld_macro_paths": [
  7. {
  8. "lld_macro": "{#MACRO1}",
  9. "path": "$.json.path"
  10. }
  11. ]
  12. },
  13. "id": 1
  14. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "22450"
  6. ]
  7. },
  8. "id": 1
  9. }

禁用 trapping

禁用发现规则的LLD trapping。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "28336",
  6. "allow_traps": 0
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "28336"
  6. ]
  7. },
  8. "id": 1
  9. }

更新LLD规则预处理选项

使用预处理规则“JSONPath”更新LLD规则。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "44211",
  6. "preprocessing": [
  7. {
  8. "type": 12,
  9. "params": "$.path.to.json",
  10. "error_handler": 2,
  11. "error_handler_params": "5"
  12. }
  13. ]
  14. },
  15. "id": 1
  16. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "44211"
  6. ]
  7. },
  8. "id": 1
  9. }

更新LLD规则脚本

使用不同的脚本更新一个 LLD 规则脚本,并删除之前脚本使用的不必要参数。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "23865",
  6. "parameters": [],
  7. "script": "Zabbix.log(3, 'Log test');\nreturn 1;"
  8. },
  9. "id": 1
  10. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "23865"
  6. ]
  7. },
  8. "id": 1
  9. }

更新LLD规则的生命周期。

更新LLD规则,以在实体不再被发现后12小时禁用它,并在7天后删除它。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.update",
  4. "params": {
  5. "itemid": "46864",
  6. "lifetime_type": 0,
  7. "lifetime": "7d",
  8. "enabled_lifetime_type": 0,
  9. "enabled_lifetime": "12h"
  10. },
  11. "id": 1
  12. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": {
  4. "itemids": [
  5. "46864"
  6. ]
  7. },
  8. "id": 1
  9. }

来源

CDiscoveryRule::update() in ui/include/classes/api/services/CDiscoveryRule.php.