itemprototype.create

Описание

object itemprototype.create(объект/массив itemPrototypes)

Этот метод позволяет создавать новые прототипы элементов данных.

Этот метод доступен только пользователям с типом доступа Администратор и Супер-администратор. Разрешения на вызов метода можно отозвать в настройках ролей пользователя. Дополнительную информацию см. в разделе Роли пользователей.

Параметры

(object/array) Прототип элемента данных для создания.

Помимо стандартных свойств прототипа элемента данных, метод принимает следующие параметры.

Parameter Type Description
ruleid ID ID правила LLD, которому принадлежит элемент данных.

Поведение параметра:
- required
preprocessing array Параметры предобработки прототипа элемента данных.
tags array Теги прототипа элемента данных.

Возвращаемые значения

(объект) Возвращает объект, который содержит ID созданных прототипов элементов данных, указанных в свойстве itemids. Порядок возвращаемых ID совпадает с порядком переданных прототипов элементов данных.

Примеры

Создание прототипа элемента данных

Создайте прототип элемента данных для мониторинга свободного места на диске в обнаруженной файловой системе. Обнаруженные элементы должны быть числовыми элементами данных агента Zabbix, обновляемыми каждые 30 секунд.

Запрос:

{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "name": "Свободное место на диске на {#FSNAME}",
        "key_": "vfs.fs.size[{#FSNAME},free]",
        "hostid": "10197",
        "ruleid": "27665",
        "type": 0,
        "value_type": 3,
        "interfaceid": "112",
        "delay": "30s"
    },
    "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"
            }
        ]
    },
    "id": 1
}

Ответ:

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

Создание прототипа зависимого элемента данных

Создайте прототип зависимого элемента данных для прототипа мастер-элемента с ID 44211. Разрешены только зависимости на одном и том же узле сети (шаблон/правило обнаружения), поэтому мастер-элемент и зависимый элемент данных должны иметь одинаковые 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
    },
    "id": 1
}

Ответ:

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

Создание прототипа элемента данных HTTP-агента

Создайте прототип элемента данных с URL, используя пользовательский макрос, поля запроса и пользовательские заголовки.

Запрос:

{
    "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": [
            {
                "name": "min",
                "value": "10"
            },
            {
                "name": "max",
                "value" "100"
            }
        ],
        "headers": [
            {
                "name": "X-Source",
                "value": "api"
            }
        ],
        "delay": "35"
    },
    "id": 1
}

Ответ:

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

Создание прототипа элемента данных типа script

Создайте простую сборку данных с помощью прототипа элемента данных типа script.

Запрос:

{
    "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 HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
        "parameters": [
            {
                "name": "host",
                "value": "{HOST.CONN}"
            }
        ],
        "timeout": "6s",
        "delay": "30s"
    },
    "id": 1
}

Ответ:

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

Источник

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