Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

discoveryrule.get

説明

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ルールを取得する

ルール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
       }

オーバーライドを使用してLLDルールを取得する

さまざまなオーバーライド設定を持つ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.