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 | LLDルールで使用されるフィルターのデータを含むフィルタープロパティを返します。 |
selectGraphs | query | LLDルールに属するグラフプロトタイプを含むグラフプロパティを返します。count をサポートします。 |
selectHostPrototypes | query | LLDルールに属するホストプロトタイプを含むホストプロトタイププロパティを返します。count をサポートします。 |
selectHosts | query | LLDルールが属するホストの配列を含むhostsプロパティを返します。 |
selectItems | query | LLDルールに属するアイテムプロトタイプを含むitemsプロパティを返します。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 - プロメテウスからJSON 24 - CSVからJSON 25 - 置換 27 - XMLからJSON params -(string) 事前処理オプションで使用される追加のパラメーター。 複数のパラメータはLF(\n)文字で区切られます。error_handler -(string) 事前処理ステップが失敗した場合に使用されるアクションタイプ:0 - エラーメッセージをZabbixサーバーによって設定 1 - 値を破棄 2 - カスタム値を設定 3 - カスタムエラーメッセージを設定 error_handler_params -(string) エラーハンドラパラメータ |
selectOverrides | lld_rule_overridesプロパティを、プロトタイプオブジェクトで実行されるオーバーライドフィルター、条件、および操作のリストとともに返します | |
filter | object | 指定されたフィルターに完全に一致する結果のみを返します。 キーがプロパティ名であり、値が単一の値または一致する値の配列である配列を受け入れます。 <br >追加のフィルターをサポートします: 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
パラメータが使用されている場合、取得されたオブジェクトの数特定ホストIDの全ディスカバリルールを取得します
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": "extend",
"hostids": "10202"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Response:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "27425",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Network interface discovery",
"key_": "net.if.discovery",
"delay": "1h",
"status": "0",
"trapper_hosts": "",
"templateid": "22444",
"valuemapid": "0",
"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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
},
{
"itemid": "27426",
"type": "0",
"snmp_oid": "",
"hostid": "10202",
"name": "Mounted filesystem discovery",
"key_": "vfs.fs.discovery",
"delay": "1h",
"status": "0",
"trapper_hosts": "",
"templateid": "22450",
"valuemapid": "0",
"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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
}
],
"id": 1
}
LLDルール"24681"の名前とそのフィルター条件を取得します。 フィルタは"and"評価タイプを使用するため、 formula
プロパティは空であり、eval_formula
が自動的に生成されます。
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"selectFilter": "extend",
"itemids": ["24681"]
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"id": 1
}
Response:
{
"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文字列の完全一致のみがサポートされます。
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"hostids": "10257",
"filter": {
"type": 19,
"url": "http://127.0.0.1/discoverer.php"
}
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Response:
{
"jsonrpc": "2.0",
"result": [
{
"itemid": "28336",
"type": "19",
"snmp_oid": "",
"hostid": "10257",
"name": "API HTTP agent",
"key_": "api_discovery_rule",
"delay": "5s",
"status": "0",
"trapper_hosts": "",
"templateid": "0",
"valuemapid": "0",
"params": "",
"ipmi_sensor": "",
"authtype": "0",
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"interfaceid": "5",
"description": "",
"lifetime": "30d",
"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",
"uuid": "",
"state": "0",
"error": "",
"parameters": []
}
],
"id": 39
}
さまざまなオーバーライド設定を持つ1つのLLDルールを取得します
Request:
{
"jsonrpc": "2.0",
"method": "discoveryrule.get",
"params": {
"output": ["name"],
"itemids": "30980",
"selectOverrides": ["name", "step", "stop", "filter", "operations"]
},
"id": 39,
"auth": "d678e0b85688ce578ff061bd29a20d3b"
}
Response:
{
"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
}
CDiscoveryRule::get() in ui/include/classes/api/services/CDiscoveryRule.php.