itemprototype.create

Beschrijving

object itemprototype.create(object/array itemPrototypes)

Deze methode maakt het mogelijk om nieuwe itemprototypes te maken.

Deze methode is alleen beschikbaar voor gebruikerstypes Admin en Superadmin. Rechten om de methode aan te roepen kunnen worden ingetrokken in de instellingen van gebruikersrollen. Zie Gebruikersrollen voor meer informatie.

Parameters

(object/array) Item prototype om te creëren.

Naast de standaard item prototype eigenschappen, accepteert deze methode de volgende parameters.

Parameter Type Beschrijving
ruleid string ID van de LLD-regel waartoe het item prototype behoort.

Parameter gedrag:
- vereist
preprocessing array Item prototype voorverwerkings opties.
tags array Item prototype tags.

Retourwaarden

(object) Retourneert een object dat de ID's van het gemaakte item bevat prototypes onder de eigenschap itemids. De volgorde van de geretourneerde ID's komt overeen met de volgorde van de doorgegeven item-prototypes.

Voorbeelden

Het creëren van een item prototype

Creëer een item prototype om de vrije schijfruimte op een ontdekt bestandssysteem te bewaken. Ontdekte items moeten numerieke Zabbix-agent items zijn die elke 30 seconden worden bijgewerkt.

Aanvraag:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Vrije schijfruimte op {#FSNAME}",
               "key_": "vfs.fs.size[{#FSNAME},free]",
               "hostid": "10197",
               "ruleid": "27665",
               "type": 0,
               "value_type": 3,
               "interfaceid": "112",
               "delay": "30s"
           },
           "id": 1
       }

Reactie:

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

Het creëren van een item prototype met voorbewerking

Creëer een item met "verandering per seconde" en een aangepaste vermenigvuldiger als tweede stap.

Aanvraag:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Inkomend netwerkverkeer op {#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
       }

Reactie:

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

Het creëren van een afhankelijk item prototype

Creëer een afhankelijk item prototype voor een master item prototype met ID 44211. Alleen afhankelijkheden op hetzelfde host (template/discovery rule) zijn toegestaan, daarom moeten het master- en afhankelijke item hetzelfde hostid en ruleid hebben.

Aanvraag:

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

Reactie:

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

HTTP-agent item prototype maken

Maak een item prototype met een URL met behulp van een gebruikersmacro, queryvelden en aangepaste headers.

Aanvraag:

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

Reactie:

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

Script item prototype maken

Maak een eenvoudige gegevensverzameling met behulp van een script item prototype.

Aanvraag:

{
           "jsonrpc": "2.0",
           "method": "itemprototype.create",
           "params": {
               "name": "Script voorbeeld",
               "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
       }

Reactie:

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

Bron

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