Обмен данными между сервером - прокси основывается на 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
}
сервер→прокси: