integer/array discoveryrule.get(object parameters)
该方法允许根据给定的参数检索 LLD 规则。
此方法对于任何用户可用。可以在用户角色设置中撤销调用该方法的权限。更多信息请查看 用户角色。
(object)
定义所需输出的参数。
该方法支持以下参数。
参数 | 类型 | 说明 |
---|---|---|
itemids | string/array | 只返回给定 ID 的 LLD 规则。 |
groupids | string/array | 只返回属于给定组中主机的 LLD 规则。 |
hostids | string/array | 只返回属于给定主机的 LLD 规则。 |
inherited | boolean | 如果设置为 true ,则仅返回从模板继承的 LLD 规则。 |
interfaceids | string/array | 仅返回使用给定主机接口的 LLD 规则。 |
monitored | boolean | 如果设置为 true ,则仅返回属于受监控主机的已启用 LLD 规则。 |
templated | boolean | 如果设置为 true ,则仅返回属于模板的 LLD 规则。 |
templateids | string/array | 只返回属于给定模板的 LLD 规则。 |
selectFilter | query | 返回一个 filter 属性,其中包含 LLD 规则使用的过滤器的数据。 |
selectGraphs | query | 返回具有属于 LLD 规则的图形原型的 graphs 属性。 支持 count 。 |
selectHostPrototypes | query | 返回具有属于 LLD 规则的主机原型的 hostPrototypes 属性。 支持 count 。 |
selectHosts | query | 返回一个 hosts 属性,其中包含 LLD 规则所属的主机数组。 |
selectItems | query | 返回一个 items 属性,其中包含属于 LLD 规则的项目原型。 支持 count 。 |
selectTriggers | query | 返回带有属于 LLD 规则的触发器原型的 triggers 属性。 支持 count 。 |
selectLLDMacroPaths | query | 返回一个 lld_macro_paths 属性,其中包含 LLD 宏列表和分配给每个相应宏的值的路径。 |
selectPreprocessing | query | 返回带有 LLD 规则预处理选项的 preprocessing 属性。它具有以下属性: type - (string) 预处理选项类型:5 - 正则表达式匹配; 11 - XML XPath; 12 - JSONPath; 15 - 不匹配正则表达式; 16 - 检查 JSON 中的错误; 17 - 检查错误在 XML 中; 20 - 丢弃未更改的心跳; 23 - Prometheus 到 JSON; 24 - CSV 到 JSON; 25 - 替换; 27 - XML 到 JSON。 params - (string) 预处理选项使用的附加参数。多个参数由 LF (\n) 字符分隔。error_handler - (string) 预处理步骤失败时使用的操作类型:0 - Zabbix 服务器设置错误消息;<br >1 - 丢弃值; 2 - 设置自定义值; 3 - 设置自定义错误消息。 error_handler_params - (string) 错误处理程序参数。 |
selectOverrides | query | 返回一个 lld_rule_overrides 属性,其中包含在原型对象上执行的覆盖过滤器、条件和操作的列表。 |
filter | object | 只返回与给定过滤器完全匹配的结果。 接受一个数组,其中键是属性名称,值是单个值或要匹配的值数组。 支持其他过滤器: host - LLD 规则所属主机的技术名称。 |
limitSelects | integer | 限制子选择返回的记录数。 适用于以下子选择: selctItems ;selectGraphs ;selectTriggers 。 |
sortfield | string/array | 按给定属性对结果进行排序。 可用值: itemid 、name 、key_ 、delay 、type 和 status 。 |
countOutput | boolean | 所有 get 方法通用的这些参数在 参考说明 中有详细描述。 |
editable | boolean | |
excludeSearch | boolean | |
limit | integer | |
output | query | |
preservekeys | boolean | |
search | object | |
searchByAny | boolean | |
searchWildcardsEnabled | boolean | |
sortorder | string/array | |
startSearch | boolean |
(integer/array)
返回任一值:
countOutput
参数。返回主机"10202"所有自动发现规则。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": "extend",
"hostids": "10202"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "27425",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Network interface discovery",
"key_": "net.if.discovery",
"delay": "1h",
"state": "0",
"status": "0",
"trapper_hosts": "",
"error": "",
"templateid": "22444",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"interfaceid": "119",
"description": "Discovery of network interfaces as defined in global regular expression \"Network interfaces for discovery\".",
"lifetime": "30d",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"url": "",
"query_fields": [],
"posts": "",
"status_codes": "200",
"follow_redirects": "1",
"post_type": "0",
"http_proxy": "",
"headers": [],
"retrieve_mode": "0",
"request_method": "0",
"ssl_cert_file": "",
"ssl_key_file": "",
"ssl_key_password": "",
"verify_peer": "0",
"verify_host": "0",
"allow_traps": "0",
"parameters": []
},
{
"itemid": "27426",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"delay": "1h",
"state": "0",
"status": "0",
"trapper_hosts": "",
"error": "",
"templateid": "22450",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"interfaceid": "119",
"description": "Discovery of file systems of different types as defined in global regular expression \"File systems for discovery\".",
"lifetime": "30d",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"url": "",
"query_fields": [],
"posts": "",
"status_codes": "200",
"follow_redirects": "1",
"post_type": "0",
"http_proxy": "",
"headers": [],
"retrieve_mode": "0",
"request_method": "0",
"ssl_cert_file": "",
"ssl_key_file": "",
"ssl_key_password": "",
"verify_peer": "0",
"verify_host": "0",
"allow_traps": "0",
"parameters": []
}
],
"id": 1
}
检索 LLD 规则的名称“24681”及其过滤条件。过滤器使用“and”求值类型,因此 formula
属性为空,并自动生成 eval_formula
。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": [
"name"
],
"selectFilter": "extend",
"itemids": ["24681"]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "24681",
"name": "Filtered LLD rule",
"filter": {
"evaltype": "1",
"formula": "",
"conditions": [
{
"macro": "{#MACRO1}",
"value": "@regex1",
"operator": "8",
"formulaid": "A"
},
{
"macro": "{#MACRO2}",
"value": "@regex2",
"operator": "9",
"formulaid": "B"
},
{
"macro": "{#MACRO3}",
"value": "",
"operator": "12",
"formulaid": "C"
},
{
"macro": "{#MACRO4}",
"value": "",
"operator": "13",
"formulaid": "D"
}
],
"eval_formula": "A and B and C and D"
}
}
],
"id": 1
}
通过规则 URL 字段值检索主机的 LLD 规则。仅支持为 LLD 规则定义的 URL 字符串的完全匹配。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"hostids": "10257",
"filter": {
"type": "19",
"url": "http://127.0.0.1/discoverer.php"
}
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "28336",
"type": "19",
"snmp_oid": "",
"hostid": "10257",
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"delay": "5s",
"history": "90d",
"trends": "0",
"status": "0",
"value_type": "4",
"trapper_hosts": "",
"units": "",
"error": "",
"logtimefmt": "",
"templateid": "0",
"valuemapid": "0",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"flags": "1",
"interfaceid": "5",
"description": "",
"inventory_link": "0",
"lifetime": "30d",
"state": "0",
"jmx_endpoint": "",
"master_itemid": "0",
"timeout": "3s",
"url": "http://127.0.0.1/discoverer.php",
"query_fields": [
{
"mode": "json"
},
{
"elements": "2"
}
],
"posts": "",
"status_codes": "200",
"follow_redirects": "1",
"post_type": "0",
"http_proxy": "",
"headers": {
"X-Type": "api",
"Authorization": "Bearer mF_A.B5f-2.1JcM"
},
"retrieve_mode": "0",
"request_method": "1",
"ssl_cert_file": "",
"ssl_key_file": "",
"ssl_key_password": "",
"verify_peer": "0",
"verify_host": "0",
"allow_traps": "0",
"parameters": []
}
],
"id": 39
}
检索具有各种覆盖设置的 LLD 规则。
请求:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"itemids": "30980",
"selectOverrides": ["name", "step", "stop", "filter", "operations"]
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
响应:
{
"jsonrpc": "2.0",
"result": [
{
"name": "Discover database host"
"overrides": [
{
"name": "Discover MySQL host",
"step": "1",
"stop": "1",
"filter": {
"evaltype": "2",
"formula": "",
"conditions": [
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^mysqld\\.service$"
"formulaid": "A"
},
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^mariadb\\.service$"
"formulaid": "B"
}
],
"eval_formula": "A or B"
},
"operations": [
{
"operationobject": "3",
"operator": "2",
"value": "Database host",
"opstatus": {
"status": "0"
},
"optag": [
{
"tag": "Database",
"value": "MySQL"
}
],
"optemplate": [
{
"templateid": "10170"
}
]
}
]
},
{
"name": "Discover PostgreSQL host",
"step": "2",
"stop": "1",
"filter": {
"evaltype": "0",
"formula": "",
"conditions": [
{
"macro": "{#UNIT.NAME}",
"operator": "8",
"value": "^postgresql\\.service$"
"formulaid": "A"
}
],
"eval_formula": "A"
},
"operations": [
{
"operationobject": "3",
"operator": "2",
"value": "Database host",
"opstatus": {
"status": "0"
},
"optag": [
{
"tag": "Database",
"value": "PostgreSQL"
}
],
"optemplate": [
{
"templateid": "10263"
}
]
}
]
}
]
}
],
"id": 39
}
ui/include/classes/api/services/CDiscoveryRule.php 中的 CDiscoveryRule::get()。