4 Protocolo del plugin Zabbix Agent 2

El protocolo Zabbix Agent 2 se basa en código, tamaño y modelo de datos.

Código

Tipo Tamaño Comentarios
Byte 4 Tipo de carga útil, actualmente solo se admite JSON.

Tamaño

Tipo Tamaño Comentarios
Byte 4 Tamaño de la carga útil actual en bytes.

Datos de carga útil

Tipo Tamaño Comentarios
Byte Definido por el campo size datos en formato JSON.
Definición de datos de carga útil
Datos común

Estos parámetros están presentes en todas las solicitudes/respuestas:

Nombre Tipo Comentarios
id uint32 Para solicitudes: el identificador incremental utilizado para vincular solicitudes con respuestas. Único dentro de una dirección de solicitud (es decir, de agente a complemento o de complemento a agente).
Para respuestas: ID de la solicitud correspondiente.
type uint32 El tipo de solicitud.
Solicitud de registro

Una solicitud enviada por un complemento para escribir un mensaje de registro en el archivo de registro del agente.

direction complemento → agente
response no

Parámetros específicos de las solicitudes de registro:

Nombre Tipo Comentarios
severity uint32 La gravedad del mensaje (nivel de registro).
message cadena El mensaje a registrar.

Ejemplo:

{"id":0,"tipo":1,"gravedad":3,"mensaje":"mensaje"}
Solicitud de registro

Una solicitud enviada por el agente durante la fase de inicio del agente para obtener las métricas proporcionadas para registrar un complemento.

direction agente → plugin
response

Parámetros específicos para registrar solicitudes:

Nombre Tipo Comentarios
version cadena La versión del protocolo <principal>.<menor>

Ejemplo:

{"id":1,"type":2,"version":"1.0"}
Registrar respuesta

Respuesta del complemento a la solicitud de registro.

direction complemento → agente
response n/a

Parámetros específicos para registrar respuestas:

Nombre Tipo Comentarios
name cadena El nombre del complemento.
metrics matriz de cadenas (opcional) Las métricas con descripciones tal como se utilizan en el complemento. Devuelve RegisterMetrics(). Ausente si se devuelve un error.
interfaces uint32 (opcional) La máscara de bits de las interfaces admitidas por el complemento. Ausente si se devuelve un error.
error cadena (opcional) Se devuelve un mensaje de error si no se puede iniciar un complemento. Ausente, 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 Inicio de la interfaz Runner.

dirección agente → complemento
respuesta no

La solicitud no tiene parámetros específicos, solo contiene parámetros de datos comunes.

Ejemplo:

{"id":3,"type":4}
Solicitud de finalización

Una solicitud enviada por el agente para cerrar un complemento.

direction agente → complemento
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 Exportar de la interfaz Exporter.

direction agente → complemento
response no

Parámetros específicos de las solicitudes de exportación:

Nombre Tipo Comentarios
key cadena La clave del complemento.
parameters matriz de cadenas (opcional) Los parámetros para la función Export.

Ejemplo:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Respuesta de exportar

Respuesta de la función Exportar de la interfaz Exporter.

direction complemento → agente
response n/a

Parámetros específicos para exportar respuestas:

Nombre Tipo Comentarios
value cadena (opcional) Valor de respuesta de la función Exportar. Ausente, si se devuelve un error.
error cadena (opcional) Mensaje de error si la función Exportar no se ha ejecutado correctamente. Ausente, si se devuelve valor.

Ejemplos:

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

o

{"id":5,"type":7,"error":"error message"}
Solicitud de configuración

Una solicitud para ejecutar la función Configurar de la interfaz Configurator.

direction agente → complemento
response n/a

Parámetros específicos de las solicitudes Configurar:

Nombre Tipo Comentarios
global_options Objeto JSON Objeto JSON que contiene opciones de configuración del agente global.
private_options Objeto JSON (opcional) Objeto JSON que contiene opciones de configuración de complementos privados, si se proporcionan.

Ejemplo:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Solicitud de validación

Una solicitud para ejecutar la función Validar de la interfaz Configurator.

direction agente → complemento
response

Parámetros específicos de las solicitudes Validar:

Nombre Tipo Comentarios
private_options Objeto JSON (opcional) Objeto JSON que contiene opciones de configuración de complementos privados, si se proporcionan.

Ejemplo:

{"id":7,"type":9,"private_options":{...}}
Respuesta de validación

Respuesta de la función Validar de la interfaz Configurator.

direction complemento → agente
response n/a

Parámetros específicos de las respuestas Validar:

Nombre Tipo Comentarios
error cadena (opcional) Se devuelve un mensaje de error si la función Validar no se ejecuta correctamente. Ausente si se ejecuta exitosamente.

Ejemplo:

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

o

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