[comment]: # ({f372a49b-bdae00e2})
# 4 Zabbix agent 2 plugin protocol

Zabbix agent 2 protocol is based on code, size and data model.

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

[comment]: # ({b65bf947-a102065d})
### Codice

|Tipo|Dimensione|Commenti|
|-----|-----|----------|
|Byte|	4	|Tipo di payload, attualmente è supportato solo JSON.|

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

[comment]: # ({8edb0275-6f328f94})
### Dimensione

|Tipo|Dimensione|Commenti|
|-----|-----|----------|
|Byte|	4	|Dimensione del payload corrente in byte.|

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

[comment]: # ({0351e98f-e3974519})
### Dati del payload

|Tipo|Dimensione|Commenti|
|-----|-----|----------|
|Byte|Definita dal campo *Dimensione*|Dati in formato JSON.|

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

[comment]: # ({60a41fe8-265b88ca})
##### Definizione dei dati del payload

###### Dati comuni

Questi parametri sono presenti in tutte le richieste/risposte:

|Name|Type|Comments|
|-----|--------|----------|
|id	  |uint32|Per le richieste - l'identificatore incrementale utilizzato per collegare le richieste con le risposte. Unico all'interno di una direzione della richiesta (cioè da agent a plugin o da plugin ad agent).<br>Per le risposte - ID della richiesta corrispondente.|
|type|uint32|Il tipo di richiesta.|

[comment]: # ({/60a41fe8-265b88ca})

[comment]: # ({3cf942f4-6bdfbea5})
###### Richiesta di log

Una richiesta inviata da un plugin per scrivere un messaggio di log nel file di log dell'agent.

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

Parametri specifici delle richieste di log:

|Name|Type|Comments|
|---------|--------|----------|
|severity|uint32|La gravità del messaggio (livello di log).|
|message|string|Il messaggio da registrare.|

*Esempio:*

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

[comment]: # ({/3cf942f4-6bdfbea5})

[comment]: # ({3640b089-38f1c088})
###### Richiesta di registrazione

Una richiesta inviata dall'agent durante la fase di avvio dell'agent per ottenere le metriche fornite e registrare un plugin.

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

Parametri specifici delle richieste di registrazione:

|Name|Type|Comments|
|---------|--------|----------|
|version|string|La versione del protocollo <major>.<minor>|

*Esempio:*

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

[comment]: # ({/3640b089-38f1c088})

[comment]: # ({92946a86-d8c62312})
###### Risposta di registrazione

Risposta del plugin alla richiesta di registrazione.

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

Parametri specifici delle risposte di registrazione:

|Name|Type|Comments|
|---------|--------|----------|
|name|string|Il nome del plugin.|
|metrics|array of strings (optional)|Le metriche con descrizioni come utilizzate nel plugin. Restituisce RegisterMetrics(). Assente se viene restituito un errore.|
|interfaces|uint32 (optional)|La maschera di bit delle interfacce supportate dal plugin. Assente se viene restituito un errore.|
|error|string (optional)|Un messaggio di errore restituito se un plugin non può essere avviato. Assente se vengono restituite le metriche.|

*Esempi:*

    {"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}

oppure

    {"id":2,"type":3,"error":"error message"}

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

[comment]: # ({f190dd1a-0b67f229})
###### Richiesta di avvio

Una richiesta per eseguire la funzione Start dell'interfaccia Runner.

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

La richiesta non ha parametri specifici, contiene solo i parametri dei [dati comuni](#common-data).

*Esempio:*

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

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

[comment]: # ({fce4bba2-f3c8d489})
###### Termina richiesta

Una richiesta inviata dall'agent per arrestare un plugin.

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

La richiesta non ha parametri specifici, contiene solo i parametri dei [dati comuni](#common-data).

*Esempio:*

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

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

[comment]: # ({43e9416d-b2754963})
###### Richiesta di esportazione

Una richiesta per eseguire la funzione Export dell'interfaccia Exporter.

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

Parametri specifici per le richieste di esportazione:

|Name|Type|Comments|
|---------|--------|----------|
|key|string|La chiave del plugin.|
|parameters|array of strings (optional)|I parametri per la funzione Export.|

*Esempio:*

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

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

[comment]: # ({33f976c2-27e2bd0c})
###### Risposta di esportazione

Risposta dalla funzione Export dell'interfaccia Exporter.

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

Parametri specifici delle risposte di esportazione:

|Name|Type|Comments|
|---------|--------|----------|
|value|string (optional) |Valore di risposta della funzione Export. Assente se viene restituito un errore.|
|error|string (optional) |Messaggio di errore se la funzione Export non è stata eseguita correttamente. Assente se viene restituito value.|

*Esempi:*

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

oppure

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

[comment]: # ({/33f976c2-27e2bd0c})

[comment]: # ({96eb71cf-15a7dce0})
###### Configurare la richiesta

Una richiesta per eseguire la funzione *Configure* dell'interfaccia *Configurator*.

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

Parametri specifici delle richieste *Configure*:

|Name|Type|Comments|
|---------|--------|----------|
|global_options|JSON object|Oggetto JSON contenente le opzioni di configurazione globali dell'agent.|
|private_options|JSON object (optional)|Oggetto JSON contenente le opzioni di configurazione private del plugin, se fornite.|

*Esempio:*

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

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

[comment]: # ({99291487-14b279bc})
###### Convalida richiesta

Una richiesta per eseguire la funzione *Validate* dell'interfaccia *Configurator*.

|   |   |
|---|---|
|direction|agent → plugin|
|response|sì|

Parametri specifici delle richieste *Validate*:

|Name|Type|Comments|
|---------|--------|----------|
|private_options|JSON object (optional)|Oggetto JSON contenente le opzioni di configurazione private del plugin, se fornite.|

*Esempio:*

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

[comment]: # ({/99291487-14b279bc})

[comment]: # ({3b19fa95-9a73001b})
###### Convalida della risposta

Risposta della funzione *Validate* dell'interfaccia *Configurator*.

|   |   |
|---|---|
|direzione|plugin → agent|
|risposta|n/a|

Parametri specifici delle risposte *Validate*:

|Nome|Tipo|Commenti|
|---------|--------|----------|
|error|string (opzionale)|Messaggio di errore restituito se la funzione Validate non viene eseguita correttamente. Assente se l'esecuzione ha esito positivo.|

*Esempio:*

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

oppure

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

[comment]: # ({/3b19fa95-9a73001b})

[comment]: # translation:outdated

