创建

说明

object itemprototype.create(object/array itemPrototypes)

此方法用于创建新的监控项原型。

参数

(object/array) 需要创建的监控项原型。

标准项原型属性外,该方法还接受以下参数。

属性 类 描述
ruleid
(必须)
string 该项所属的LLD规则的ID。
applications array 要分配给自动发现监控项的应用程序的ID。
applicationPrototypes array 要分配给监控项原型的应用程序原型的名称。
preprocessing array 预处理选项

返回值

(object) 返回一个对象,该对象ID包含在“itemid”属性中。 返回的ID的顺序与传递的item prototypes的顺序相对应。 (object) 返回一个对象,该对象包含在" itemids "属性下创建的监控项原型的id。返回的id的顺序与传递的监控项原型的顺序相匹配。

示例

创建一个监控项原型

创建一个监控项原型去监控自动发现的文件系统上的磁盘空间。发现监控项 应该每30秒更新数字化的Zabbix agent监控项。

请求:

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

响应:

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

创建一个预处理的监控项原型

创建一个使用每秒变化并带有自定义乘法器作为第二部的监控项。

请求:

{
    "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
}

响应:

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

创建依赖监控项原型

创建依赖监控项原型

为ID为44211的主监控项原型创建一个依赖监控项原型。只有在同一个主机的(模板/LLD发现规则)依赖才可以被接受,因此主 监控项原型 和依赖 监控项原型 应该拥有相同的hostid和ruleid。

请求:

{
    "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
}

响应:

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

创建 HTTP agent 监控项原型

创建带有URL使用用户宏,查询字段和自定义选项的item prototype。

请求:

{
    "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
}

响应:

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

来源

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