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