获取

描述

integer/array discoveryrule.get(object parameters)

该方法允许根据给定的参数检索 LLD 规则。

此方法对于任何用户可用。可以在用户角色设置中撤销调用该方法的权限。更多信息请查看 用户角色

参数

(object)定义所需输出的参数。

该方法支持以下参数。

参数类型描述
itemidsID/array只返回具有给定IDs的LLD规则。
groupidsID/array只返回属于给定组的LLD规则。
hostidsID/array只返回属于给定主机的LLD规则。
inheritedboolean如果设置为true,则只返回从模板继承的LLD规则。
interfaceidsID/array只返回使用给定主机接口的LLD规则。
monitoredboolean如果设置为true,则只返回属于被监控主机的启用的LLD规则。
templatedboolean如果设置为true,则只返回属于模板的LLD规则。
templateidsID/array只返回属于给定模板的LLD规则。
selectFilterquery返回一个filter属性,包含LLD规则使用的过滤器数据。
selectGraphsquery返回一个graphs属性,包含属于LLD规则的图表原型。支持count
selectHostPrototypesquery返回一个hostPrototypes属性,包含属于LLD规则的主机原型。支持count
selectHostsquery返回一个hosts属性,包含LLD规则所属的主机数组。
selectItemsquery返回一个items属性,包含属于LLD规则的监控项原型。支持count
selectTriggersquery返回一个triggers属性,包含属于LLD规则的触发器原型。支持count
selectLLDMacroPathsquery返回一个lldmacro_paths属性,包含LLD宏和分配给每个相应宏的值路径列表。
selectPreprocessingquery返回一个preprocessing属性,包含LLD规则的预处理选项。
selectOverridesquery返回一个lld_rule_overrides属性,包含对原型对象执行的覆盖过滤器、条件和操作的列表。
filterobject只返回完全符合给定过滤器的结果。接受一个对象,其中键是属性名称,值是单一值或要匹配的值数组。不支持text 数据类型的属性。支持额外属性:host - LLD规则所属的主机的技术名称。
limitSelectsinteger限制子选择返回的记录数。适用于以下子选择:selectItems, selectGraphs, selectTriggers
sortfieldstring/array根据给定属性对结果进行排序。可能的值:itemid, name, key, delay, type, status
countOutputboolean这些参数对于所有get方法都是通用的,在参考注释中有详细描述。
editableboolean
excludeSearchboolean
limitinteger
outputquery
preservekeysboolean
searchobject
searchByAnyboolean
searchWildcardsEnabledboolean
sortorderstring/array
startSearchboolean

返回值

(integer/array) 返回任一值:

  • 对象数组;
  • 检索到的对象的计数,如果使用了 countOutput 参数。

示例

检索主机发现规则

返回主机”10202”所有自动发现规则。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.get",
  4. "params": {
  5. "output": "extend",
  6. "hostids": "10202"
  7. },
  8. "id": 1
  9. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "itemid": "27425",
  6. "type": "0",
  7. "snmp_oid": "",
  8. "hostid": "10202",
  9. "name": "Network interface discovery",
  10. "key_": "net.if.discovery",
  11. "delay": "1h",
  12. "status": "0",
  13. "trapper_hosts": "",
  14. "templateid": "22444",
  15. "valuemapid": "0",
  16. "params": "",
  17. "ipmi_sensor": "",
  18. "authtype": "0",
  19. "username": "",
  20. "password": "",
  21. "publickey": "",
  22. "privatekey": "",
  23. "interfaceid": "119",
  24. "description": "Discovery of network interfaces as defined in global regular expression \"Network interfaces for discovery\".",
  25. "lifetime": "30d",
  26. "jmx_endpoint": "",
  27. "master_itemid": "0",
  28. "timeout": "",
  29. "url": "",
  30. "query_fields": [],
  31. "posts": "",
  32. "status_codes": "200",
  33. "follow_redirects": "1",
  34. "post_type": "0",
  35. "http_proxy": "",
  36. "headers": [],
  37. "retrieve_mode": "0",
  38. "request_method": "0",
  39. "ssl_cert_file": "",
  40. "ssl_key_file": "",
  41. "ssl_key_password": "",
  42. "verify_peer": "0",
  43. "verify_host": "0",
  44. "allow_traps": "0",
  45. "uuid": "",
  46. "lifetime_type": "0",
  47. "enabled_lifetime_type": "2",
  48. "enabled_lifetime": "0",
  49. "state": "0",
  50. "error": "",
  51. "parameters": []
  52. },
  53. {
  54. "itemid": "27426",
  55. "type": "0",
  56. "snmp_oid": "",
  57. "hostid": "10202",
  58. "name": "Mounted filesystem discovery",
  59. "key_": "vfs.fs.discovery",
  60. "delay": "1h",
  61. "status": "0",
  62. "trapper_hosts": "",
  63. "templateid": "22450",
  64. "valuemapid": "0",
  65. "params": "",
  66. "ipmi_sensor": "",
  67. "authtype": "0",
  68. "username": "",
  69. "password": "",
  70. "publickey": "",
  71. "privatekey": "",
  72. "interfaceid": "119",
  73. "description": "Discovery of file systems of different types as defined in global regular expression \"File systems for discovery\".",
  74. "lifetime": "30d",
  75. "jmx_endpoint": "",
  76. "master_itemid": "0",
  77. "timeout": "",
  78. "url": "",
  79. "query_fields": [],
  80. "posts": "",
  81. "status_codes": "200",
  82. "follow_redirects": "1",
  83. "post_type": "0",
  84. "http_proxy": "",
  85. "headers": [],
  86. "retrieve_mode": "0",
  87. "request_method": "0",
  88. "ssl_cert_file": "",
  89. "ssl_key_file": "",
  90. "ssl_key_password": "",
  91. "verify_peer": "0",
  92. "verify_host": "0",
  93. "allow_traps": "0",
  94. "uuid": "",
  95. "lifetime_type": "0",
  96. "enabled_lifetime_type": "2",
  97. "enabled_lifetime": "0",
  98. "state": "0",
  99. "error": "",
  100. "parameters": []
  101. }
  102. ],
  103. "id": 1
  104. }

检索过滤条件

检索 LLD 规则的名称“24681”及其过滤条件。过滤器使用“and”求值类型,因此 formula 属性为空,并自动生成 eval_formula

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.get",
  4. "params": {
  5. "output": ["name"],
  6. "selectFilter": "extend",
  7. "itemids": ["24681"]
  8. },
  9. "id": 1
  10. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "itemid": "24681",
  6. "name": "Filtered LLD rule",
  7. "filter": {
  8. "evaltype": "1",
  9. "formula": "",
  10. "conditions": [
  11. {
  12. "macro": "{#MACRO1}",
  13. "value": "@regex1",
  14. "operator": "8",
  15. "formulaid": "A"
  16. },
  17. {
  18. "macro": "{#MACRO2}",
  19. "value": "@regex2",
  20. "operator": "9",
  21. "formulaid": "B"
  22. },
  23. {
  24. "macro": "{#MACRO3}",
  25. "value": "",
  26. "operator": "12",
  27. "formulaid": "C"
  28. },
  29. {
  30. "macro": "{#MACRO4}",
  31. "value": "",
  32. "operator": "13",
  33. "formulaid": "D"
  34. }
  35. ],
  36. "eval_formula": "A and B and C and D"
  37. }
  38. }
  39. ],
  40. "id": 1
  41. }

通过 URL 检索 LLD 规则

通过规则 URL 字段值检索主机的 LLD 规则。仅支持为 LLD 规则定义的 URL 字符串的完全匹配。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.get",
  4. "params": {
  5. "hostids": "10257",
  6. "filter": {
  7. "type": 19,
  8. "url": "http://127.0.0.1/discoverer.php"
  9. }
  10. },
  11. "id": 1
  12. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "itemid": "28336",
  6. "type": "19",
  7. "snmp_oid": "",
  8. "hostid": "10257",
  9. "name": "API HTTP agent",
  10. "key_": "api_discovery_rule",
  11. "delay": "5s",
  12. "status": "0",
  13. "trapper_hosts": "",
  14. "templateid": "0",
  15. "valuemapid": "0",
  16. "params": "",
  17. "ipmi_sensor": "",
  18. "authtype": "0",
  19. "username": "",
  20. "password": "",
  21. "publickey": "",
  22. "privatekey": "",
  23. "interfaceid": "5",
  24. "description": "",
  25. "lifetime": "30d",
  26. "jmx_endpoint": "",
  27. "master_itemid": "0",
  28. "timeout": "",
  29. "url": "http://127.0.0.1/discoverer.php",
  30. "query_fields": [
  31. {
  32. "name": "mode",
  33. "value": "json"
  34. },
  35. {
  36. "name": "elements",
  37. "value": "2"
  38. }
  39. ],
  40. "posts": "",
  41. "status_codes": "200",
  42. "follow_redirects": "1",
  43. "post_type": "0",
  44. "http_proxy": "",
  45. "headers": [
  46. {
  47. "name" : "X-Type",
  48. "value": "api"
  49. },
  50. {
  51. "name": "Authorization",
  52. "value": "Bearer mF_A.B5f-2.1JcM"
  53. }
  54. ],
  55. "retrieve_mode": "0",
  56. "request_method": "1",
  57. "ssl_cert_file": "",
  58. "ssl_key_file": "",
  59. "ssl_key_password": "",
  60. "verify_peer": "0",
  61. "verify_host": "0",
  62. "allow_traps": "0",
  63. "uuid": "",
  64. "lifetime_type": "0",
  65. "enabled_lifetime_type": "2",
  66. "enabled_lifetime": "0",
  67. "state": "0",
  68. "error": "",
  69. "parameters": []
  70. }
  71. ],
  72. "id": 1
  73. }

使用覆盖检索 LLD 规则

检索一个具有多种覆盖设置的LLD规则。

请求

  1. {
  2. "jsonrpc": "2.0",
  3. "method": "discoveryrule.get",
  4. "params": {
  5. "output": ["name"],
  6. "itemids": "30980",
  7. "selectOverrides": ["name", "step", "stop", "filter", "operations"]
  8. },
  9. "id": 1
  10. }

响应:

  1. {
  2. "jsonrpc": "2.0",
  3. "result": [
  4. {
  5. "name": "Discover database host",
  6. "overrides": [
  7. {
  8. "name": "Discover MySQL host",
  9. "step": "1",
  10. "stop": "1",
  11. "filter": {
  12. "evaltype": "2",
  13. "formula": "",
  14. "conditions": [
  15. {
  16. "macro": "{#UNIT.NAME}",
  17. "operator": "8",
  18. "value": "^mysqld\\.service$",
  19. "formulaid": "A"
  20. },
  21. {
  22. "macro": "{#UNIT.NAME}",
  23. "operator": "8",
  24. "value": "^mariadb\\.service$",
  25. "formulaid": "B"
  26. }
  27. ],
  28. "eval_formula": "A or B"
  29. },
  30. "operations": [
  31. {
  32. "operationobject": "3",
  33. "operator": "2",
  34. "value": "Database host",
  35. "opstatus": {
  36. "status": "0"
  37. },
  38. "optag": [
  39. {
  40. "tag": "Database",
  41. "value": "MySQL"
  42. }
  43. ],
  44. "optemplate": [
  45. {
  46. "templateid": "10170"
  47. }
  48. ]
  49. }
  50. ]
  51. },
  52. {
  53. "name": "Discover PostgreSQL host",
  54. "step": "2",
  55. "stop": "1",
  56. "filter": {
  57. "evaltype": "0",
  58. "formula": "",
  59. "conditions": [
  60. {
  61. "macro": "{#UNIT.NAME}",
  62. "operator": "8",
  63. "value": "^postgresql\\.service$",
  64. "formulaid": "A"
  65. }
  66. ],
  67. "eval_formula": "A"
  68. },
  69. "operations": [
  70. {
  71. "operationobject": "3",
  72. "operator": "2",
  73. "value": "Database host",
  74. "opstatus": {
  75. "status": "0"
  76. },
  77. "optag": [
  78. {
  79. "tag": "Database",
  80. "value": "PostgreSQL"
  81. }
  82. ],
  83. "optemplate": [
  84. {
  85. "templateid": "10263"
  86. }
  87. ]
  88. }
  89. ]
  90. }
  91. ]
  92. }
  93. ],
  94. "id": 1
  95. }

参阅

来源

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