Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

itemprototype.create

Description

object itemprototype.create(object/array itemPrototypes)

Cette méthode permet de créer de nouveaux prototypes éléments.

Cette méthode est disponible uniquement pour les types d'utilisateurs Admin et Super admin. Les autorisations d'appeler la méthode peuvent être révoquées dans les paramètres de rôles utilisateur. Voir Rôles Utilisateur pour plus d'informations.

Paramètres

(object/array) Prototype d'élément à créer.

En plus des propriétés de prototype d'élément standard, la méthode accepte les paramètres suivants.

Paramètre Type Description
ruleid
(obligatoire)
string ID de la règle LLD à laquelle appartient l'élément.
preprocessing array Options de prétraitement du prototype d'élément.
tags array Tags du prototype d'élément.

Valeurs retournées

(object) Renvoie un objet contenant les IDs des prototypes d'éléments créés sous la propriété itemids. L'ordre des ID renvoyés correspond à l'ordre des prototypes d'éléments transmis.

Exemples

Création d'un prototype d'élément

Créez un prototype d'élément pour surveiller l'espace disque libre sur un système de fichiers découvert. Les éléments découverts doivent être des éléments numériques de l'agent Zabbix mis à jour toutes les 30 secondes.

Requête :

{
           "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"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }

Réponse :

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

Création d'un prototype d'élément avec prétraitement

Créez un élément en utilisant le changement par seconde et un multiplicateur personnalisé comme deuxième étape.

Requête :

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

Réponse :

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

Création d'un prototype d'élément dépendant

Créez un prototype d'élément dépendant pour le prototype d'élément principal avec l'ID 44211. Seules les dépendances sur le même hôte (modèle/règle de découverte) sont autorisées. Par conséquent, l'élément principal et l'élément dépendant doivent avoir les mêmes ID d'hôte et ID de règle.

Requête :

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

Réponse :

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

Créer un prototype d'élément d'agent HTTP

Créez un prototype d'élément avec une URL à l'aide d'une macro utilisateur, de champs de requête et d'en-têtes personnalisés.

Requête :

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

Réponse :

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

Créer un prototype d'élément de script

Créez une collection de données simple à l'aide d'un prototype d'élément de script.

Requête :

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

Réponse :

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

Source

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