datenpunktprototyp.create

Beschreibung

object itemprototype.create(object/array itemPrototypes)

Diese Methode ermöglicht das Erstellen neuer Datenpunkt-Prototypen.

Diese Methode ist nur für die Benutzertypen Admin und Super admin verfügbar. Die Berechtigungen zum Aufrufen der Methode können in den Einstellungen der Benutzerrolle entzogen werden. Weitere Informationen finden Sie unter Benutzerrollen.

Parameter

(object/array) Zu erstellender Datenpunkt-Prototyp.

Zusätzlich zu den Standard-Eigenschaften von Datenpunkt-Prototypen akzeptiert die Methode die folgenden Parameter.

Parameter Type Beschreibung
ruleid ID ID der LLD-Regel, zu der der Datenpunkt gehört.

Parameterverhalten:
- erforderlich
preprocessing array Optionen für die Vorverarbeitung von Datenpunkt-Prototypen.
tags array Tags von Datenpunkt-Prototypen.

Rückgabewerte

(object) Gibt ein Objekt zurück, das die IDs der erstellten Item-Prototypen unter der Eigenschaft itemids enthält. Die Reihenfolge der zurückgegebenen IDs entspricht der Reihenfolge der übergebenen Item-Prototypen.

Beispiele

Erstellen eines Datenpunktprototyps

Erstellen Sie einen Datenpunktprototyp, um den freien Festplattenspeicher auf einem erkannten Dateisystem zu überwachen. Erkannte Datenpunkte sollten numerische Zabbix-Agent-Datenpunkte sein, die alle 30 Sekunden aktualisiert werden.

Anfrage:

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

Antwort:

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

Erstellen eines Datenpunktprototyps mit Vorverarbeitung

Erstellen Sie einen Datenpunkt, der als zweiten Schritt „Änderung pro Sekunde“ und einen benutzerdefinierten Multiplikator verwendet.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
        "name": "Eingehender Netzwerkverkehr auf {#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
}

Antwort:

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

Erstellen eines abhängigen Datenpunktprototyps

Erstellen Sie einen abhängigen Datenpunktprototyp für den Master-Datenpunktprototyp mit der ID 44211. Es sind nur Abhängigkeiten auf demselben Host (Vorlage/Discovery-Regel) zulässig, daher sollten Master- und abhängiger Datenpunkt dieselbe hostid und ruleid haben.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "itemprototype.create",
    "params": {
      "hostid": "10001",
      "ruleid": "27665",
      "name": "Abhängiger Test-Datenpunktprototyp",
      "key_": "dependent.prototype",
      "type": 18,
      "master_itemid": "44211",
      "value_type": 3
    },
    "id": 1
}

Antwort:

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

HTTP-Agent-Datenpunktprototyp erstellen

Erstellen Sie einen Datenpunktprototyp mit URL unter Verwendung eines Benutzermakros, Abfragefeldern und benutzerdefinierten Headern.

Anfrage:

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

Antwort:

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

Skript-Datenpunktprototyp erstellen

Erstellen Sie eine einfache Datenerfassung mit einem Skript-Datenpunktprototyp.

Anfrage:

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

Antwort:

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

Quelle

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