itemprototype.create
Description
object itemprototype.create(object/array itemPrototypes)
Cette méthode permet de créer de nouveaux prototypes d’éléments.
Cette méthode est disponible uniquement pour les types d’utilisateur Admin et Super admin. Les autorisations d’appel de la méthode peuvent être révoquées dans les paramètres des rôles utilisateur. Voir User roles pour plus d’informations.
Paramètres
(object/array) Prototype d’élément à créer.
En plus des propriétés standard du prototype d’élément, la méthode accepte les paramètres suivants.
| Paramètre | Type | Description |
|---|---|---|
| ruleid | ID | ID de la règle LLD à laquelle l’élément appartient. Comportement du paramètre : - obligatoire |
| 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.
{
"jsonrpc": "2.0",
"method": "itemprototype.create",
"params": {
"name": "Espace disque libre sur {#FSNAME}",
"key_": "vfs.fs.size[{#FSNAME},free]",
"hostid": "10197",
"ruleid": "27665",
"type": 0,
"value_type": 3,
"interfaceid": "112",
"delay": "30s"
},
"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 la variation par seconde et un multiplicateur personnalisé comme deuxième étape.
Requête :
{
"jsonrpc": "2.0",
"method": "itemprototype.create",
"params": {
"name": "Trafic réseau entrant sur {#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
}
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 maître 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 maître et l’élément dépendant doivent avoir le même hostid et le même 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
}
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 utilisant une macro utilisateur, des champs de requête et des en-têtes personnalisés.
{
"jsonrpc": "2.0",
"method": "itemprototype.create",
"params": {
"type": "19",
"hostid": "10254",
"ruleid": "28256",
"interfaceid": "2",
"name": "exemple de prototype d’élément API",
"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
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28305"
]
},
"id": 1
}
Créer un prototype d’élément de script
Créez une collecte 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 HttpRequest();\nreturn request.post(\"https://postman-echo.com/post\", JSON.parse(value));",
"parameters": [
{
"name": "host",
"value": "{HOST.CONN}"
}
],
"timeout": "6s",
"delay": "30s"
},
"id": 1
}
Réponse :
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Source
CItemPrototype::create() dans ui/include/classes/api/services/CItemPrototype.php.