4 Zabbix agent 2 plugin protocol

Zabbix agent 2 protocol is based on code, size and data model.

Код

Type Size Comments
Байт 4 Тип полезной нагрузки, в настоящее время поддерживается только JSON.

Размер

Тип Размер Комментарии
Байт 4 Размер текущей полезной нагрузки в байтах.

Данные полезной нагрузки

Тип Размер Комментарии
Байт Определяется полем Размер Данные в формате JSON.
Определение данных полезной нагрузки
Общие данные

Эти параметры присутствуют во всех запросах/ответах:

Name Type Comments
id uint32 Для запросов — увеличивающийся идентификатор, используемый для связывания запросов с ответами. Уникален в пределах одного направления запросов (то есть от агент к плагину или от плагина к агент).
Для ответов — ID соответствующего запроса.
type uint32 Тип запроса.
Запрос журнала

Запрос, отправляемый плагином для записи сообщения журнала в файл журнала агента.

direction plugin → agent
response no

Параметры, специфичные для запросов журнала:

Name Type Comments
severity uint32 Уровень важности сообщения (уровень журнала).
message string Сообщение для записи в журнал.

Пример:

{"id":0,"type":1,"severity":3,"message":"message"}
Запрос регистрации

Запрос, отправляемый агентом на этапе запуска агента для получения предоставляемых метрик с целью регистрации плагина.

direction агент → plugin
response да

Параметры, специфичные для запросов регистрации:

Name Type Comments
version string Версия протокола <major>.<minor>

Пример:

{"id":1,"type":2,"version":"1.0"}
Ответ на регистрацию

Ответ плагина на запрос регистрации.

direction плагин → агент
response n/a

Параметры, специфичные для ответов на регистрацию:

Name Type Comments
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"}
Запрос Start

Запрос на выполнение функции Start интерфейса Runner.

direction агент → plugin
response no

Запрос не имеет специальных параметров, он содержит только параметры общих данных.

Пример:

{"id":3,"type":4}
Завершение запроса

Запрос, отправляемый агентом для завершения работы плагина.

direction агент → plugin
response no

У запроса нет специальных параметров, он содержит только параметры общих данных.

Пример:

{"id":3,"type":5}
Запрос на экспорт

Запрос на выполнение функции Export интерфейса Exporter.

direction агент → plugin
response no

Параметры, специфичные для запросов на экспорт:

Name Type Comments
key string Ключ plugin.
parameters array of strings (optional) Параметры для функции Export.

Пример:

{"id":4,"type":6,"key":"test.key","parameters":["foo","bar"]}
Ответ экспорта

Ответ функции Export интерфейса Exporter.

direction plugin → агент
response n/a

Параметры, специфичные для ответов экспорта:

Name Type Comments
value string (optional) Значение ответа функции Export. Отсутствует, если возвращена ошибка.
error string (optional) Сообщение об ошибке, если функция Export не была выполнена успешно. Отсутствует, если возвращено значение.

Примеры:

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

или

{"id":5,"type":7,"error":"error message"}
Настройка запроса

Запрос на выполнение функции Configure интерфейса Configurator.

direction агент → plugin
response n/a

Параметры, специфичные для запросов Configure:

Name Type Comments
global_options JSON object Объект JSON, содержащий глобальные параметры конфигурации агента.
private_options JSON object (optional) Объект JSON, содержащий частные параметры конфигурации плагина, если они указаны.

Пример:

{"id":6,"type":8,"global_options":{...},"private_options":{...}}
Проверка запроса

Запрос на выполнение функции Validate интерфейса Configurator.

direction агент → plugin
response да

Параметры, специфичные для запросов Validate:

Name Type Comments
private_options JSON object (optional) Объект JSON, содержащий параметры приватной конфигурации плагина, если они указаны.

Пример:

{"id":7,"type":9,"private_options":{...}}
Проверка ответа

Ответ от функции Validate интерфейса Configurator.

направление плагин → агент
ответ н/д

Параметры, специфичные для ответов Validate:

Имя Тип Комментарии
error string (optional) Сообщение об ошибке, возвращаемое, если функция Validate не была выполнена успешно. Отсутствует при успешном выполнении.

Пример:

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

или

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