Protocolo del plugin de Zabbix agent 2
El protocolo de Zabbix agent 2 se basa en código, tamaño y modelo de datos.
Código
| Type | Size | Comments |
|---|---|---|
| Byte | 4 | Tipo de carga útil, actualmente solo se admite JSON. |
Tamaño
| Type | Size | Comments |
|---|---|---|
| Byte | 4 | Tamaño de la carga útil actual en bytes. |
Datos de carga útil
| Type | Size | Comments |
|---|---|---|
| Byte | Definido por el campo Size | Datos con formato JSON. |
Definición de datos de carga útil
Datos comunes
Estos parámetros están presentes en todas las solicitudes/respuestas:
| Name | Type | Comments |
|---|---|---|
| id | uint32 | Para las solicitudes: el identificador incremental utilizado para vincular las solicitudes con las respuestas. Único dentro de una dirección de solicitud (es decir, de agent a plugin o de plugin a agent). Para las respuestas: ID de la solicitud correspondiente. |
| type | uint32 | El tipo de solicitud. |
Solicitud de registro
Una solicitud enviada por un plugin para escribir un mensaje de registro en el archivo de registro del agent.
| direction | plugin → agent |
| response | no |
Parámetros específicos de las solicitudes de registro:
| Name | Type | Comments |
|---|---|---|
| severity | uint32 | La severidad del mensaje (nivel de registro). |
| message | string | El mensaje que se va a registrar. |
Ejemplo:
{"id":0,"type":1,"severity":3,"message":"message"}
Solicitud de registro
Una solicitud enviada por el agent durante la fase de inicio del agent para obtener las métricas proporcionadas y registrar un plugin.
| direction | agent → plugin |
| response | yes |
Parámetros específicos de las solicitudes de registro:
| Name | Type | Comments |
|---|---|---|
| version | string | La versión del protocolo <major>.<minor> |
Ejemplo:
{"id":1,"type":2,"version":"1.0"}
Respuesta de registro
Respuesta del plugin a la solicitud de registro.
| direction | plugin → agent |
| response | n/a |
Parámetros específicos de las respuestas de registro:
| Name | Type | Comments |
|---|---|---|
| name | string | El nombre del plugin. |
| metrics | array of strings (optional) | Las métricas con descripciones tal como se usan en el plugin. Devuelve RegisterMetrics(). No está presente si se devuelve un error. |
| interfaces | uint32 (optional) | La máscara de bits de las interfaces compatibles del plugin. No está presente si se devuelve un error. |
| error | string (optional) | Un mensaje de error devuelto si un plugin no puede iniciarse. No está presente si se devuelven métricas. |
Ejemplos:
{"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}
o
{"id":2,"type":3,"error":"error message"}
Solicitud de inicio
Una solicitud para ejecutar la función Start de la interfaz Runner.
| direction | agent → plugin |
| response | no |
La solicitud no tiene parámetros específicos; solo contiene parámetros de datos comunes.
Ejemplo:
{"id":3,"type":4}
Solicitud de terminación
Una solicitud enviada por el agent para apagar un plugin.
| direction | agent → plugin |
| response | no |
La solicitud no tiene parámetros específicos; solo contiene parámetros de datos comunes.
Ejemplo:
{"id":3,"type":5}
Solicitud de exportación
Una solicitud para ejecutar la función Export de la interfaz Exporter.
| direction | agent → plugin |
| response | no |
Parámetros específicos de las solicitudes de exportación:
| Name | Type | Comments |
|---|---|---|
| key | string | La clave del plugin. |
| parameters | array of strings (optional) | Los parámetros para la función Export. |
Ejemplo:
{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Respuesta de exportación
Respuesta de la función Export del interfaz Exporter.
| direction | plugin → agent |
| response | n/a |
Parámetros específicos de las respuestas de exportación:
| Name | Type | Comments |
|---|---|---|
| value | string (optional) | Valor de respuesta de la función Export. Ausente si se devuelve un error. |
| error | string (optional) | Mensaje de error si la función Export no se ha ejecutado correctamente. Ausente si se devuelve value. |
Ejemplos:
{"id":5,"type":7,"value":"response"}
o
{"id":5,"type":7,"error":"error message"}
Configurar solicitud
Una solicitud para ejecutar la función Configure de la interfaz Configurator.
| direction | agent → plugin |
| response | n/a |
Parámetros específicos de las solicitudes Configure:
| Name | Type | Comments |
|---|---|---|
| global_options | JSON object | Objeto JSON que contiene las opciones de configuración global del agent. |
| private_options | JSON object (optional) | Objeto JSON que contiene las opciones de configuración privadas del plugin, si se proporcionan. |
Ejemplo:
{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Validar solicitud
Una solicitud para ejecutar la función Validate de la interfaz Configurator.
| direction | agent → plugin |
| response | yes |
Parámetros específicos de las solicitudes Validate:
| Name | Type | Comments |
|---|---|---|
| private_options | JSON object (optional) | Objeto JSON que contiene opciones privadas de configuración del plugin, si se proporcionan. |
Ejemplo:
{"id":7,"type":9,"private_options":{...}}
Validar respuesta
Respuesta de la función Validate de la interfaz Configurator.
| direction | plugin → agent |
| response | n/a |
Parámetros específicos de las respuestas Validate:
| Name | Type | Comments |
|---|---|---|
| error | string (optional) | Un mensaje de error devuelto si la función Validate no se ejecuta correctamente. Ausente si se ejecuta correctamente. |
Ejemplo:
{"id":8,"type":10}
o
{"id":8,"type":10,"error":"error message"}