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"}