Protocolo do plugin do Zabbix agent 2

O protocolo do Zabbix agent 2 é baseado em código, tamanho e modelo de dados.

Código

Type Size Comments
Byte 4 Tipo de payload, atualmente apenas JSON é suportado.

Tamanho

Type Size Comments
Byte 4 Tamanho da carga útil atual em bytes.

Dados de payload

Type Size Comments
Byte Definido pelo campo Size Dados formatados em JSON.

Definição dos dados de payload

Dados comuns

Estes parâmetros estão presentes em todas as solicitações/respostas:

Name Type Comments
id uint32 Para solicitações - o identificador incremental usado para vincular solicitações às respostas. Exclusivo dentro de uma direção de solicitação (ou seja, do agent para o plugin ou do plugin para o agent).
Para respostas - ID da solicitação correspondente.
type uint32 O tipo da solicitação.
Solicitação de log

Uma solicitação enviada por um plugin para gravar uma mensagem de log no arquivo de log do agent.

direction plugin → agent
response no

Parâmetros específicos para solicitações de log:

Name Type Comments
severity uint32 A severidade da mensagem (nível de log).
message string A mensagem a ser registrada no log.

Exemplo:

{"id":0,"type":1,"severity":3,"message":"message"}
Solicitação de registro

Uma solicitação enviada pelo agent durante a fase de inicialização do agent para obter as métricas fornecidas para registrar um plugin.

direction agent → plugin
response yes

Parâmetros específicos de solicitações de registro:

Name Type Comments
version string A versão do protocolo <major>.<minor>

Exemplo:

{"id":1,"type":2,"version":"1.0"}
Resposta de registro

Resposta do plugin à solicitação de registro.

direction plugin → agent
response n/a

Parâmetros específicos para respostas de registro:

Name Type Comments
name string O nome do plugin.
metrics array of strings (optional) As métricas com descrições, conforme usadas no plugin. Retorna RegisterMetrics(). Ausente se um erro for retornado.
interfaces uint32 (optional) A máscara de bits das interfaces suportadas pelo plugin. Ausente se um erro for retornado.
error string (optional) Uma mensagem de erro retornada se um plugin não puder ser iniciado. Ausente, se metrics forem retornadas.

Exemplos:

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

ou

{"id":2,"type":3,"error":"error message"}
Iniciar solicitação

Uma solicitação para executar a função Start da interface Runner.

direction agent → plugin
response no

A solicitação não possui parâmetros específicos; ela contém apenas parâmetros de common data.

Exemplo:

{"id":3,"type":4}
Encerrar solicitação

Uma solicitação enviada pelo agent para desligar um plugin.

direction agent → plugin
response no

A solicitação não possui parâmetros específicos, ela contém apenas parâmetros de dados comuns.

Exemplo:

{"id":3,"type":5}
Solicitação de exportação

Uma solicitação para executar a função Export da interface do Exporter.

direction agent → plugin
response no

Parâmetros específicos para solicitações de exportação:

Name Type Comments
key string A chave do plugin.
parameters array of strings (optional) Os parâmetros para a função Export.

Exemplo:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Resposta de exportação

Resposta da função Export da interface do Exporter.

direction plugin → agent
response n/a

Parâmetros específicos para respostas de exportação:

Name Type Comments
value string (optional) Valor de resposta da função Export. Ausente, se um erro for retornado.
error string (optional) Mensagem de erro se a função Export não tiver sido executada com sucesso. Ausente, se um valor for retornado.

Exemplos:

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

ou

{"id":5,"type":7,"error":"error message"}
Configurar solicitação

Uma solicitação para executar a função Configure da interface Configurator.

direction agent → plugin
response n/a

Parâmetros específicos para solicitações Configure:

Name Type Comments
global_options JSON object Objeto JSON contendo opções globais de configuração do agent.
private_options JSON object (optional) Objeto JSON contendo opções privadas de configuração do plugin, se fornecidas.

Exemplo:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Validar solicitação

Uma solicitação para executar a função Validate da interface Configurator.

direction agent → plugin
response yes

Parâmetros específicos para solicitações Validate:

Name Type Comments
private_options JSON object (optional) Objeto JSON contendo opções privadas de configuração do plugin, se fornecidas.

Exemplo:

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

Resposta da função Validate da interface Configurator.

direction plugin → agent
response n/a

Parâmetros específicos das respostas de Validate:

Name Type Comments
error string (optional) Uma mensagem de erro retornada se a função Validate não for executada com sucesso. Ausente se executada com sucesso.

Exemplo:

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

ou

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