public class JabbixJSONProtocol
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ZBX_PROTO_TAG_AVAILABLE |
static java.lang.String |
ZBX_PROTO_TAG_CLOCK
Определяет время (обновления и/или создания) записи.
|
static java.lang.String |
ZBX_PROTO_TAG_DATA
Ключ записи, содержащей массив записей о метриках.
|
static java.lang.String |
ZBX_PROTO_TAG_DCHECK |
static java.lang.String |
ZBX_PROTO_TAG_DELAY
Определяет период обновления активной метрики, определяемой соответствующей записью.
|
static java.lang.String |
ZBX_PROTO_TAG_DRULE |
static java.lang.String |
ZBX_PROTO_TAG_ERROR |
static java.lang.String |
ZBX_PROTO_TAG_HOST
Определяет имя локального узла агента, ожидаемое сервером.
|
static java.lang.String |
ZBX_PROTO_TAG_HOSTID |
static java.lang.String |
ZBX_PROTO_TAG_INFO
Определяет комментарий к выполненной сервером операции обработки данных или сообщение об ошибке.
|
static java.lang.String |
ZBX_PROTO_TAG_IP |
static java.lang.String |
ZBX_PROTO_TAG_IPMI_AVAILABLE |
static java.lang.String |
ZBX_PROTO_TAG_IPMI_ERROR |
static java.lang.String |
ZBX_PROTO_TAG_KEY
Определяет имя записи.
|
static java.lang.String |
ZBX_PROTO_TAG_KEY_ORIG |
static java.lang.String |
ZBX_PROTO_TAG_LOGEVENTID |
static java.lang.String |
ZBX_PROTO_TAG_LOGLASTSIZE |
static java.lang.String |
ZBX_PROTO_TAG_LOGSEVERITY |
static java.lang.String |
ZBX_PROTO_TAG_LOGSOURCE |
static java.lang.String |
ZBX_PROTO_TAG_LOGTIMESTAMP |
static java.lang.String |
ZBX_PROTO_TAG_MTIME |
static java.lang.String |
ZBX_PROTO_TAG_NODEID |
static java.lang.String |
ZBX_PROTO_TAG_PORT |
static java.lang.String |
ZBX_PROTO_TAG_PROXY |
static java.lang.String |
ZBX_PROTO_TAG_REGEXP |
static java.lang.String |
ZBX_PROTO_TAG_REQUEST
Указывает, что данное сообщение является запросом к Zabbix-серверу.
|
static java.lang.String |
ZBX_PROTO_TAG_RESPONSE
Указывает, что данное сообщение является ответом от Zabbix-сервера.
|
static java.lang.String |
ZBX_PROTO_TAG_SCRIPTID |
static java.lang.String |
ZBX_PROTO_TAG_SNMP_AVAILABLE |
static java.lang.String |
ZBX_PROTO_TAG_SNMP_ERROR |
static java.lang.String |
ZBX_PROTO_TAG_STATUS |
static java.lang.String |
ZBX_PROTO_TAG_TYPE |
static java.lang.String |
ZBX_PROTO_TAG_VALUE
Определяет значение записи.
|
static java.lang.String |
ZBX_PROTO_VALUE_AGENT_DATA
Указывает, что агент отправляет список свежих значений метрик соответствующий ранее запрошенному набору активных проверок (см.
|
static java.lang.String |
ZBX_PROTO_VALUE_AUTO_REGISTRATION_DATA |
static java.lang.String |
ZBX_PROTO_VALUE_DISCOVERY_DATA |
static java.lang.String |
ZBX_PROTO_VALUE_FAILED
Указывает, что сервер не смог успешно произвести ранее запрошенную операцию.
|
static java.lang.String |
ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS
Указывает, что агент запрашивает список активных проверок -- набор метрик (
JabbixActiveMetric ), в которых заинтересован сервер. |
static java.lang.String |
ZBX_PROTO_VALUE_HISTORY_DATA |
static java.lang.String |
ZBX_PROTO_VALUE_HOST_AVAILABILITY |
static java.lang.String |
ZBX_PROTO_VALUE_PROXY_CONFIG |
static java.lang.String |
ZBX_PROTO_VALUE_PROXY_HEARTBEAT |
static java.lang.String |
ZBX_PROTO_VALUE_SENDER_DATA |
static java.lang.String |
ZBX_PROTO_VALUE_SUCCESS
Указывает, что сервер успешно выполнил ранее запрошенную операцию.
|
Constructor and Description |
---|
JabbixJSONProtocol() |
Modifier and Type | Method and Description |
---|---|
static java.util.Collection |
receiveActiveCheckList(JabbixReader reader)
Читает и возвращает список активных проверок.
|
static java.lang.String |
receiveMetricListResponse(JabbixReader reader)
Принимает информацию от сервера в ответ на переданные метрические данные.
|
static void |
requestActiveCheckList(JabbixWriter writer,
java.lang.String hostName)
Запрашивает набор метрик для "активного" мониторинга.
|
static void |
sendMetricList(JabbixWriter writer,
java.lang.String hostName,
java.util.Collection metrics)
Отправляет набор значений метрик на Zabbix-сервер.
|
public static java.lang.String ZBX_PROTO_TAG_CLOCK
public static java.lang.String ZBX_PROTO_TAG_DATA
public static java.lang.String ZBX_PROTO_TAG_REGEXP
public static java.lang.String ZBX_PROTO_TAG_DELAY
public static java.lang.String ZBX_PROTO_TAG_DRULE
public static java.lang.String ZBX_PROTO_TAG_DCHECK
public static java.lang.String ZBX_PROTO_TAG_HOST
public static java.lang.String ZBX_PROTO_TAG_INFO
public static java.lang.String ZBX_PROTO_TAG_IP
public static java.lang.String ZBX_PROTO_TAG_KEY
public static java.lang.String ZBX_PROTO_TAG_KEY_ORIG
public static java.lang.String ZBX_PROTO_TAG_LOGLASTSIZE
public static java.lang.String ZBX_PROTO_TAG_MTIME
public static java.lang.String ZBX_PROTO_TAG_LOGTIMESTAMP
public static java.lang.String ZBX_PROTO_TAG_LOGSOURCE
public static java.lang.String ZBX_PROTO_TAG_LOGSEVERITY
public static java.lang.String ZBX_PROTO_TAG_LOGEVENTID
public static java.lang.String ZBX_PROTO_TAG_PORT
public static java.lang.String ZBX_PROTO_TAG_PROXY
public static java.lang.String ZBX_PROTO_TAG_REQUEST
public static java.lang.String ZBX_PROTO_TAG_RESPONSE
public static java.lang.String ZBX_PROTO_TAG_STATUS
public static java.lang.String ZBX_PROTO_TAG_TYPE
public static java.lang.String ZBX_PROTO_TAG_VALUE
public static java.lang.String ZBX_PROTO_TAG_SCRIPTID
public static java.lang.String ZBX_PROTO_TAG_HOSTID
public static java.lang.String ZBX_PROTO_TAG_NODEID
public static java.lang.String ZBX_PROTO_TAG_AVAILABLE
public static java.lang.String ZBX_PROTO_TAG_SNMP_AVAILABLE
public static java.lang.String ZBX_PROTO_TAG_IPMI_AVAILABLE
public static java.lang.String ZBX_PROTO_TAG_ERROR
public static java.lang.String ZBX_PROTO_TAG_SNMP_ERROR
public static java.lang.String ZBX_PROTO_TAG_IPMI_ERROR
public static java.lang.String ZBX_PROTO_VALUE_FAILED
public static java.lang.String ZBX_PROTO_VALUE_SUCCESS
public static java.lang.String ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS
JabbixActiveMetric
), в которых заинтересован сервер.public static java.lang.String ZBX_PROTO_VALUE_PROXY_CONFIG
public static java.lang.String ZBX_PROTO_VALUE_PROXY_HEARTBEAT
public static java.lang.String ZBX_PROTO_VALUE_DISCOVERY_DATA
public static java.lang.String ZBX_PROTO_VALUE_HOST_AVAILABILITY
public static java.lang.String ZBX_PROTO_VALUE_HISTORY_DATA
public static java.lang.String ZBX_PROTO_VALUE_AUTO_REGISTRATION_DATA
public static java.lang.String ZBX_PROTO_VALUE_SENDER_DATA
public static java.lang.String ZBX_PROTO_VALUE_AGENT_DATA
ActiveAgent
).public static void requestActiveCheckList(JabbixWriter writer, java.lang.String hostName) throws java.io.IOException
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader)
.Сообщение JSON следующей структуры составляется и отправляется на сервер:
{"request": "active checks", "host": "<имя узла>"}
Параметр имя узла
(host) соответствует ожидаемому сервером имени локального узла (см. ZabbixClient.getHostName()
).
writer
- объект, инкапсулирующий процесс записи в сокетhostName
- имя локального узлаjava.io.IOException
- если во время отправки запроса произошло исключение ввода-выводаJabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS
,
JabbixJSONProtocol.ZBX_PROTO_TAG_HOST
public static java.util.Collection receiveActiveCheckList(JabbixReader reader) throws java.io.IOException, JabbixException, JabbixProtocolException
Ожидается сообщение JSON следующей формы (структуры):
{ "response": "success", "data": [ { "key": "<ключ метрики>", "delay": "<период обновления>" }, { "key": "<ключ метрики>", "delay": "<период обновления>" }, ... ] }
Параметр ключ метрики
(key) для каждой записи определяет имя метрики (см. JabbixActiveMetric
) значение которой сервер ожидает получать периодически.
Период обновления значения метрики определятся соответствующим параметром период обновления
.
В том случае, если сервер не в состоянии отправить запрошенный список активных проверок, он отвечает сообщением с указанием статуса неудачной операции и необязательным комметрарием (см. JabbixJSONProtocol.receiveMetricListResponse(JabbixReader)
).
reader
- объект, инкапсулирующий процесс чтения из сокетаJabbixActiveMetric
) представляющий список активных проверокjava.io.IOException
- если во время приёма ответа возникло исключение ввода-выводаJabbixException
- если сервер отправил статус неудачной операцииJabbixProtocolException
- если протокол был нарушен (т.е. было принято неожиданное значение)JabbixJSONProtocol.requestActiveCheckList(JabbixWriter,String)
,
JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_SUCCESS
,
JabbixJSONProtocol.ZBX_PROTO_TAG_DATA
,
JabbixJSONProtocol.ZBX_PROTO_TAG_KEY
,
JabbixJSONProtocol.ZBX_PROTO_TAG_DELAY
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_FAILED
public static void sendMetricList(JabbixWriter writer, java.lang.String hostName, java.util.Collection metrics) throws java.io.IOException
JabbixJSONProtocol.receiveMetricListResponse(JabbixReader)
).Сообщение JSON следующей структуры составляется и отправляется на сервер:
{ "request": "agent data", "data": [ { "host": "<имя узла>", "key": "<ключ метрики>", "value": "<значение метрики>", "clock": <время метрики>" }, { "host": "<имя узла>", "key": "<ключ метрики>", "value": "<значение метрики>", "clock": <время метрики>" }, ... ] "clock": <время сообщения> }
Параметр имя узла
(host) соответствует ожидаемому сервером имени локального узла (см. ZabbixClient.getHostName()
).
Параметр ключ метрики
(key) для каждой записи определяет имя метрики (см. JabbixActiveMetric
) значение которой сервер ожидает получать периодически.
Параметр значние метрики
(value) определяет значение метрики, представляемое в виде текстовой строки. Поскольку значение метрики не отправляется непосредственно после ого обновления, специальный переметр врямя метрики
(clock) в каждой записи используется для того, чтобы явно указать время его обновления (см. JabbixActiveMetric.getUpdated()
).
Полезно, кроме того, указывать и время отправки всего запроса. Параметр верхнего уровня время сообщения
(clock) используется для этой цели.
writer
- объект, инкапсулирующий процесс записи в сокетhostName
- имя локального узлаmetrics
- набор метрикjava.io.IOException
- если во время отправки данных возникло исключение ввода-выводаJabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_AGENT_DATA
,
JabbixJSONProtocol.ZBX_PROTO_TAG_HOST
,
JabbixJSONProtocol.ZBX_PROTO_TAG_KEY
,
JabbixJSONProtocol.ZBX_PROTO_TAG_VALUE
,
JabbixJSONProtocol.ZBX_PROTO_TAG_CLOCK
,
JabbixJSONProtocol.ZBX_PROTO_TAG_DATA
public static java.lang.String receiveMetricListResponse(JabbixReader reader) throws java.io.IOException, JabbixException, JabbixProtocolException
Ожидается сообщение JSON следующей формы (структуры):
{ "response": "<статус>", "info": "<комментарий>" }
В случае успеха параметр статус
(response) указывается как success
. А параметр комментарий
(info) содержит комментарий к выполненной обработке данных в понятной для человека форме.
В случае ошибки статус может быть установлен как failed
или в любое другое значение (отображающее неудачу). Переметр комментарий
может присутствовать или быть опущен.
reader
- объект, инкапсулирующий процесс чтения из сокетаjava.io.IOException
- если во время приёма ответа возникло исключение ввода-выводаJabbixException
- если сервер отправил статус неудачной операцииJabbixProtocolException
- если протокол был нарушен (т.е. было принято неожиданное значение)JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_SUCCESS
,
JabbixJSONProtocol.ZBX_PROTO_TAG_INFO
,
JabbixJSONProtocol.ZBX_PROTO_VALUE_FAILED