创建

说明

object discoveryrule.create(object/array **lldRules**)

此方法允许创建新的LLD规则。

参数

(object/array) 要创建的LLD规则。

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

属性类型
filterobjectLLD规则LLD规则的过滤对象
preprocessingarrayLLD规则预处理选项
lld_macro_pathsarrayLLD规则预处理选项
overridesarrayLLD规则覆盖选项

返回值

(object)itemids属性下返回一个包含IDs的被创建的LLD规则。返回的IDs的顺序与传递的LLD规则顺序相匹配。

示例

新建LLD规则

创建Zabbix agent LLD规则去发现以已装入的文件系统。发现监控项(items)将被每30s被更新一次。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.create",
  4. "params": {
  5. "name": "Mounted filesystem discovery",
  6. "key_": "vfs.fs.discovery",
  7. "hostid": "10197",
  8. "type": "0",
  9. "interfaceid": "112",
  10. "delay": "30s"
  11. },
  12. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  13. "id": 1
  14. }

响应:

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

使用一个过滤器

创建有由一套删选条件的得到的LLD规则。这些条件将使用逻辑“和”运算符将条件组合在一起。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.create",
  4. "params": {
  5. "name": "Filtered LLD rule",
  6. "key_": "lld",
  7. "hostid": "10116",
  8. "type": "0",
  9. "interfaceid": "13",
  10. "delay": "30s",
  11. "filter": {
  12. "evaltype": 1,
  13. "conditions": [
  14. {
  15. "macro": "{#MACRO1}",
  16. "value": "@regex1"
  17. },
  18. {
  19. "macro": "{#MACRO2}",
  20. "value": "@regex2"
  21. },
  22. {
  23. "macro": "{#MACRO3}",
  24. "value": "@regex3"
  25. }
  26. ]
  27. }
  28. },
  29. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  30. "id": 1
  31. }

响应:

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

使用自定义表达式的筛选器

创建一个带有过滤器的LLD规则,该过滤器将使用自定义表达式来计算条件。LLD规则必须只发现“{#MACRO1}”宏值同时匹配正则表达式“regex1”和“regex2”的对象,“{#MACRO2}”宏值同时匹配“regex3”或“regex4”的对象。公式id“A”、“B”、“C”和“D”是任意选择的。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.create",
  4. "params": {
  5. "name": "Filtered LLD rule",
  6. "key_": "lld",
  7. "hostid": "10116",
  8. "type": "0",
  9. "interfaceid": "13",
  10. "delay": "30s",
  11. "filter": {
  12. "evaltype": 3,
  13. "formula": "(A and B) and (C or D)",
  14. "conditions": [
  15. {
  16. "macro": "{#MACRO1}",
  17. "value": "@regex1",
  18. "formulaid": "A"
  19. },
  20. {
  21. "macro": "{#MACRO1}",
  22. "value": "@regex2",
  23. "formulaid": "B"
  24. },
  25. {
  26. "macro": "{#MACRO2}",
  27. "value": "@regex3",
  28. "formulaid": "C"
  29. },
  30. {
  31. "macro": "{#MACRO2}",
  32. "value": "@regex4",
  33. "formulaid": "D"
  34. }
  35. ]
  36. }
  37. },
  38. "auth": "038e1d7b1735c6a5436ee9eae095879e",
  39. "id": 1
  40. }

响应:

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

使用自定义查询字段和报头

创建具有自定义查询字段和标题的LLD规则。

请求:

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.create",
  4. "params": {
  5. "hostid": "10257",
  6. "interfaceid": "5",
  7. "type": "19",
  8. "name": "API HTTP agent",
  9. "key_": "api_discovery_rule",
  10. "value_type": "3",
  11. "delay": "5s",
  12. "url": "http://127.0.0.1?discoverer.php",
  13. "query_fields": [
  14. {
  15. "mode": "json"
  16. },
  17. {
  18. "elements":"2"
  19. }
  20. ],
  21. "headers": {
  22. "X-Type": "api",
  23. "Authorization": "Bearer mF_A.B5f-2.1JcM"
  24. },
  25. "allow_traps": "1",
  26. "trapper_hosts": "127.0.0.1",
  27. "id": 35,
  28. "auth": "d678e0b85688ce578ff061bd29a20d3b",
  29. }
  30. }

响应:

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

参见

来源

CDiscoveryRule::create() in frontends/php/include/classes/api/services/CDiscoveryRule.php.