Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

itemprototype.create

説明

object itemprototype.create(object/array itemPrototypes)

このメソッドを使用すると、新しいアイテムのプロトタイプを作成できます。

このメソッドはAdminおよびSuper adminユーザータイプでのみ使用できます。 メソッドを呼び出す権限は、ユーザーロール設定で取り消すことができます。 詳細についてはユーザーの役割を参照してください。

パラメータ

(object/array) 作成するアイテムプロトタイプ。

このメソッドは標準アイテム プロトタイプ プロパティ に加えて、次のパラメーターを受け入れます

パラメータ タイプ 説明
ruleid
(必須)
string アイテムが属する LLD ルールの ID
preprocessing array アイテム プロトタイプ 事前処理 オプション
tags array アイテムプロトタイプタグ.

戻り値

(object) itemids プロパティの下で作成されたアイテム プロトタイプの ID を含むオブジェクトを返します。 返される ID の順序は、渡されたアイテム プロトタイプの順序と一致します。

アイテムプロトタイプの作成

アイテムのプロトタイプを作成して、検出されたファイル システムのディスクの空き容量を監視します。 検出されたアイテムは、数値の Zabbix エージェント アイテムである必要があり、30 秒ごとに更新されます。

Request:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Free disk space on {#FSNAME}",
               "key_": "vfs.fs.size[{#FSNAME},free]",
               "hostid": "10197",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "interfaceid": "112",
               "delay": "30s"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "27666"
               ]
           },
           "id": 1
       }

事前処理でアイテムプロトタイプを作成する

2 番目のステップとして、1 秒あたりの変化とカスタム倍率を使用してアイテムを作成します。

Request:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Incoming network traffic on {#IFNAME}",
               "key_": "net.if.in[{#IFNAME}]",
               "hostid": "10001",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "delay": "60s",
               "units": "bps",
               "interfaceid": "1155",
               "preprocessing": [
                   {
                       "type": 10,
                       "params": "",
                       "error_handler": 0,
                       "error_handler_params": ""
                   },
                   {
                       "type": 1,
                       "params": "8",
                       "error_handler": 2,
                       "error_handler_params": "10"
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "44211"
               ]
           },
           "id": 1
       }

依存アイテムのプロトタイプ作成

ID 44211 のマスター アイテム プロトタイプの依存アイテム プロトタイプを作成します。同じホスト (テンプレート/ディスカバリルール) への依存のみが許可されるため、マスター アイテムと依存アイテムは同じホスト ID とルール ID を持つ必要があります。

Request:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
             "hostid": "10001",
             "ruleid": "27665",
             "name": "Dependent test item prototype",
             "key_": "dependent.prototype",
             "type": 18,
             "master_itemid": "44211",
             "value_type": 3
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "44212"
               ]
           },
           "id": 1
       }

HTTP エージェント アイテムのプロトタイプを作成する

ユーザーマクロ、クエリフィールド、およびカスタムヘッダーを使用してURLでアイテムプロトタイプを作成します

Request:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "type": "19",
               "hostid": "10254",
               "ruleid": "28256",
               "interfaceid": "2",
               "name": "api item prototype example",
               "key_": "api_http_item",
               "value_type": 3,
               "url": "{$URL_PROTOTYPE}",
               "query_fields": [
                   {
                       "min": "10"
                   },
                   {
                       "max": "100"
                   }
               ],
               "headers": {
                   "X-Source": "api"
               },
               "delay": "35"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "28305"
               ]
           },
           "id": 1
       }

スクリプト アイテムのプロトタイプを作成する

スクリプト アイテムのプロトタイプを使用して、単純なデータ コレクションを作成します。

Request:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Script example",
               "key_": "custom.script.itemprototype",
               "hostid": "12345",
               "type": 21,
               "value_type": 4,
               "params": "var request = new CurlHttpRequest();\nreturn request.Post(\"https://postman-echo.com/post\", JSON.parse(value));",
               "parameters": [
                   {
                       "name": "host",
                       "value": "{HOST.CONN}"
                   }
               ],
               "timeout": "6s",
               "delay": "30s"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 2
       }

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "itemids": [
                   "23865"
               ]
           },
           "id": 3
       }

ソース

CItemPrototype::create() in ui/include/classes/api/services/CItemPrototype.php.