4 Zabbix agent 2 插件协议

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

代码

类型 大小 说明
Byte 4 有效负载类型,当前仅支持JSON。

大小

类型 大小 说明
Byte 4 当前负载的大小,以字节为单位。

负载数据

类型 大小 备注
Byte 大小 字段定义 JSON 格式的数据。
Payload 数据定义
通用数据

以下参数存在于所有请求/响应中:

名称 类型 注释
id uint32 对于请求 - 用于将请求与响应关联的递增标识符。在单个请求方向内唯一(即从 agent 到插件,或从插件到 agent)。
对于响应 - 对应请求的ID。
type uint32 请求类型。
日志请求

由插件发送的请求,用于将日志消息写入 agent 日志文件。

方向 插件 → agent
响应

日志请求的特定参数:

名称 类型 说明
severity uint32 消息的严重程度(日志级别)。
message string 要记录的消息。

示例:

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

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

方向 agent → 插件
响应

注册请求的特定参数:

名称 类型 说明
version string 协议 version <主版本>.<次版本>

示例:

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

插件对注册请求的响应。

方向 插件 → agent
响应

注册响应的特定参数:

名称 类型 说明
name string 插件名称。
metrics array of strings (optional) 插件中使用的指标及其描述。返回 RegisterMetrics()。若返回错误则不存在。
interfaces uint32 (optional) 插件支持的接口的位掩码。若返回错误则不存在。
error string (optional) 若插件无法启动,则返回错误信息。若返回指标则不存在。

示例:

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

{"id":2,"type":3,"error":"error message"}
启动请求

一个请求调用Runner接口的execute开始(Start)功能。

方向(direction) agent → 插件(plugin)
响应(response) 无(no)

该请求没有特定参数,仅包含通用数据参数。

示例:

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

由agent发送给插件的关闭请求。

方向 agent → plugin
响应

该请求没有特定的参数,仅包含通用数据参数。

示例:

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

一个请求,用于调用导出器(Exporter)接口的 execute 功能。

方向 agent → 插件
响应

特定于 export 请求的参数:

名称 类型 说明
key string 插件键值。
parameters array of strings (optional) 导出功能的参数。

示例:

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

导出器接口导出功能的响应。

方向 插件 → agent
响应

export 响应的特定参数:

名称 类型 说明
value string (optional) 导出函数的响应值。如果返回错误,则此字段不存在。
error string (optional) 如果导出函数执行不成功,则包含错误信息。如果返回值,则此字段不存在。

示例:

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

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

对 execute Configurator 接口的 Configure 函数发出请求。

方向 agent → 插件
响应该 n/a

Configure 请求特有的参数:

名称 类型 备注
global_options JSON object 包含全局 agent 配置选项的 JSON object。
private_options JSON object (optional) 包含私有插件配置选项的 JSON object(如果提供)。

示例:

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

Configurator 接口的 Validate execute 函数发出的请求。

方向 agent → 插件
响应

Validate 请求相关的参数:

名称 类型 说明
private_options JSON object (optional) JSON object,包含私有插件配置选项(如果提供)。

示例:

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

Configurator 接口的 Validate 函数返回响应。

方向 插件 → agent
响应

Validate 响应的参数:

名称 类型 说明
error string (optional) 如果 Validate 函数执行失败,则返回错误信息。若执行成功,则不包含此字段。

示例:

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

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