[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]: # ({0d41b327-a102065d})
### Code

|Type|Grootte|Opmerkingen|
|-----|-----|----------|
|Byte|	4	|Payloadtype, momenteel wordt alleen JSON ondersteund.|

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

[comment]: # ({d7a7f279-6f328f94})
### Grootte

|Type|Grootte|Opmerkingen|
|-----|-----|----------|
|Byte|4|Grootte van de huidige payload in bytes.|

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

[comment]: # ({9e381b60-e3974519})
### Gegevens van payload

|Type|Grootte|Opmerkingen|
|-----|-----|----------|
|Byte|Gedefinieerd door het *Grootte* veld|JSON-geformatteerde gegevens.|

[comment]: # ({/9e381b60-e3974519})

[comment]: # ({dab47ecc-265b88ca})
##### Definitie van payloadgegevens

###### Algemene gegevens

Deze parameters zijn aanwezig in alle verzoeken/antwoorden:

|Naam|Type|Opmerkingen|
|-----|--------|----------|
|id	  |uint32|Voor verzoeken - de toenemende identificator die wordt gebruikt om verzoeken te koppelen aan antwoorden. Uniek binnen een verzoeksdirection (dat wil zeggen van agent naar plugin of van plugin naar agent).<br>Voor antwoorden - ID van het overeenkomstige verzoek.|
|type|uint32|Het type verzoek.|

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

[comment]: # ({a6ec8d3d-6bdfbea5})
###### Logverzoek

Een verzoek dat door een plugin wordt verzonden om een logboekbericht in het agent-logboekbestand te schrijven.

|   |   |
|---|---|
|richting|plugin → agent|
|antwoord|nee|

Parameters specifiek voor logverzoeken:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|severity|uint32|De ernst van het bericht (logniveau).|
|message|string|Het bericht om te loggen.|

*Voorbeeld:*

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

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

[comment]: # ({4d73be22-38f1c088})
###### Registratieverzoek

Een verzoek dat door de agent wordt verzonden tijdens de opstartfase van de agent om de meegeleverde metingen te verkrijgen om een plugin te registreren.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|ja|

Parameters specifiek voor registratieverzoeken:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|version|string|De protocolversie <major>.<minor>|

*Voorbeeld:*

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

[comment]: # ({/4d73be22-38f1c088})

[comment]: # ({5431ad91-d8c62312})
###### Registratie-antwoord

Antwoord van de plugin op het registratieverzoek.

|   |   |
|---|---|
|richting|plugin → agent|
|antwoord|n/v|

Parameters specifiek voor registratie-antwoorden:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|name|string|De naam van de plugin.|
|metrics|array van strings (optioneel)|De metingen met beschrijvingen zoals gebruikt in de plugin. Geeft RegisterMetrics() terug. Afwezig bij een foutmelding.|
|interfaces|uint32 (optioneel)|De bitwaarde van ondersteunde interfaces van de plugin. Afwezig bij een foutmelding.|
|error|string (optioneel)|Een foutbericht dat wordt teruggegeven als een plugin niet kan worden gestart. Afwezig als metingen worden teruggegeven.|

*Voorbeelden:*

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

of

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

[comment]: # ({/5431ad91-d8c62312})

[comment]: # ({55fb5c94-0b67f229})
###### Startverzoek

Een verzoek om de Start-functie van de Runner-interface uit te voeren.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|nee|

Het verzoek heeft geen specifieke parameters, het bevat alleen [algemene gegevens](#common-data) parameters.

*Voorbeeld:*

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

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

[comment]: # ({64d18b6e-f3c8d489})
###### Beëindigingsverzoek

Een verzoek dat door de agent wordt verzonden om een plugin af te sluiten.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|nee|

Het verzoek heeft geen specifieke parameters, het bevat alleen [algemene gegevens](#common-data) parameters.

*Voorbeeld:*

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

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

[comment]: # ({d0292a8c-b2754963})
###### Exportverzoek

Een verzoek om de Export-functie van de Exporter-interface uit te voeren.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|nee|

Specifieke parameters voor exportverzoeken:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|sleutel|string|De plug-insleutel.|
|parameters|array van strings (optioneel)|De parameters voor de Export-functie.|

*Voorbeeld:*

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

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

[comment]: # ({da16eff1-27e2bd0c})
###### Exportreactie

Reactie van de Export-functie van de Exporter-interface.

|   |   |
|---|---|
|richting|plugin → agent|
|antwoord|n.v.t.|

Specifieke parameters voor exportreacties:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|waarde|string (optioneel) |Reactiewaarde vanuit de Export-functie. Afwezig als er een fout is opgetreden.|
|fout|string (optioneel) |Foutmelding als de Export-functie niet succesvol is uitgevoerd. Afwezig als er een waarde is opgegeven.|

*Voorbeelden:*

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

of

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

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

[comment]: # ({7a17ee0a-15a7dce0})
###### Configure-verzoek

Een verzoek om de *Configure*-functie van de *Configurator*-interface uit te voeren.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|n.v.t.|

Specifieke parameters voor *Configure*-verzoeken:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|global_options|JSON-object|JSON-object met globale agentconfiguratieopties.|
|private_options|JSON-object (optioneel)|JSON-object met privépluginconfiguratieopties, indien opgegeven.|

*Voorbeeld:*

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

[comment]: # ({/7a17ee0a-15a7dce0})

[comment]: # ({d0943229-14b279bc})
###### Valideer-verzoek

Een verzoek om de *Valideren*-functie van de *Configurator*-interface uit te voeren.

|   |   |
|---|---|
|richting|agent → plugin|
|antwoord|ja|

Specifieke parameters voor *Valideer*-verzoeken:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|private_options|JSON-object (optioneel)|JSON-object met privépluginconfiguratieopties, indien opgegeven.|

*Voorbeeld:*

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

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

[comment]: # ({851297e0-9a73001b})
###### Valideer-antwoord

Reactie van de *Valideren*-functie van de *Configurator*-interface.

|   |   |
|---|---|
|richting|plugin → agent|
|antwoord|n.v.t.|

Specifieke parameters voor *Valideer*-reacties:

|Naam|Type|Opmerkingen|
|---------|--------|----------|
|error|string (optioneel)|Een foutbericht dat wordt geretourneerd als de *Valideren*-functie niet succesvol is uitgevoerd. Afwezig bij succesvolle uitvoering.|

*Voorbeeld:*

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

of

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

[comment]: # ({/851297e0-9a73001b})

[comment]: # translation:outdated

