[comment]: # ({f372a49b-bdae00e2})
# 4 Protocol del plug-in agent Zabbix 2

El protocol de l'agent Zabbix 2 es basa sobre el codi, mida i model de dades.

[comment]: # ({/f372a49b-bdae00e2})

[comment]: # ({b65bf947-dc813c37})
### Codi

|Tipus|Mida|Comentaris|
|-----|-----|----------|
|Octet|	4	|Tipus de càrrega útil, actualment només s'admet JSON.|

[comment]: # ({/b65bf947-dc813c37})

[comment]: # ({8edb0275-b578c7c3})
### Mida

|Tipus|Mida|Comentaris|
|-----|-----|----------|
|Byte|	4	|Mida de la càrrega actual, en octets.|

[comment]: # ({/8edb0275-b578c7c3})

[comment]: # ({0351e98f-bed7d280})
### Dades de la carga útil

|Tipus|Mida|Comentaris|
|-----|-----|----------|
|Byte|	Definit per el camp *Size* 	|Dades en format JSON.|

[comment]: # ({/0351e98f-bed7d280})

[comment]: # ({60a41fe8-07d42895})
##### Definició de dades de càrrega útil

###### Dades comunes

Aquest paràmetres són presents a totes les peticions/respostes:

|Nom|Tipus|Comentaris|
|-----|--------|----------|
|id	  |uint32|Per a les peticions - l'identificador incremental emprat per enllaçar les peticions amb les respostes. Únic dins d'una direcció de petició (és a dir, d'agent a connector o de connector a agent).<br>Per a les respostes - ID de la petició corresponent.|
|type|uint32|El tipus de petició.|

[comment]: # ({/60a41fe8-07d42895})

[comment]: # ({3cf942f4-1c1af50c})
###### Petició de registre

Petició enviada per un plug-in per escriure un missatge de registre a l'arxiu registre de l'agent.

|   |   |
|---|---|
|direction|plugin → agent|
|response|no|

Paràmetres específics de les peticions de registre:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|severity|uint32|La gravetat del missatge (nivell de registre).|
|message|string|El missatge a registrar.|

*Exemple:*

    {"id":0,"type":1,"severity":3,"message":"message"}

[comment]: # ({/3cf942f4-1c1af50c})

[comment]: # ({3640b089-9b4addbb})
###### Petició d'enregistrament

Petició enviada per l'agent durant la fase d'inici de l'agent per obtindre les mètriques proveïdes per enregistrar un plugin.

|   |   |
|---|---|
|direction|agent → plugin|
|response|yes|

Paràmetres específics de les peticions d'enregistrament:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|version|string|La versió del protocol <major>.<minor>|

*Exemple:*

    {"id":1,"type":2,"version":"1.0"}

[comment]: # ({/3640b089-9b4addbb})

[comment]: # ({92946a86-802a684d})
###### Resposta d'enregistrament

resposta del plug-in a la petició d'enregistrament.

|   |   |
|---|---|
|direction|plugin → agent|
|réponse|n/a|

Paràmetres específics de les respostes d'enregistraments:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|name|string|El nom del plug-in.|
|metrics|array of strings (optional)|Les mètriques amb les descripcions com s'empren al plug-in. Retorna RegisterMetrics(). Absent si es retorna un error.|
|interfaces|uint32 (optional)|La màscara binària de les interfícies admeses per el plug-in. Absent si es retorna un error.|
|error|string (optional)|Retorna un missatge d'error si no es pot engegar un plug-in. Absent si les mètriques són retornades.|

*Exemples:*

    {"id":2,"type":3,"metrics":["external.test", "Test de l'exportateur externe."], "interfaces": 4}

ou

    {"id":2,"type":3,"error":"message d'erreur"}

[comment]: # ({/92946a86-802a684d})

[comment]: # ({f190dd1a-c0bcf831})
###### Petició d'engegada

Una petició d'execució de la funció Start de la interfície Runner.

|   |   |
|---|---|
|direction|agent → plugin|
|réponse|non|

La petició no té cap paràmetre específic, tret dels [de dades comunes](#common-data).

*Exemple:*

    {"id":3,"type":4}

[comment]: # ({/f190dd1a-c0bcf831})

[comment]: # ({fce4bba2-9c1b2bdc})
###### Petició d'aturada

Una petició enviada per l'agent per aturar un plug-in.

|   |   |
|---|---|
|direction|agent → plugin|
|response|no|

La petició no té pas cap paràmetre específic, tret dels [de dades comunes](#common-data).

*Exemple:*

    {"id":3,"type":5}

[comment]: # ({/fce4bba2-9c1b2bdc})

[comment]: # ({43e9416d-c7292eea})
###### Petició d'exportació

Una petició d'execució de la funció Export de l'interfície Exporter.

|   |   |
|---|---|
|direction|agent → plugin|
|response|no|

Paràmetres específics de les peticions d'exportació:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|key|string|La clau del plug-in.|
|parameters|array of strings (opcional)|Els paràmetres de la funció Export.|

*Exemple:*

    {"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}

[comment]: # ({/43e9416d-c7292eea})

[comment]: # ({33f976c2-4780d401})
###### Resposta de l'exportació

Resposta de la funció Export de la interfície Exporter.

|   |   |
|---|---|
|direction|plugin → agent|
|response|n/a|

Paràmetres específics de les respostes d'exportació:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|value|string (opcional) |Valor de la resposta de la funció Export. Absent si hi ha un error de retorn.|
|error|string (opcional) |Missatge d'error si la funció Export no s'ha executat correctament. Absent, si hi ha un error retornat.|

*Exemples:*

    {"id":5,"type":7,"value":"response"}

or

    {"id":5,"type":7,"error":"error message"}

[comment]: # ({/33f976c2-4780d401})

[comment]: # ({96eb71cf-a0e73519})
###### Petició de configuració

Una petició per executar la funció *Configure* de la interfície *Configurator*.

|   |   |
|---|---|
|direction|agent → plugin|
|response|n/a|

Paràmetres específics de les peticions *Configure*:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|global_options|JSON object|Objecte JSON que conté les opcions de configuració globals de l'agent.|
|private_options|JSON object (optional)|Objecte JSON que conté les opcions de configuració del plug-in privat, si es proporciona.|

*Exemple:*

    {"id":6,"type":8,"global_options":{...},"private_options":{...}}

[comment]: # ({/96eb71cf-a0e73519})

[comment]: # ({99291487-38bbe293})
###### Petició de validació

Una petició per executar la funció *Validate* de la interfície *Configurator*.

|   |   |
|---|---|
|direction|agent → plugin|
|response|yes|

Paràmetres específics de les peticions *Validate*:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|private_options|JSON object (opcional)|Objecte JSON que conté les opcions de configuració del plug-in privat, si es proporciona.|

*Exemple:*

    {"id":7,"type":9,"private_options":{...}}

[comment]: # ({/99291487-38bbe293})

[comment]: # ({3b19fa95-7c4cceea})
###### Resposta de validació

Resposta de la funció *Validate* de la interfície *Configurator*.

|   |   |
|---|---|
|direction|plugin → agent|
|response|n/a|

Paràmetres específics de les respostes *Validate*:

|Nom|Tipus|Comentaris|
|---------|--------|----------|
|error|string (opcional)|Es retorna un missatge d'error si la funció Validate no s'executa correctament. Absent si s'ha executat correctament.|

*Exemple:*

    {"id":8,"type":10}

or

    {"id":8,"type":10,"error":"missatge d'error"}

[comment]: # ({/3b19fa95-7c4cceea})
