4 Zabbix agent 2 插件协议

Zabbix Agent 2协议基于代码、大小和数据模型。

代码

类型大小注解
Byte4Payload类型,目前仅支持JSON.

大小

类型大小注解
Byte4当前有效负载的大小(以字节为单位).

Payload数据

类型大小注解
ByteSize 字段定义JSON 格式的数据.
Payload 数据定义
常用数据

这些参数存在于所有请求/响应中:

名称类型注解
iduint32对于请求 - 用于将请求与响应链接起来的递增标识符。在请求方向内唯一 (即从代理到插件或从插件到代理).
对于响应 - 相应请求的 ID.
typeuint32请求类型.
日志请求

插件发送的将日志消息写入代理日志文件的请求。

directionplugin → agent
responseno

特定于日志请求的参数:

名称类型注解
severityuint32消息严重性(日志级别).
messagestring要记录的消息.

例子:

  1. {"id":0,"type":1,"severity":3,"message":"message"}
注册请求

代理在代理启动阶段发送的请求,用于获取注册插件所提供的指标。

directionagent → plugin
responseyes

特定于注册请求的参数:

名称类型注解
versionstring协议版本 <major>.<minor>

例子:

  1. {"id":1,"type":2,"version":"1.0"}
注册响应

插件对注册请求的响应。

directionplugin → agent
responsen/a

特定于注册响应的参数:

NameTypeComments
namestring插件名称.
metricsarray of strings (可选)带有插件中使用的描述的指标。返回 RegisterMetrics()。如果返回错误则不存在.
interfacesuint32 (可选)插件支持的接口的掩码位。如果返回错误则不存在.
errorstring (可选)如果插件无法启动,则返回错误消息。如果返回指标,则不存在.

例子:

  1. {"id":2,"type":3,"metrics":["external.test", "External exporter Test."], "interfaces": 4}

or

  1. {"id":2,"type":3,"error":"error message"}
开始请求

请求执行Runner接口的Start函数.

directionagent → plugin
responseno

该请求没有具体参数, 它只包含 常用数据 参数。

例子:

  1. {"id":3,"type":4}
终止请求

代理发送的关闭插件的请求。

directionagent → plugin
responseno

该请求没有具体参数,它只包含 常用数据 参数。

例子:

  1. {"id":3,"type":5}
导出请求

请求执行Exporter接口的Export函数。

directionagent → plugin
responseno

特定于导出请求的参数:

名称类型注解
keystring插件密钥.
parametersarray of strings (可选)导出函数的参数.

例子:

  1. {"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
导出响应

来自 Exporter 接口的 Export 功能的响应。

directionplugin → agent
responsen/a

特定于导出响应的参数:

名称类型注解
valuestring (可选)来自导出功能的响应值。如果返回错误,则不存在.
errorstring (可选)如果导出功能未成功执行,则会出现错误消息。如果返回值,则不存在.

例子:

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

or

  1. {"id":5,"type":7,"error":"error message"}
配置请求

执行 Configurator 接口的 Configure 功能的请求。

directionagent → plugin
responsen/a

特定于Configure 请求的参数:

名称类型注解
global_optionsJSON object包含全局代理配置选项的JSON对象.
private_optionsJSON object (可选)包含私有插件配置选项的JSON对象,如果提供.

例子:

  1. {"id":6,"type":8,"global_options":{...},"private_options":{...}}
验证请求

执行 Configurator 接口的 Validate 功能的请求。

directionagent → plugin
responseyes

特定于 Validate 请求的参数:

NameTypeComments
private_optionsJSON object (可选)包含私有插件配置选项的 JSON 对象, 如果提供.

例子:

  1. {"id":7,"type":9,"private_options":{...}}
验证响应

来自 Configurator 接口的 Validate 函数的响应。

directionplugin → agent
responsen/a

特定于 Validate 响应的参数:

NameTypeComments
errorstring (可选)如果 Validate 函数未成功执行,则返回错误消息。如果执行成功则不存在.

例子:

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

or

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