4 Protocologo do plugin no agente Zabbix 2
O protocolo do Zabbix agente 2 é baseado em código, tamanho e modelo de dados.
Código
| Tipo | Tamanho | Comentários |
|---|---|---|
| Byte | 4 | Tipo do Payload, atualmente somente o JSON é suportado. |
Tamanho
| Tipo | Tamanho | Comentários |
|---|---|---|
| Byte | 4 | Tamanho do Payload atual em bytes. |
Dado Payload
| Tipo | Tamanho | Comentários |
|---|---|---|
| Byte | Definido pelo campo Size | Dados formatados em JSON. |
Definição dados Payload
Dado comum
Estes parâmetros são apresentados em todos requests/responses:
| Nome | Tipo | Comentários |
|---|---|---|
| id | uint32 | Para requests - o indicador crescente usado para vincular requests com responses. Único dentro de uma request direta (i.e. do agente para o plugin ou do plugin para o agente). Para responses - ID da request correspondente. |
| type | uint32 | O tipo request. |
Request Log
| A request enviada por um plugin para escrever a mensagem de log no arquivo de log do agente. | ||
|---|---|---|
| direction | plugin → agent | |
| response | no |
Parâmetros específicos para requests log:
| Nome | Tipo | Comentários |
|---|---|---|
| severity | uint32 | A gravidade da mensagem (nível log). |
| message | string | A mensagem para o log. |
Exemplo:
{"id":0,"type":1,"severity":3,"message":"message"}
Request registro
Um request enviada pelo agente durante a fase de inicialização do agente para obter métricas fornecidas para registrar um plugin.
| direction | agent → plugin |
| response | yes |
Parâmetros específicos para solicitação de registro:
| Nome | Tipo | Comentários |
|---|---|---|
| version | string | Versão do protocolo <major>.<minor> |
Exemplo:
{"id":1,"type":2,"version":"1.0"}
Resposta de registro
A resposta do plugin à solicitação de registro.
| direction | plugin → agent |
| response | n/a |
Parâmetros específicos para respostas de registro:
| Nome | Tipo | Comentários |
|---|---|---|
| name | string | Nome do plugin. |
| metrics | array of strings (optional) | As métricas com descrições são usadas no plugin. Retorna RegisterMetrics(). Ausente se retornar erro. |
| interfaces | uint32 (optional) | A máscara de bits das interfaces suportadas pelo plugin. Ausente se retornar erro. |
| error | string (optional) | Uma mensagem de erro retorna caso o plugin não possa ser iniciado. Ausente se as métricas retornarem. |
Exemplos:
{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}
or
{"id":2,"type":3,"error":"error message"}
Start da request
Um request para executar a função Start da interface Runner.
| direction | agent → plugin |
| response | no |
O request (solicitação) não possui parâmetros específicos, contém apenas parâmetros common data.
Exemplo:
{"id":3,"type":4}
Encerramento da request
Um request enviado pelo agente para desativar o plugin.
| direction | agent → plugin |
| response | no |
Essa solicitação (request) não contém parâmetros específicos, contém apenas parâmetros common data .
Exemplo:
{"id":3,"type":5}
Request exportação
Um request para executar a função Exportação da interface Exporter.
| direction | agent → plugin |
| response | no |
Parâmetros específicos para request de exportação:
| Nome | Tipo | Comentários |
|---|---|---|
| key | string | plugin key. |
| parameters | array of strings (optional) | Parâmetros para Função Exportação. |
Exemplo:
{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Exportação da response
| Resposta da função Export da interface Exporter. | ||
|---|---|---|
| direction | plugin → agent | |
| response | n/a |
Parâmetros específicos para respostas de exportação:
| Nome | Tipo | Comentários |
|---|---|---|
| value | string (optional) | Valor de resposta da função Export. Ausente se retornar erro. |
| error | string (optional) | Uma mensagem de erro irá aparecer caso a função Export não tiver sido executada com sucesso. Ausente se o valor retornar. |
Exemplos:
{"id":5,"type":7,"value":"response"}
ou
{"id":5,"type":7,"error":"error message"}
Configuração da request
Um request para executar a função Configure da interface Configurator.
| direction | agent → plugin |
| response | n/a |
Parâmetros específicos para requests Configure:
| Nome | Tipo | Comentários |
|---|---|---|
| global_options | JSON object | Objeto JSON contém opções de configuração globais do agente. |
| private_options | JSON object (optional) | Objeto JSON contém opções de configuração privada do puglin, se fornecida. |
Exemplo:
{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Validar request
Um request para executar a função Validate na interface Configurator.
| direction | agent → plugin |
| response | yes |
Parâmetros específicos para requests Validate:
| Nome | Tipo | Comentários |
|---|---|---|
| private_options | JSON object (optional) | Objeto JSON contém opções de configuração privada para o plugin, se fornecidas. |
Exemplo:
{"id":7,"type":9,"private_options":{...}}
Validar response
Resposta da função Validate da interface Configurator.
| direction | plugin → agent |
| response | n/a |
Parâmetros específicos para respostas Validate:
| Nome | Tipo | Comentários |
|---|---|---|
| error | string (optional) | Uma mensagem de erro retornará caso a função Validate não for executada com sucesso. Ausente se retornar com sucesso. |
Exemplo:
{"id":8,"type":10}
ou
{"id":8,"type":10,"error":"error message"}