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