itemprototype.create
Opis
object itemprototype.create(object/array itemPrototypes)
Ta metoda umożliwia tworzenie nowych prototypów pozycji.
Ta metoda jest dostępna tylko dla typów użytkowników Admin i Super admin. Uprawnienia do wywoływania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji można znaleźć w sekcji Role użytkowników.
Parametry
(object/array) Prototyp pozycji do utworzenia.
Oprócz standardowych właściwości prototypu pozycji, metoda akceptuje następujące parametry.
| Parametr | Typ | Opis |
|---|---|---|
| ruleid | ID | ID reguły LLD, do której należy pozycja. Zachowanie parametru: - wymagany |
| preprocessing | array | Opcje przetwarzania wstępnego prototypu pozycji. |
| tags | array | Tagi prototypu pozycji. |
Zwracane wartości
(object) Zwraca obiekt zawierający identyfikatory utworzonych prototypów pozycji
we właściwości itemids. Kolejność zwróconych identyfikatorów
odpowiada kolejności przekazanych prototypów pozycji.
Przykłady
Tworzenie prototypu pozycji
Utwórz prototyp pozycji, aby monitorować wolne miejsce na dysku w wykrytym systemie plików. Wykryte pozycje powinny być numerycznymi pozycjami agenta Zabbix, aktualizowanymi co 30 sekund.
{
"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
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"27666"
]
},
"id": 1
}
Tworzenie prototypu pozycji z przetwarzaniem wstępnym
Utwórz pozycję, używając zmiany na sekundę oraz niestandardowego mnożnika jako drugiego kroku.
{
"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
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44211"
]
},
"id": 1
}
Tworzenie prototypu zależnej pozycji
Utwórz prototyp zależnej pozycji dla prototypu pozycji nadrzędnej o ID 44211. Dozwolone są tylko zależności w obrębie tego samego hosta (szablonu/reguły wykrywania), dlatego pozycja nadrzędna i zależna pozycja powinny mieć takie samo hostid i 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
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"44212"
]
},
"id": 1
}
Utwórz prototyp pozycji HTTP agent
Utwórz prototyp pozycji z adresem URL używającym makra użytkownika, pól zapytania i niestandardowych nagłówków.
{
"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
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"28305"
]
},
"id": 1
}
Utwórz prototyp pozycji skryptowej
Utwórz proste zbieranie danych przy użyciu prototypu pozycji skryptowej.
{
"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
}
Odpowiedź:
{
"jsonrpc": "2.0",
"result": {
"itemids": [
"23865"
]
},
"id": 1
}
Źródło
CItemPrototype::create() w ui/include/classes/api/services/CItemPrototype.php.