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_HOSTpublic 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_FAILEDpublic 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_DATApublic 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