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

Zabbix агент 2 протокол је заснован на коду, величини и моделу података.

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

[comment]: # ({b65bf947-a102065d})
### Код

|Type|Size|Comments|
|-----|-----|----------|
|Byte|   4   |Тип корисног оптерећења, тренутно је подржан само JSON.|

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

[comment]: # ({8edb0275-6f328f94})
### Величина

|Type|Size|Comments|
|-----|-----|----------|
|Byte|   4   |Величина тренутног корисног оптерећења у бајтовима.|

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

[comment]: # ({0351e98f-e3974519})
### Подаци о носивости

|Type|Size|Comments|
|-----|-----|----------|
|Byte|   Дефинисано пољем *Size* field.   |ЈСОН форматираним подацима.|

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

[comment]: # ({60a41fe8-265b88ca})
##### Дефиниција података о корисном терету

###### Заједнички подаци

Ови параметри су присутни у свим захтевима/одговорима:

| Name | Type | Comments |
|-----|--------|----------|
| id    | uint32 |За захтевe - растући идентификатор који се користи за повезивање захтева са одговорима. Јединствено у правцу захтева (тј. од агента до додатка или од додатка до агента).<br>За одговоре 

- ID одговарајућег захтева.|
| type | uint32 |Тип захтева.|

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

[comment]: # ({3cf942f4-6bdfbea5})
###### Захтев за евиденцијом

Захтев који је послао додатак за писање поруке дневника у датотеку дневника агента.

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

Параметри специфични за захтеве дневника:

| Name | Type | Comments |
|---------|--------|----------|
| severity | uint32 |Озбиљност поруке (ниво дневника).|
| message | string |Порука за дневник.|

*Пример:*

   {"id":0,"type":1,"severity":3,"message":"порука"}

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

[comment]: # ({3640b089-38f1c088})
###### Захтев за регистрацију

Захтев који агент шаље током фазе покретања агента ради добијања датих метрика за регистрацију додатка.

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

Параметри специфични за захтеве за регистрацију:

|Name|Type|Comments|
|---------|--------|---------|
|version|string|Верзија протокола <major>.<minor>|

*Пример:*

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

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

[comment]: # ({92946a86-d8c62312})
###### Региструјте одговор

Одговор додатка на захтев за регистрацију.

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

Параметри специфични за одговоре регистра:

| Name | Type | Comments |
|--- ------|--------|----------|
| name | string |Име додатка.|
| metrics |array of strings (optional)|Метрика са описима који се користе у додатку. Враћа RegisterMetrics(). Одсутан ако се врати грешка.|
| interfaces | uint32 (optional)|Бит маска подржаних интерфејса додатка. Одсутан ако се врати грешка.|
| error | string (optional)|Враћена је порука о грешци ако додатак не може да се покрене. Одсутан, ако се метрика враћа.|

*Примери:*

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

или

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

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

[comment]: # ({f190dd1a-0b67f229})
###### Започни захтев

Захтев за извршење функције Start интерфејса Runner.

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

Захтев нема специфичне параметре, он садржи само [уобичајени податак](#common-data) параметри.

*Пример:*

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

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

[comment]: # ({fce4bba2-f3c8d489})
###### Прекини захтев

Захтев који је агент послао да искључи додатак.

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

Захтев нема специфичне параметре, садржи само [заједничке податке ](#common-data) параметри.

*Пример:*

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

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

[comment]: # ({43e9416d-b2754963})
###### Захтев за извоз

Захтев за извршавање функције Извоз интерфејса Извозника.

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

Параметри специфични за захтеве за извоз:

|Name|Type|Comments|
|---------|--------|----------|
|key|string|Кључ додатка.|
|parameters|array of strings (optional)|Параметри за функцију Извоз.|

*Пример:*

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

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

[comment]: # ({33f976c2-27e2bd0c})
###### Извези одговор

Одговор из функције Export интерфејса Exporter.

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

Параметри специфични за извоз одговора:

| Name | Type | Comments |
| ---------|--------|----------|
| value |string (optional) |Вредност одговора из функције Expor. Одсутан, ако се врати грешка.|
| error |string (optional)  |Порука о грешци ако функција Export није успешно извршена. Одсутан, ако је враћена вредност.|

*Примери:*

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

или

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

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

[comment]: # ({96eb71cf-15a7dce0})
###### Захтев за конфигурисање

Захтев да се изврши функција * Configure* интерфејса * Configurator*.

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

Параметри специфични за захтеве * Configure*:

|Name|Type|Comments|
|--------|--------|----------|
|global_options|JSON object|JSON објекат који садржи глобалну конфигурацију агента опције.|
|private_options|JSON object (optional)|JSON објекат који садржи опције конфигурације приватних додатака, ако су наведене.|

*Пример:*

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

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

[comment]: # ({99291487-14b279bc})
###### Потврди захтев

Захтев да се изврши функција * Validate* интерфејса * Configurator*.

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

Параметри специфични за захтеве * Validate*:

|Name|Type|Comments|
|---------|------------------|
|private_options|JSON  object (optional)|JSON објекат који садржи конфигурацију приватног додатка опције, ако су наведене.|

*Пример:*

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

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

[comment]: # ({3b19fa95-9a73001b})
###### Потврди одговор

Одговор из функције * Validate* интерфејса * Configurator*.

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

Параметри специфични за * Validate* одговоре:

|Name|Type|Comments|
|--------|--------|----------|
|error|string (optional)|Враћена је порука о грешци ако је функција Валидате није успешно извршено. Одсутан ако се успешно изврши.|

*Пример:*

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

или

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

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