Обмен данными между сервером - прокси основывается на JSON формате.
Запрос proxy config отправляется сервером для предоставления прокси его данных конфигурации. Этот запрос отправляется каждые ProxyConfigFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |||
|---|---|---|---|---|---|
| сервер→прокси: | |||||
| request | строка | 'proxy config' | |||
| <таблица> | объект | один или несколько объектов с данными из <таблицы> | |||
| fields | массив | массив имен полей | |||
| - | строка | имя поля | |||
| data | массив | массив строк | |||
| - | массив | массив колонок | |||
| - | строка,число | значение колонки с типом, который зависит от типа колонки в схеме базы данных | |||
| прокси→сервер: | |||||
| response | строка | информация успешности запроса ('success' или 'failed') | |||
Пример:
сервер→прокси:
{ "globalmacro":{ "fields":[ "globalmacroid", "macro", "value" ], "data":[ [ 2, "{$SNMP_COMMUNITY}", "public" ] ] }, "hosts":{ "fields":[ "hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk" ], "data":[ [ 10001, "Template OS Linux", 3, -1, 2, "", "", "Template OS Linux", 1, 1, "", "", "", "" ], [ 10050, "Template App Zabbix Agent", 3, -1, 2, "", "", "Template App Zabbix Agent", 1, 1, "", "", "", "" ], [ 10105, "Logger", 0, -1, 2, "", "", "Logger", 1, 1, "", "", "", "" ] ] }, "interface":{ "fields":[ "interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "bulk" ], "data":[ [ 2, 10105, 1, 1, 1, "127.0.0.1", "", "10050", 1 ] ] }, ... }прокси→сервер:
Запрос host availability используется для получения данных о доступности узлов сети с прокси. Этот запрос отправляется каждые ProxyDataFrequency (параметр конфигурации сервер) секунды.
| имя | тип значения | описание | |
|---|---|---|---|
| сервер→прокси: | |||
| request | строка | 'host availability' | |
| прокси→сервер: | |||
| data | массив | массив объектов с данными о доступности узлов сети | |
| hostid | число | идентификатор узла сети | |
| available | число | доступность Zabbix агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| error | строка | сообщение об ошибке Zabbix агента или пустая строка | |
| snmp_available | число | доступность SNMP агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| snmp_error | строка | сообщение об ошибке SNMP агента или пустая строка | |
| ipmi_available | число | доступность IPMI агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| ipmi_error | строка | сообщение об ошибке IMPI агента или пустая строка | |
| jmx_available | число | доступность JMX агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| jmx_error | строка | сообщение об ошибке JMX агента или пустая строка | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
сервер→прокси:
прокси→сервер:
{ "data": [ { "hostid": 10106, "available": 1, "error": "", "snmp_available": 0, "snmp_error": "", "ipmi_available": 0, "ipmi_error": "", "jmx_available": 0, "jmx_error": "" }, { "hostid": 10107, "available": 1, "error": "", "snmp_available": 0, "snmp_error": "", "ipmi_available": 0, "ipmi_error": "", "jmx_available": 0, "jmx_error": "" } ] }сервер→прокси:
Запрос history data используется данных истории по элементам данных с прокси. Этот запрос отправляется каждые ProxyDataFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| сервер→прокси: | |||
| request | строка | 'history data' | |
| прокси→сервер: | |||
| data | массив | массив объектов данных истории | |
| host | число | идентификатор прокси | |
| key | число | ключ элемента данных | |
| clock | число | штамп времени значения элемента данных (секунды) | |
| ns | число | штамп времени значения элемента данных (наносекунды) | |
| value | строка | (опционален) значение элемента данных | |
| timestamp | число | (опционален) штамп времени элементов данных журнального типа | |
| source | строка | (опционален) значение источника eventlog элемента данных | |
| severity | число | (опционален) значение важности eventlog элемента данных | |
| eventid | число | (опционален) значение eventid eventlog элемента данных | |
| state | строка | (опционален) статус элемента данных 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED | |
| lastlogsize | число | (опционален) последний известный размер журнала элемента данных журнального типа | |
| mtime | число | (опционален) время модификации элемента данных журнального типа | |
| clock | число | штамп времени передачи данных (секунды) | |
| ns | число | штамп времени передачи данных (наносекунды) | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
сервер→прокси:
прокси→сервер:
{ "data":[ { "host":"Logger1", "key":"system.cpu.switches", "clock":1478609647, "ns":332510044, "value":"52956612" }, { "host":"Logger2", "key":"net.if.in[vboxnet0]", "clock":1478609647, "ns":330690279, "state":1, "value":"Cannot find information for this network interface in /proc/net/dev." } ], "clock":1478609648, "ns":157729208 }сервер→прокси:
Запрос discovery data используется для получения данных о сетевых обнаружениях с прокси. Этот запрос отправляется каждые ProxyDataFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| сервер→прокси: | |||
| request | строка | 'discovery data' | |
| прокси→сервер: | |||
| data | массив | массив объектов данных обнаружения | |
| clock | число | штамп времени данных обнаружения | |
| druleid | число | идентификатор правила обнаружения | |
| dcheckid | число | идентификатор проверки обнаружения или null для данных правила обнаружения | |
| type | число | тип проверки обнаружения: -1 данные правила обнаружения 0, SVC_SSH - Проверка SSH сервиса 1, SVC_LDAP - Проверка LDAP сервиса 2, SVC_SMTP - Проверка SMTP сервиса 3, SVC_FTP - Проверка FTP сервиса 4, SVC_HTTP - Проверка HTTP сервиса 5, SVC_POP - Проверка POP сервиса 6, SVC_NNTP - Проверка NNTP сервиса 7, SVC_IMAP - Проверка IMAP сервиса 8, SVC_TCP - Проверка доступности TCP порта 9, SVC_AGENT - Zabbix агент 10, SVC_SNMPv1 - SNMPv1 агент 11, SVC_SNMPv2 - SNMPv2 агент 12, SVC_ICMPPING - ICMP пинг 13, SVC_SNMPv3 - SNMPv3 агент 14, SVC_HTTPS - Проверка HTTPS сервиса 15, SVC_TELNET - Проверка доступности Telnet | |
| ip | строка | IP адрес хоста | |
| dns | строка | DNS имя хоста | |
| port | число | (опционален) номер порта сервиса | |
| key_ | строка | (опционален) ключ элемента данных для проверки обнаружения с типом 9 SVC_AGENT | |
| value | строка | (опционален) полученное значение от сервиса, может быть пустым для большинства сервисов | |
| status | число | (опционален) состояние сервиса: 0, DOBJECT_STATUS_UP - Сервис ДОСТУПЕН 1, DOBJECT_STATUS_DOWN - Сервис НЕДОСТУПЕН | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
сервер→прокси:
прокси→сервер:
{ "data":[ { "clock":1478608764, "drule":2, "dcheck":3, "type":12, "ip":"10.3.0.10", "dns":"vdebian", "status":1 }, { "clock":1478608764, "drule":2, "dcheck":null, "type":-1, "ip":"10.3.0.10", "dns":"vdebian", "status":1 } ], "clock":1478608768 }сервер→прокси:
Запрос auto registration используется для получения данных авторегистрации агентов с прокси. Этот запрос отправляется каждые ProxyDataFrequency (параметр конфигурации сервера) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| сервер→прокси: | |||
| request | строка | 'auto registration' | |
| прокси→сервер: | |||
| data | массив | массив объектов данных авторегистрации | |
| clock | число | штамп времени данных авторегистрации | |
| host | строка | имя хоста | |
| ip | строка | (опционален) IP адрес хоста | |
| dns | строка | (опционален) разрешенное DNS имя с IP адреса | |
| port | строка | (опционален) порт хоста | |
| host_metadata | строка | (опционален) метаданные хоста отправленные агентом (на основе HostMetadata или HostMetadataItem параметров конфигурации агента) | |
| сервре→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
сервер→прокси:
сервер→прокси:
{ "data": [ { "clock": 1478608371, "host": "Logger1", "ip": "10.3.0.1", "dns": "localhost", "port": "10050" }, { "clock": 1478608381, "host": "Logger2", "ip": "10.3.0.2", "dns": "localhost", "port": "10050" } ], "clock": 1478608390 }сервер→прокси:
Запрос proxy heartbeat отправляется прокси для сообщения что этот прокси работает. Этот запрос отправляется каждые HeartbeatFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'proxy heartbeat' | |
| host | строка | имя прокси | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
прокси→сервер:
сервер→прокси:
Запрос proxy config отправляется прокси для получения данных конфигурации прокси. Этот запрос отправляется каждые ConfigFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |||
|---|---|---|---|---|---|
| прокси→сервер: | |||||
| request | строка | 'proxy config' | |||
| host | строка | имя прокси | |||
| сервер→прокси: | |||||
| request | строка | 'proxy config' | |||
| <таблица> | объект | один или несколько объектов с данными из <таблицы> | |||
| fields | массив | массив имен полей | |||
| - | строка | имя поля | |||
| data | массив | массив строк | |||
| - | массив | массив колонок | |||
| - | строка,число | значение колонки с типом, который зависит от типа колонки в схеме базы данных | |||
| прокси→сервер: | |||||
| response | строка | информация успешности запроса ('success' или 'failed') | |||
Пример:
прокси→сервер:
сервер→прокси:
{ "globalmacro":{ "fields":[ "globalmacroid", "macro", "value" ], "data":[ [ 2, "{$SNMP_COMMUNITY}", "public" ] ] }, "hosts":{ "fields":[ "hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk" ], "data":[ [ 10001, "Template OS Linux", 3, -1, 2, "", "", "Template OS Linux", 1, 1, "", "", "", "" ], [ 10050, "Template App Zabbix Agent", 3, -1, 2, "", "", "Template App Zabbix Agent", 1, 1, "", "", "", "" ], [ 10105, "Logger", 0, -1, 2, "", "", "Logger", 1, 1, "", "", "", "" ] ] }, "interface":{ "fields":[ "interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "bulk" ], "data":[ [ 2, 10105, 1, 1, 1, "127.0.0.1", "", "10050", 1 ] ] }, ... }прокси→сервер:
Запрос host availability отправляется прокси для предоставления данных о доступности узлов сети. Этот запрос отправляется каждые DataSenderFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'host availability' | |
| host | строка | имя прокси | |
| data | массив | массив объектов с данными о доступности узлов сети | |
| hostid | число | идентификатор узла сети | |
| available | число | доступность Zabbix агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| error | строка | сообщение об ошибке Zabbix агента или пустая строка | |
| snmp_available | число | доступность SNMP агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| snmp_error | строка | сообщение об ошибке SNMP агента или пустая строка | |
| ipmi_available | число | доступность IPMI агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| ipmi_error | строка | сообщение об ошибке IMPI агента или пустая строка | |
| jmx_available | число | доступность JMX агента 0, HOST_AVAILABLE_UNKNOWN - неизвестно 1, HOST_AVAILABLE_TRUE - доступен 2, HOST_AVAILABLE_FALSE - недоступен | |
| jmx_error | строка | сообщение об ошибке JMX агента или пустая строка | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
прокси→сервер:
{ "request": "host availability", "host": "Proxy #12", "data": [ { "hostid": 10106, "available": 1, "error": "", "snmp_available": 0, "snmp_error": "", "ipmi_available": 0, "ipmi_error": "", "jmx_available": 0, "jmx_error": "" }, { "hostid": 10107, "available": 1, "error": "", "snmp_available": 0, "snmp_error": "", "ipmi_available": 0, "ipmi_error": "", "jmx_available": 0, "jmx_error": "" } ] }сервер→прокси:
Запрос history data отправляется прокси для предоставления данных истории по элементам данных. Этот запрос отправляется каждые DataSenderFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'history data' | |
| host | строка | имя прокси | |
| data | массив | массив объектов данных истории | |
| host | число | идентификатор прокси | |
| key | число | ключ элемента данных | |
| clock | число | штамп времени значения элемента данных (секунды) | |
| ns | число | штамп времени значения элемента данных (наносекунды) | |
| value | строка | (опционален) значение элемента данных | |
| timestamp | число | (опционален) штамп времени элементов данных журнального типа | |
| source | строка | (опционален) значение источника eventlog элемента данных | |
| severity | число | (опционален) значение важности eventlog элемента данных | |
| eventid | число | (опционален) значение eventid eventlog элемента данных | |
| state | строка | (опционален) статус элемента данных 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED | |
| lastlogsize | число | (опционален) последний известный размер журнала элемента данных журнального типа | |
| mtime | число | (опционален) время модификации элемента данных журнального типа | |
| clock | число | штамп времени передачи данных (секунды) | |
| ns | число | штамп времени передачи данных (наносекунды) | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
прокси→сервер:
{ "request": "history data", "host": "Proxy #12", "data":[ { "host":"Logger1", "key":"system.cpu.switches", "clock":1478609647, "ns":332510044, "value":"52956612" }, { "host":"Logger2", "key":"net.if.in[vboxnet0]", "clock":1478609647, "ns":330690279, "state":1, "value":"Cannot find information for this network interface in /proc/net/dev." } ], "clock":1478609648, "ns":157729208 }сервер→прокси:
Запрос discovery data отправляется прокси для предоставления данных о сетевых обнаружениях. Этот запрос отправляется каждые DataSenderFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'discovery data' | |
| host | строка | имя прокси | |
| data | массив | массив объектов данных обнаружения | |
| clock | число | штамп времени данных обнаружения | |
| druleid | число | идентификатор правила обнаружения | |
| dcheckid | число | идентификатор проверки обнаружения или null для данных правила обнаружения | |
| type | число | тип проверки обнаружения: -1 данные правила обнаружения 0, SVC_SSH - Проверка SSH сервиса 1, SVC_LDAP - Проверка LDAP сервиса 2, SVC_SMTP - Проверка SMTP сервиса 3, SVC_FTP - Проверка FTP сервиса 4, SVC_HTTP - Проверка HTTP сервиса 5, SVC_POP - Проверка POP сервиса 6, SVC_NNTP - Проверка NNTP сервиса 7, SVC_IMAP - Проверка IMAP сервиса 8, SVC_TCP - Проверка доступности TCP порта 9, SVC_AGENT - Zabbix агент 10, SVC_SNMPv1 - SNMPv1 агент 11, SVC_SNMPv2 - SNMPv2 агент 12, SVC_ICMPPING - ICMP пинг 13, SVC_SNMPv3 - SNMPv3 агент 14, SVC_HTTPS - Проверка HTTPS сервиса 15, SVC_TELNET - Проверка доступности Telnet | |
| ip | строка | IP адрес хоста | |
| dns | строка | DNS имя хоста | |
| port | число | (опционален) номер порта сервиса | |
| key_ | строка | (опционален) ключ элемента данных для проверки обнаружения с типом 9 SVC_AGENT | |
| value | строка | (опционален) полученное значение от сервиса, может быть пустым для большинства сервисов | |
| status | число | (опционален) состояние сервиса: 0, DOBJECT_STATUS_UP - Сервис ДОСТУПЕН 1, DOBJECT_STATUS_DOWN - Сервис НЕДОСТУПЕН | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
Пример:
прокси→сервер:
{ "request": "discovery data", "host": "Proxy #12", "data":[ { "clock":1478608764, "drule":2, "dcheck":3, "type":12, "ip":"10.3.0.10", "dns":"vdebian", "status":1 }, { "clock":1478608764, "drule":2, "dcheck":null, "type":-1, "ip":"10.3.0.10", "dns":"vdebian", "status":1 } ], "clock":1478608768 }сервер→прокси:
Запрос auto registration отправляется прокси для предоставления данных авторегистрации агентов с прокси. Этот запрос отправляется каждые DataSenderFrequency (параметр конфигурации прокси) секунд.
| имя | тип значения | описание | |
|---|---|---|---|
| прокси→сервер: | |||
| request | строка | 'auto registration' | |
| host | строка | имя прокси | |
| data | массив | массив объектов данных авторегистрации | |
| clock | число | штамп времени данных авторегистрации | |
| host | строка | имя хоста | |
| ip | строка | (опционален) IP адрес хоста | |
| dns | строка | (опционален) разрешенное DNS имя с IP адреса | |
| port | строка | (опционален) порт хоста | |
| host_metadata | строка | (опционален) метаданные хоста отправленные агентом (на основе HostMetadata или HostMetadataItem параметров конфигурации агента) | |
| сервер→прокси: | |||
| response | строка | информация успешности запроса ('success' или 'failed') | |
прокси→сервер:
{ "request": "auto registration", "host": "Proxy #12", "data": [ { "clock": 1478608371, "host": "Logger1", "ip": "10.3.0.1", "dns": "localhost", "port": "10050" }, { "clock": 1478608381, "host": "Logger2", "ip": "10.3.0.2", "dns": "localhost", "port": "10050" } ], "clock": 1478608390 }сервер→прокси: