itemprototype.create

Описание

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

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

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

Параметры

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

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

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

Поведение параметра:
- обязательный
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
}

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

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

Запрос:

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