item.create

Descripción

object item.create(object/array items)

Este método permite crear nuevas métricas.

Las métricas web no se pueden crear a través de la API de Zabbix.

Este método solo está disponible para los tipos de usuario Administrador y Superadministrador. Los permisos para llamar al método se pueden revocar en la configuración del rol de usuario. Ver Roles de usuario para más información.

Parámetros

(objeto/matriz) Métricas a crear.

Además de las [propiedades estándar de la métrica] (object#host), el método acepta los siguientes parámetros.

Parámetro Tipo Descripción
preprocessing matriz Opciones de preprocesamiento de la métrica.
tags matriz Etiquetas de la métrica.

Valores de retorno

(object) Devuelve un objeto que contiene los IDs de las métricas creadas bajo la propiedad "itemids". El orden de los IDs devueltos coincide con el orden de las métricas pasadas.

Ejemplos

Creando una métrica

Cree una métrica numérica de agente de Zabbix con 2 etiquetas de métrica para monitorear el espacio libre en disco en el host con ID "30074".

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
               "name": "Free disk space on /home/joe/",
               "key_": "vfs.fs.size[/home/joe/,free]",
               "hostid": "30074",
               "type": 0,
               "value_type": 3,
               "interfaceid": "30084",
               "tags": [
                   {
                       "tag": "Disk usage"
                   },
                   {
                       "tag": "Equipment",
                       "value": "Workstation"
                   }
               ],
               "delay": "30s"
           },
           "id": 1
       }

Respuesta:

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

Creando un métrica de inventario de equipo

Cree una métrica de agente Zabbix para completar el campo de inventario "SO" del equipo.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
               "name": "uname",
               "key_": "system.uname",
               "hostid": "30021",
               "type": 0,
               "interfaceid": "30007",
               "value_type": 1,
               "delay": "10s",
               "inventory_link": 5
           },
           "id": 1
       }

Respuesta:

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

Creando una métrica con preprocesamiento

Crea una métrica usando un multiplicador personalizado.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
               "name": "Device uptime",
               "key_": "sysUpTime",
               "hostid": "11312",
               "type": 4,
               "snmp_oid": "SNMPv2-MIB::sysUpTime.0",
               "value_type": 1,
               "delay": "60s",
               "units": "uptime",
               "interfaceid": "1156",
               "preprocessing": [
                   {
                       "type": 1,
                       "params": "0.01",
                       "error_handler": 1,
                       "error_handler_params": ""
                   }
               ]
           },
           "id": 1
       }

Respuesta:

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

Creando elemento dependiente

Cree una métrica dependiente para la métrica principal con ID 24759. Sólo se permiten dependencias en el mismo equipo, por lo tanto, la métrica principal y la dependiente deben tener el mismo ID de host.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
             "hostid": "30074",
             "name": "Dependent test item",
             "key_": "dependent.item",
             "type": 18,
             "master_itemid": "24759",
             "value_type": 2
           },
           "id": 1
       }

Respuesta:

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

Crear una métrica de agente HTTP

Cree una métrica de método de solicitud POST con preprocesamiento de respuesta JSON.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
               "url":"http://127.0.0.1/http.php",
               "query_fields": [
                   {
                       "mode":"json"
                   },
                   {
                       "min": "10"
                   },
                   {
                       "max": "100"
                   }
               ],
               "interfaceid": "1",
               "type": 19,
               "hostid": "10254",
               "delay": "5s",
               "key_": "json",
               "name": "HTTP agent example JSON",
               "value_type": 0,
               "output_format": 1,
               "preprocessing": [
                   {
                       "type": 12,
                       "params": "$.random",
                       "error_handler": 0,
                       "error_handler_params": ""
                   }
               ]
           },
           "id": 1
       }

Respuesta:

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

Crear una métrica de script

Cree una colección de datos simple utilizando una métrica de script.

Solicitud:

{
           "jsonrpc": "2.0",
           "method": "item.create",
           "params": {
               "name": "Script example",
               "key_": "custom.script.item",
               "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
       }

Respuesta:

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

Fuente

CItem::create() en ui/include/classes/api/services/CItem.php.