itemprototype.create

Descrizione

object itemprototype.create(object/array itemPrototypes)

Questo metodo consente di creare nuovi prototipi di item.

Questo metodo è disponibile solo per i tipi di utente Admin e Super admin. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni del ruolo utente. Per ulteriori informazioni, vedere Ruoli utente.

Parametri

(object/array) Prototipo di item da creare.

Oltre alle proprietà standard del prototipo di item, il metodo accetta i seguenti parametri.

Parametro Tipo Descrizione
ruleid ID ID della regola LLD a cui appartiene l'item.

Comportamento del parametro:
- obbligatorio
preprocessing array Opzioni di preprocessing del prototipo di item.
tags array Tag del prototipo di item.

Valori restituiti

(object) Restituisce un oggetto contenente gli ID degli item prototype creati nella proprietà itemids. L'ordine degli ID restituiti corrisponde all'ordine degli item prototype passati.

Esempi

Creazione di un prototipo di item

Creare un prototipo di item per monitorare lo spazio libero su disco in un file system individuato. Gli item individuati devono essere item numerici di Zabbix agent aggiornati ogni 30 secondi.

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"
    },
    "id": 1
}

Risposta:

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

Creazione di un prototipo di item con preprocessing

Creare un item utilizzando la variazione al secondo e un moltiplicatore personalizzato come secondo passaggio.

Richiesta:

{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "name": "Traffico di rete in ingresso su {#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
}

Risposta:

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

Creazione di un prototipo di item dipendente

Creare un prototipo di item dipendente per il prototipo di item master con ID 44211. Sono consentite solo dipendenze sullo stesso host (template/regola di discovery), pertanto il prototipo di item master e quello dipendente devono avere lo stesso hostid e ruleid.

Richiesta:

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

Risposta:

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

Creare un prototipo di item HTTP agent

Creare un prototipo di item con URL che utilizza una macro utente, campi di query e intestazioni personalizzate.

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

Risposta:

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

Creare un prototipo di item script

Creare una semplice raccolta dati utilizzando un prototipo di item script.

Richiesta:

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

Risposta:

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

Fonte

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