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