获取

说明

integer/array discoveryrule.get(object **parameters**)

此方法允许根据给定的参数获取LLD规则。

参数

(object) 参数定义期望输出。

此方法支持如下参数。

属性类型描述
itemidsstring/array返回给定IDs的LLD规则。
groupidsstring/array只返回属于来自给定组的主机的LLD规则。
hostidsstring/array返回属于给定主机的LLD规则。
inheritedboolean如果设为true,返回自称自某模板的LLD规则。
interfaceidsstring/array返回使用给定主机接口的LLD规则。
monitoredboolean如果设为true,返回已经启用的属于已监控主机的LLD规则。
templatedboolean如果设为true,返回属于(多个)模板的LLD规则。
templateidsstring/array返回属于给定给定模板的LLD规则。
selectFilterqueryfilter中返回LLD使用的筛选器。
selectGraphsquerygraphs属性中返回属于LLD规则的图表原型。

Supports count.
selectHostPrototypesqueryhostPrototypes属性中返回属于该LLD规则的主机原型。

Supports count.
selectHostsqueryhosts属性下以数组形式返回属于该LLD规则的主机。
selectItemsqueryitems下返回属于该LLD规则的item。

Supports count.
selectTriggersquerytriggers属性下返回属于该触发器原型。

Supports count.
selectApplicationPrototypesquery返回一个applicationPrototypes属性,其中的应用程序原型属于属于此LLD规则的所有项原型。
selectLLDMacroPathsquery返回一个lldmacro_paths属性,其中包含LLD宏列表和分配给每个相应宏的值的路径。
selectPreprocessingquery返回“预处理”属性中的项目预处理选项。

它具有以下特性:
type - (string) 预处理选项类型:
1 -自定义乘数;
2 -右纵倾;
3 -左纵倾;
4 -修剪;
5 -正则表达式匹配;
6 -布尔值到小数;
7 -八进制到十进制;
8—十六进制到十进制;
9 -简单的改变;
10 -每秒变化;
11 - XML XPath;
12 - JSONPath;
13 - In范围;
14 -匹配正则表达式;
15 -不匹配正则表达式;
16 -检查JSON中的错误
17 -检查XML中的错误;
18 -使用正则表达式检查错误;
19 -丢弃不变的;
20 -不改变心跳丢弃;
21 - JavaScript;
22 -普罗米修斯模式;
23 -普罗米修斯到JSON;
24 - CSV到JSON;
25 -替换
params - (string)预处理选项使用的附加参数。多个参数以LF (\n)字符分隔。
error_handler - (string)预处理步骤失败时使用的动作类型:
0 -错误信息被Zabbix服务器设置;
1 -弃值;
2 -设置自定义值;
3 -设置自定义错误信息。error_handler_params - (string)错误处理程序参数。
selectOverridesquery返回lld_rule_overrides属性,其中包含在prototype对象上执行的覆盖过滤器、条件和操作的列表
filterobject仅返回紧缺匹配给定筛选条件的结果。

接受一个数组,这些数组的键为属性名称,值是一个或数组中的值的要匹配的值。

Supports additional filters:
host - LLD规则所属主机的技术名称。
limitSelectsinteger限制子选择返回的结果的数量。

适用于以下子选择:
selctItems;
selectGraphs;
selectTriggers.
sortfieldstring/array根据给定的属性把结果进行排序。

可能的值是: itemid, name, key, delay, type and status.
countOutputboolean引用评论中详细描述了这些对于所有“get”方法都是通用的参数。
editableboolean
excludeSearchboolean
limitinteger
outputquery
preservekeysboolean
searchobject
searchByAnyboolean
searchWildcardsEnabledboolean
sortorderstring/array
startSearchboolean

Return values 返回值

(integer/array) 返回:

  • 对象数组;

  • 检索对象的计数(如果使用了“countOutput”参数)。

示例

从一个主机获取多有的发现规则

获取主机“10202”所有的发现规则。

请求:

  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. "state": "0",
  13. "status": "0",
  14. "trapper_hosts": "",
  15. "error": "",
  16. "templateid": "22444",
  17. "params": "",
  18. "ipmi_sensor": "",
  19. "authtype": "0",
  20. "username": "",
  21. "password": "",
  22. "publickey": "",
  23. "privatekey": "",
  24. "interfaceid": "119",
  25. "description": "Discovery of network interfaces as defined in global regular expression \"Network interfaces for discovery\".",
  26. "lifetime": "30d",
  27. "jmx_endpoint": "",
  28. "master_itemid": "0",
  29. "timeout": "3s",
  30. "url": "",
  31. "query_fields": [],
  32. "posts": "",
  33. "status_codes": "200",
  34. "follow_redirects": "1",
  35. "post_type": "0",
  36. "http_proxy": "",
  37. "headers": [],
  38. "retrieve_mode": "0",
  39. "request_method": "0",
  40. "ssl_cert_file": "",
  41. "ssl_key_file": "",
  42. "ssl_key_password": "",
  43. "verify_peer": "0",
  44. "verify_host": "0",
  45. "allow_traps": "0"
  46. },
  47. {
  48. "itemid": "27426",
  49. "type": "0",
  50. "snmp_oid": "",
  51. "hostid": "10202",
  52. "name": "Mounted filesystem discovery",
  53. "key_": "vfs.fs.discovery",
  54. "delay": "1h",
  55. "state": "0",
  56. "status": "0",
  57. "trapper_hosts": "",
  58. "error": "",
  59. "templateid": "22450",
  60. "params": "",
  61. "ipmi_sensor": "",
  62. "authtype": "0",
  63. "username": "",
  64. "password": "",
  65. "publickey": "",
  66. "privatekey": "",
  67. "interfaceid": "119",
  68. "description": "Discovery of file systems of different types as defined in global regular expression \"File systems for discovery\".",
  69. "lifetime": "30d",
  70. "jmx_endpoint": "",
  71. "master_itemid": "0",
  72. "timeout": "3s",
  73. "url": "",
  74. "query_fields": [],
  75. "posts": "",
  76. "status_codes": "200",
  77. "follow_redirects": "1",
  78. "post_type": "0",
  79. "http_proxy": "",
  80. "headers": [],
  81. "retrieve_mode": "0",
  82. "request_method": "0",
  83. "ssl_cert_file": "",
  84. "ssl_key_file": "",
  85. "ssl_key_password": "",
  86. "verify_peer": "0",
  87. "verify_host": "0",
  88. "allow_traps": "0"
  89. }
  90. ],
  91. "id": 1
  92. }

检索过滤条件

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

请求:

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

响应:

  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": "8",
  21. "formulaid": "B"
  22. },
  23. {
  24. "macro": "{#MACRO3}",
  25. "value": "@regex3",
  26. "operator": "8",
  27. "formulaid": "C"
  28. }
  29. ],
  30. "eval_formula": "A and B and C"
  31. }
  32. }
  33. ],
  34. "id": 1
  35. }

根据URL获取LLD规则

根据主机的规则URL字段值获取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": 39,
  12. "auth": "d678e0b85688ce578ff061bd29a20d3b"
  13. }

响应:

  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. "history": "90d",
  13. "trends": "0",
  14. "status": "0",
  15. "value_type": "4",
  16. "trapper_hosts": "",
  17. "units": "",
  18. "error": "",
  19. "logtimefmt": "",
  20. "templateid": "0",
  21. "valuemapid": "0",
  22. "params": "",
  23. "ipmi_sensor": "",
  24. "authtype": "0",
  25. "username": "",
  26. "password": "",
  27. "publickey": "",
  28. "privatekey": "",
  29. "flags": "1",
  30. "interfaceid": "5",
  31. "description": "",
  32. "inventory_link": "0",
  33. "lifetime": "30d",
  34. "state": "0",
  35. "jmx_endpoint": "",
  36. "master_itemid": "0",
  37. "timeout": "3s",
  38. "url": "http://127.0.0.1/discoverer.php",
  39. "query_fields": [
  40. {
  41. "mode": "json"
  42. },
  43. {
  44. "elements": "2"
  45. }
  46. ],
  47. "posts": "",
  48. "status_codes": "200",
  49. "follow_redirects": "1",
  50. "post_type": "0",
  51. "http_proxy": "",
  52. "headers": {
  53. "X-Type": "api",
  54. "Authorization": "Bearer mF_A.B5f-2.1JcM"
  55. },
  56. "retrieve_mode": "0",
  57. "request_method": "1",
  58. "ssl_cert_file": "",
  59. "ssl_key_file": "",
  60. "ssl_key_password": "",
  61. "verify_peer": "0",
  62. "verify_host": "0",
  63. "allow_traps": "0"
  64. }
  65. ],
  66. "id": 39
  67. }

参考

来源

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