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