|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.altlinux.jabbix.JabbixJSONProtocol
public class JabbixJSONProtocol
Константы и функции для основанного на JSON протокола Zabbix-агента.
| Field Summary | |
|---|---|
static String |
ZBX_PROTO_TAG_AVAILABLE
|
static String |
ZBX_PROTO_TAG_CLOCK
Определяет время (обновления и/или создания) записи. |
static String |
ZBX_PROTO_TAG_DATA
Ключ записи, содержащей массив записей о метриках. |
static String |
ZBX_PROTO_TAG_DCHECK
|
static String |
ZBX_PROTO_TAG_DELAY
Определяет период обновления активной метрики, определяемой соответствующей записью. |
static String |
ZBX_PROTO_TAG_DRULE
|
static String |
ZBX_PROTO_TAG_ERROR
|
static String |
ZBX_PROTO_TAG_HOST
Определяет имя локального узла агента, ожидаемое сервером. |
static String |
ZBX_PROTO_TAG_HOSTID
|
static String |
ZBX_PROTO_TAG_INFO
Определяет комментарий к выполненной сервером операции обработки данных или сообщение об ошибке. |
static String |
ZBX_PROTO_TAG_IP
|
static String |
ZBX_PROTO_TAG_IPMI_AVAILABLE
|
static String |
ZBX_PROTO_TAG_IPMI_ERROR
|
static String |
ZBX_PROTO_TAG_KEY
Определяет имя записи. |
static String |
ZBX_PROTO_TAG_KEY_ORIG
|
static String |
ZBX_PROTO_TAG_LOGEVENTID
|
static String |
ZBX_PROTO_TAG_LOGLASTSIZE
|
static String |
ZBX_PROTO_TAG_LOGSEVERITY
|
static String |
ZBX_PROTO_TAG_LOGSOURCE
|
static String |
ZBX_PROTO_TAG_LOGTIMESTAMP
|
static String |
ZBX_PROTO_TAG_MTIME
|
static String |
ZBX_PROTO_TAG_NODEID
|
static String |
ZBX_PROTO_TAG_PORT
|
static String |
ZBX_PROTO_TAG_PROXY
|
static String |
ZBX_PROTO_TAG_REGEXP
|
static String |
ZBX_PROTO_TAG_REQUEST
Указывает, что данное сообщение является запросом к Zabbix-серверу. |
static String |
ZBX_PROTO_TAG_RESPONSE
Указывает, что данное сообщение является ответом от Zabbix-сервера. |
static String |
ZBX_PROTO_TAG_SCRIPTID
|
static String |
ZBX_PROTO_TAG_SNMP_AVAILABLE
|
static String |
ZBX_PROTO_TAG_SNMP_ERROR
|
static String |
ZBX_PROTO_TAG_STATUS
|
static String |
ZBX_PROTO_TAG_TYPE
|
static String |
ZBX_PROTO_TAG_VALUE
Определяет значение записи. |
static String |
ZBX_PROTO_VALUE_AGENT_DATA
Указывает, что агент отправляет список свежих значений метрик соответствующий ранее запрошенному набору активных проверок (см. |
static String |
ZBX_PROTO_VALUE_AUTO_REGISTRATION_DATA
|
static String |
ZBX_PROTO_VALUE_DISCOVERY_DATA
|
static String |
ZBX_PROTO_VALUE_FAILED
Указывает, что сервер не смог успешно произвести ранее запрошенную операцию. |
static String |
ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS
Указывает, что агент запрашивает список активных проверок -- набор метрик ( JabbixActiveMetric), в которых заинтересован сервер. |
static String |
ZBX_PROTO_VALUE_HISTORY_DATA
|
static String |
ZBX_PROTO_VALUE_HOST_AVAILABILITY
|
static String |
ZBX_PROTO_VALUE_PROXY_CONFIG
|
static String |
ZBX_PROTO_VALUE_PROXY_HEARTBEAT
|
static String |
ZBX_PROTO_VALUE_SENDER_DATA
|
static String |
ZBX_PROTO_VALUE_SUCCESS
Указывает, что сервер успешно выполнил ранее запрошенную операцию. |
| Constructor Summary | |
|---|---|
JabbixJSONProtocol()
|
|
| Method Summary | |
|---|---|
static Collection |
receiveActiveCheckList(JabbixReader reader)
Читает и возвращает список активных проверок. |
static String |
receiveMetricListResponse(JabbixReader reader)
Принимает информацию от сервера в ответ на переданные метрические данные. |
static void |
requestActiveCheckList(JabbixWriter writer,
String hostName)
Запрашивает набор метрик для "активного" мониторинга. |
static void |
sendMetricList(JabbixWriter writer,
String hostName,
Collection metrics)
Отправляет набор значений метрик на Zabbix-сервер. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static String ZBX_PROTO_TAG_CLOCK
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection),
JabbixJSONProtocol.ZBX_PROTO_TAG_KEYpublic static String ZBX_PROTO_TAG_DATA
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection)public static String ZBX_PROTO_TAG_REGEXP
public static String ZBX_PROTO_TAG_DELAY
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.ZBX_PROTO_TAG_KEY,
JabbixActiveMetricpublic static String ZBX_PROTO_TAG_DRULE
public static String ZBX_PROTO_TAG_DCHECK
public static String ZBX_PROTO_TAG_HOST
JabbixJSONProtocol.requestActiveCheckList(JabbixWriter, String),
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection)public static String ZBX_PROTO_TAG_INFO
JabbixJSONProtocol.receiveMetricListResponse(JabbixReader),
JabbixJSONProtocol.requestActiveCheckList(JabbixWriter, String)public static String ZBX_PROTO_TAG_IP
public static String ZBX_PROTO_TAG_KEY
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection),
JabbixJSONProtocol.ZBX_PROTO_TAG_DELAY,
JabbixJSONProtocol.ZBX_PROTO_TAG_CLOCK,
JabbixJSONProtocol.ZBX_PROTO_TAG_VALUE,
JabbixActiveMetricpublic static String ZBX_PROTO_TAG_KEY_ORIG
public static String ZBX_PROTO_TAG_LOGLASTSIZE
public static String ZBX_PROTO_TAG_MTIME
public static String ZBX_PROTO_TAG_LOGTIMESTAMP
public static String ZBX_PROTO_TAG_LOGSOURCE
public static String ZBX_PROTO_TAG_LOGSEVERITY
public static String ZBX_PROTO_TAG_LOGEVENTID
public static String ZBX_PROTO_TAG_PORT
public static String ZBX_PROTO_TAG_PROXY
public static String ZBX_PROTO_TAG_REQUEST
JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE,
JabbixJSONProtocol.requestActiveCheckList(JabbixWriter, String),
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection),
JabbixJSONProtocol.ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS,
JabbixJSONProtocol.ZBX_PROTO_VALUE_AGENT_DATApublic static String ZBX_PROTO_TAG_RESPONSE
JabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST,
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.receiveMetricListResponse(JabbixReader),
JabbixJSONProtocol.ZBX_PROTO_VALUE_SUCCESS,
JabbixJSONProtocol.ZBX_PROTO_VALUE_FAILEDpublic static String ZBX_PROTO_TAG_STATUS
public static String ZBX_PROTO_TAG_TYPE
public static String ZBX_PROTO_TAG_VALUE
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection),
JabbixJSONProtocol.ZBX_PROTO_TAG_KEY,
JabbixActiveMetricpublic static String ZBX_PROTO_TAG_SCRIPTID
public static String ZBX_PROTO_TAG_HOSTID
public static String ZBX_PROTO_TAG_NODEID
public static String ZBX_PROTO_TAG_AVAILABLE
public static String ZBX_PROTO_TAG_SNMP_AVAILABLE
public static String ZBX_PROTO_TAG_IPMI_AVAILABLE
public static String ZBX_PROTO_TAG_ERROR
public static String ZBX_PROTO_TAG_SNMP_ERROR
public static String ZBX_PROTO_TAG_IPMI_ERROR
public static String ZBX_PROTO_VALUE_FAILED
JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE,
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.receiveMetricListResponse(JabbixReader)public static String ZBX_PROTO_VALUE_SUCCESS
JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE,
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader),
JabbixJSONProtocol.receiveMetricListResponse(JabbixReader)public static String ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS
JabbixActiveMetric), в которых заинтересован сервер.
JabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST,
JabbixJSONProtocol.requestActiveCheckList(JabbixWriter, String)public static String ZBX_PROTO_VALUE_PROXY_CONFIG
public static String ZBX_PROTO_VALUE_PROXY_HEARTBEAT
public static String ZBX_PROTO_VALUE_DISCOVERY_DATA
public static String ZBX_PROTO_VALUE_HOST_AVAILABILITY
public static String ZBX_PROTO_VALUE_HISTORY_DATA
public static String ZBX_PROTO_VALUE_AUTO_REGISTRATION_DATA
public static String ZBX_PROTO_VALUE_SENDER_DATA
public static String ZBX_PROTO_VALUE_AGENT_DATA
ActiveAgent).
JabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST,
JabbixJSONProtocol.sendMetricList(JabbixWriter, String, Collection)| Constructor Detail |
|---|
public JabbixJSONProtocol()
| Method Detail |
|---|
public static void requestActiveCheckList(JabbixWriter writer,
String hostName)
throws IOException
JabbixJSONProtocol.receiveActiveCheckList(JabbixReader).Сообщение JSON следующей структуры составляется и отправляется на сервер:
{"request": "active checks",
"host": "<имя узла>"}
Параметр имя узла (host) соответствует ожидаемому сервером имени локального узла (см. ZabbixClient.getHostName()).
writer - объект, инкапсулирующий процесс записи в сокетhostName - имя локального узла
IOException - если во время отправки запроса произошло исключение ввода-выводаJabbixJSONProtocol.ZBX_PROTO_TAG_REQUEST,
JabbixJSONProtocol.ZBX_PROTO_VALUE_GET_ACTIVE_CHECKS,
JabbixJSONProtocol.ZBX_PROTO_TAG_HOST
public static Collection receiveActiveCheckList(JabbixReader reader)
throws IOException,
JabbixException,
JabbixProtocolException
Ожидается сообщение JSON следующей формы (структуры):
{
"response": "success",
"data":
[
{ "key": "<ключ метрики>",
"delay": "<период обновления>" },
{ "key": "<ключ метрики>",
"delay": "<период обновления>" },
...
]
}
Параметр ключ метрики (key) для каждой записи определяет имя метрики (см. JabbixActiveMetric) значение которой сервер ожидает получать периодически.
Период обновления значения метрики определятся соответствующим параметром период обновления.
В том случае, если сервер не в состоянии отправить запрошенный список активных проверок, он отвечает сообщением с указанием статуса неудачной операции и необязательным комметрарием (см. JabbixJSONProtocol.receiveMetricListResponse(JabbixReader)).
reader - объект, инкапсулирующий процесс чтения из сокета
JabbixActiveMetric) представляющий список активных проверок
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,
String hostName,
Collection metrics)
throws 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 - набор метрик
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 String receiveMetricListResponse(JabbixReader reader)
throws IOException,
JabbixException,
JabbixProtocolException
Ожидается сообщение JSON следующей формы (структуры):
{ "response": "<статус>",
"info": "<комментарий>" }
В случае успеха параметр статус (response) указывается как success. А параметр комментарий (info) содержит комментарий к выполненной обработке данных в понятной для человека форме.
В случае ошибки статус может быть установлен как failed или в любое другое значение (отображающее неудачу). Переметр комментарий может присутствовать или быть опущен.
reader - объект, инкапсулирующий процесс чтения из сокета
IOException - если во время приёма ответа возникло исключение ввода-вывода
JabbixException - если сервер отправил статус неудачной операции
JabbixProtocolException - если протокол был нарушен (т.е. было принято неожиданное значение)JabbixJSONProtocol.ZBX_PROTO_TAG_RESPONSE,
JabbixJSONProtocol.ZBX_PROTO_VALUE_SUCCESS,
JabbixJSONProtocol.ZBX_PROTO_TAG_INFO,
JabbixJSONProtocol.ZBX_PROTO_VALUE_FAILED
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||