Zabbix agent 2 protocol is based on code, size and data model.
Type | Size | Comments |
---|---|---|
Byte | 4 | Payload type, currently only JSON is supported. |
Type | Size | Comments |
---|---|---|
Byte | 4 | Size of the current payload in bytes. |
Type | Size | Comments |
---|---|---|
Byte | Defined by the Size field | JSON formatted data. |
These parameters are present in all requests/responses:
Name | Type | Comments |
---|---|---|
id | uint32 | For requests - the incrementing identifier used to link requests with responses. Unique within a request direction (i.e. from agent to plugin or from plugin to agent). For responses - ID of the corresponding request. |
type | uint32 | The request type. |
A request sent by a plugin to write a log message into the agent log file.
direction | plugin → agent |
response | no |
Parameters specific to log requests:
Name | Type | Comments |
---|---|---|
severity | uint32 | The message severity (log level). |
message | string | The message to log. |
Example:
A request sent by the agent during the agent startup phase to obtain provided metrics to register a plugin.
direction | agent → plugin |
response | yes |
Parameters specific to register requests:
Name | Type | Comments |
---|---|---|
version | string | The protocol version <major>.<minor> |
Example:
Plugin's response to the register request.
direction | plugin → agent |
response | n/a |
Parameters specific to register responses:
Name | Type | Comments |
---|---|---|
name | string | The plugin name. |
metrics | array of strings (optional) | The metrics with descriptions as used in the plugin. Returns RegisterMetrics(). Absent if error is returned. |
interfaces | uint32 (optional) | The bit mask of plugin's supported interfaces. Absent if error is returned. |
error | string (optional) | An error message returned if a plugin cannot be started. Absent, if metrics are returned. |
Examples:
or
A request to execute the Start function of the Runner interface.
direction | agent → plugin |
response | no |
The request doesn't have specific parameters, it only contains common data parameters.
Example:
A request sent by the agent to shutdown a plugin.
direction | agent → plugin |
response | no |
The request doesn't have specific parameters, it only contains common data parameters.
Example:
A request to execute the Export function of the Exporter interface.
direction | agent → plugin |
response | no |
Parameters specific to export requests:
Name | Type | Comments |
---|---|---|
key | string | The plugin key. |
parameters | array of strings (optional) | The parameters for Export function. |
Example:
Response from the Export function of the Exporter interface.
direction | plugin → agent |
response | n/a |
Parameters specific to export responses:
Name | Type | Comments |
---|---|---|
value | string (optional) | Response value from the Export function. Absent, if error is returned. |
error | string (optional) | Error message if the Export function has not been executed successfully. Absent, if value is returned. |
Examples:
or
A request to execute the Configure function of the Configurator interface.
direction | agent → plugin |
response | n/a |
Parameters specific to Configure requests:
Name | Type | Comments |
---|---|---|
global_options | JSON object | JSON object containing global agent configuration options. |
private_options | JSON object (optional) | JSON object containing private plugin configuration options, if provided. |
Example:
A request to execute Validate function of the Configurator interface.
direction | agent → plugin |
response | yes |
Parameters specific to Validate requests:
Name | Type | Comments |
---|---|---|
private_options | JSON object (optional) | JSON object containing private plugin configuration options, if provided. |
Example:
Response from Validate function of Configurator interface.
direction | plugin → agent |
response | n/a |
Parameters specific to Validate responses:
Name | Type | Comments |
---|---|---|
error | string (optional) | An error message returned if the Validate function is not executed successfully. Absent if executed successfully. |
Example:
or