|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.altlinux.jabbix.JabbixProtocol
public class JabbixProtocol
Константы и функции для протокола Zabbix-агента.
Базовый протокол Zabbix для связи между агентом и сервером представляет собой разновидность простого бинарного протокола и используется для передачи произвольных порций данных между Zabbix-совместимым агентом (например основанной на Jabbix-программой) и Zabbix-сервером.
Каждая такая передача называется сообщением. Каждое сообщение имеет следующую форму (структуру):
| 4 Байта | 1 Байт | 8 Байтов | ДЛИНА Байтов |
ЗАГОЛОВОК ВЕРСИЯ ДЛИНА ДАННЫЕ СООБЩЕНИЯ
Поле ЗАГОЛОВОК это 4-байтовая последовательность 4 символов ASCII, в настоящее время определённая как ZBXD. Следующее поле ВЕРСИЯ шириной в один байт определяет версию протокола. В настоящее время поддерживаемая версия протокола равняется 1 (т.е. 01h).
Следующее 8-байтовое поле ДЛИНА содержит 64-битное целое число (младший байт первым) определяющее длину следующей за ним части ДАННЫЕ СООБЩЕНИЯ. Все числовые данные также представляются в виде с младшим байтом в начале.
Для целей совместимости и для того, чтобы упростить программы-агенты, используется и другой протокол, основанный на разделителях. В этом протоколе сообщения не имеют предустановленной структуры. Вместо этого, один из символов-разделителей используется для обозначения конца каждого сообщения. Поскольку перевод строки (0Ah) также входит в набор разделителей, простые текстовые сообщения могут быть переданы как есть.
Основное использование передачи простых текстовых сообщений посредством неструктурированного протокола ведётся при взаимодействии Zabbix-сервера с пассивным агентом: сервер отправляет имя метрикри пассивному агенту как простой текст, без всякого заголовка. Однако агент не ограничен в ответе протым текстом и может использовать структурированную версию протокола если это удобно.
Кроме того, неструктурированные ответы могут отправляться сервером Zabbix в некоторых случаях.
AgentServer| Field Summary | |
|---|---|
static int |
AGENT_PORT
Номер порта агента по умолчанию (10050). |
static String |
HEADER
Четырёхбуквенный заголовок протокола. |
static String |
SEPARATORS
Набор разделителей сообщений. |
static int |
SERVER_PORT
Порт Zabbix-сервера по умолчанию (10051). |
static String |
VERSION
Версия протокола (один байт). |
| Constructor Summary | |
|---|---|
JabbixProtocol()
|
|
| Method Summary | |
|---|---|
static JabbixReader |
getReader(InputStream in)
Возвращает объект, инкапсулирующий процесс чтения из указанного канала. |
static JabbixWriter |
getWriter(OutputStream out)
Возвращает объект, инкапсулирующий процесс записи в указанный канал. |
static boolean |
isSeparator(char c)
Определяет, является ли указанный символ разделителем сообщений. |
static String |
removeSeparators(String str)
Возвращает указанную строку, из которой были удалены все символы-разделители. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static String HEADER
Для указания на Zabbix используется последовательность ZBXD.
public static String VERSION
В настоящее время поддерживается протокол версии 1 (01h).
public static String SEPARATORS
В том случае, если длина сообщения не указана явно в заголовке, конец сообщения определяется посредством символа разделителя. Данная строка содержит последовательность символов этой категории.
В настоящее время символами-разделителями являются:
public static int AGENT_PORT
public static int SERVER_PORT
| Constructor Detail |
|---|
public JabbixProtocol()
| Method Detail |
|---|
public static JabbixReader getReader(InputStream in)
in - входной канал для чтения
public static JabbixWriter getWriter(OutputStream out)
out - выходной канал для записи
public static boolean isSeparator(char c)
c - символ для проверки
JabbixProtocol.SEPARATORSpublic static String removeSeparators(String str)
str - строка
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||