Обмен данными сервер — прокси основывается на формате JSON.
Сообщения запроса и ответа должны начинаться с заголовка и длины данных.
Сервер сначала отсылает пустой запрос proxy config
. Этот запрос отсылается каждые ProxyConfigFrequency
секунд (параметр конфигурации сервера).
Прокси отвечает, включая в ответ текущую версию прокси, токен сессии и ревизию конфигурации. Сервер отвечает данными конфигурации, которые необходимо обновить.
имя | тип значения | описание | ||||
---|---|---|---|---|---|---|
сервер→прокси: | ||||||
request | строка | «proxy config» | ||||
proxy→server: | ||||||
version | строка | Версия прокси (<major>.<minor>.<build>). | ||||
session | строка | Токен сессии конфигурации прокси. | ||||
config_revision | число | Ревизия конфигурации прокси. | ||||
server→proxy: | ||||||
full_sync | число | 1 — если пересылаются полные данные конфигурации; отсутствует — в противном случае (опционально). | ||||
data | массив | Объект табличных данных. Отсутствует, если конфигурация не менялась (опционально). | ||||
<таблица> | объект | Один или более объектов с данными <таблицы> (опционально, в зависимости от изменений). | ||||
fields | массив | Массив имён полей. | ||||
- | строка | Имя поля. | ||||
data | массив | Массив строк. | ||||
- | массив | Массив столбцов. | ||||
- | строка,число | Значение столбца с типом, зависящим от типа столбца в схеме базы данных. | ||||
macro.secrets | объект | Информация о скрытых макросах, отсутствует, если не было изменений в макросах хранилища (опционально). | ||||
config_revision | число | Ревизия кэша конфигурации — отсылается с данными конфигурации (опционально). | ||||
del_hostids | массив | Массив идентификаторов узлов сети, которые были удалены (опционально). | ||||
- | число | Идентификатор узла сети. | ||||
del_macro_hostids | массив | Массив идентификаторов узлов сети со всеми удалёнными макросами (опционально). | ||||
- | число | Идентификатор узла сети. | ||||
прокси→сервер: | ||||||
response | строка | Информация об успешности запроса («success» или «failed»). | ||||
version | строка | Версия прокси (<major>.<minor>.<build>). |
Пример:
сервер→прокси:
сервер→прокси:
прокси→сервер:
сервер→прокси:
{
"full_sync": 1,
"data": {
"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": [
[10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
]
},
"interface": {
"fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
"data": [
[1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
]
},
"interface_snmp": {
"fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
"data": []
},
"host_inventory": {
"fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
"data": [
[10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
]
},
"items": {
"fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
"data": [
[44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
[44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
]
},
"item_rtdata": {
"fields": ["itemid", "lastlogsize", "mtime"],
"data": [
[44161, 0, 0],
[44162, 0, 0]
]
},
"item_preproc": {
"fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
"data": []
},
"item_parameter": {
"fields": ["item_parameterid", "itemid", "name", "value"],
"data": []
},
"globalmacro": {
"fields": ["globalmacroid", "macro", "value", "type"],
"data": [
[2, "{$SNMP_COMMUNITY}", "public", 0]
]
},
"hosts_templates": {
"fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
"data": []
},
"hostmacro": {
"fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
"data": [
[5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
]
},
"drules": {
"fields": ["druleid", "name", "iprange", "delay"],
"data": [
[2, "Local network", "127.0.0.1", "10s"]
]
},
"dchecks": {
"fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
"data": [
[2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
]
},
"regexps": {
"fields": ["regexpid", "name"],
"data": [
[1, "File systems for discovery"],
[2, "Network interfaces for discovery"],
[3, "Storage devices for SNMP discovery"],
[4, "Windows service names for discovery"],
[5, "Windows service startup states for discovery"]
]
},
"expressions": {
"fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
"data": [
[1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
[3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
[5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
[6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
[7, 2, "^Software Loopback Interface", 4, ",", 1],
[8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
[9, 2, "^NULL[0-9.]*$", 4, ",", 1],
[10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
[11, 2, "^[Ss]ystem$", 4, ",", 1],
[12, 2, "^Nu[0-9.]*$", 4, ",", 1]
]
},
"config": {
"fields": ["configid", "snmptrap_logging", "hk_history_global", "hk_history", "autoreg_tls_accept"],
"data": [
[1, 1, 0, "90d", 1]
]
},
"httptest": {
"fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
"data": []
},
"httptestitem": {
"fields": ["httptestitemid", "httptestid", "itemid", "type"],
"data": []
},
"httptest_field": {
"fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
"data": []
},
"httpstep": {
"fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
"data": []
},
"httpstepitem": {
"fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
"data": []
},
"httpstep_field": {
"fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
"data": []
},
"config_autoreg_tls": {
"fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
"data": [
[1, "", ""]
]
}
},
"macro.secrets": {
"AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
"Content": "738"
}
},
"config_revision": 2
}
прокси→сервер:
Запрос proxy data
используется для получения от прокси данных о доступности интерфейсов узлов сети, а также данных истории, обнаружений и авторегистрации. Этот запрос отсылается каждые ProxyDataFrequency
секунд (параметр конфигурации сервера).
имя | тип значения | описание | |
---|---|---|---|
сервер→прокси: | |||
request | строка | «proxy data» | |
прокси→сервер: | |||
session | строка | Токен сессии данных. | |
interface availability | массив | (опционально) Массив объектов данных о доступности интерфейсов. | |
interfaceid | число | Идентификатор интерфейса. | |
available | число | Доступность интерфейса: 0, INTERFACE_AVAILABLE_UNKNOWN — неизвестно 1, INTERFACE_AVAILABLE_TRUE — доступен 2, INTERFACE_AVAILABLE_FALSE — недоступен |
|
error | строка | Сообщение об ошибке интерфейса либо пустая строка. | |
history data | массив | (опционально) Массив объектов данных истории. | |
itemid | число | Идентификатор элемента данных. | |
clock | число | Отметка времени элемента данных (секунды). | |
ns | число | Отметка времени элемента данных (наносекунды). | |
value | строка | (опционально) Значение элемента данных. | |
id | число | Идентификатор значения (возрастающий счётчик, уникальный в пределах одной сессии данных). | |
timestamp | число | (опционально) Отметка времени (timestamp) элементов данных журнального типа. | |
source | строка | (опционально) Источник (source) элемента данных журнального типа. | |
severity | число | (опционально) Важность (severity) элемента данных журнального типа. | |
eventid | число | (опционально) Идентификатор (eventid) элемента данных журнального типа. | |
state | строка | (опционально) Состояние элемента данных: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
lastlogsize | число | (опционально) Последний размер файла журнала (lastlogsize) элемента данных журнального типа. | |
mtime | число | (опционально) Отметка времени последнего обновления (mtime) элемента данных журнального типа. | |
discovery 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 — Сервис работает (UP) 1, DOBJECT_STATUS_DOWN — Сервис не работает (DOWN) |
|
auto registration | массив | (опционально) Массив объектов данных авторегистрации. | |
clock | число | Отметка времени данных авторегистрации. | |
host | строка | Имя узла сети. | |
ip | строка | (опционально) IP адрес узла сети. | |
dns | строка | (опционально) DNS имя, отрезолвенное из IP адреса. | |
port | строка | (опционально) Порт узла сети. | |
host_metadata | строка | (optional) Метаданные узла сети, отосланные агентом (на основе параметров конфигурации агента HostMetadata или HostMetadataItem). | |
tasks | массив | (опционально) Массив задач. | |
type | число | Тип задачи: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT — результат удалённой команды |
|
status | число | Статус выполнения удалённой команды: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED — удалённая команда завершилась успешно 1, ZBX_TM_REMOTE_COMMAND_FAILED — удалённая команда завершилась неудачно |
|
error | строка | (опционально) Сообщение об ошибке. | |
parent_taskid | число | Идентификатор родительской задачи. | |
more | число | (опционально) 1 — имеются дополнительные данные истории для отправки. | |
clock | число | (опционально) Отметка времени обмена данными (секунды). | |
ns | число | (опционально) Отметка времени обмена данными (наносекунды). | |
version | строка | Версия прокси (<major>.<minor>.<build>). | |
сервер→прокси: | |||
response | строка | Информация об успешности запороса («success» или «failed»). | |
tasks | массив | (опционально) Массив задач. | |
type | число | Тип задачи: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND — удалённая команда |
|
clock | число | Время создания задачи. | |
ttl | число | Время в секундах до истечения срока задачи. | |
commandtype | число | Тип удалённой задачи: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT — применить пользовательский скрипт 1, ZBX_SCRIPT_TYPE_IPMI — использовать IPMI 2, ZBX_SCRIPT_TYPE_SSH — использовать SSH 3, ZBX_SCRIPT_TYPE_TELNET — использовать Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT — использовать глобальный скрипт (в данный момент функционал эквивалентен пользовательскому скрипту) |
|
command | строка | Команда для удалённого выполнения. | |
execute_on | число | Целевой объект выполнения для пользовательского скрипта: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT — выполнить скрипт на агенте 1, ZBX_SCRIPT_EXECUTE_ON_SERVER — выполнить скрипт на сервере 2, ZBX_SCRIPT_EXECUTE_ON_PROXY — выполнить скрипт на прокси |
|
port | число | (опционально) Порт для команд Telnet и SSH. | |
authtype | число | (опционально) Тип аутентификации для команд SSH. | |
username | строка | (опционально) Имя пользователя для команд Telnet и SSH. | |
password | строка | (опционально) Пароль для команд Telnet и SSH . | |
publickey | строка | (опционально) Открытый ключ (public key) для команд SSH. | |
privatekey | строка | (опционально) Закрытый ключ (private key) для команд SSH. | |
parent_taskid | число | Идентификатор родительской задачи. | |
hostid | число | Идентификатор целевого узла сети. |
Пример:
сервер→прокси:
прокси→сервер:
{
"session": "12345678901234567890123456789012"
"interface availability": [
{
"interfaceid": 1,
"available": 1,
"error": ""
},
{
"interfaceid": 2,
"available": 2,
"error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
},
{
"interfaceid": 3,
"available": 1,
"error": ""
},
{
"interfaceid": 4,
"available": 1,
"error": ""
}
],
"history data":[
{
"itemid":"12345",
"clock":1478609647,
"ns":332510044,
"value":"52956612",
"id": 1
},
{
"itemid":"12346",
"clock":1478609647,
"ns":330690279,
"state":1,
"value":"Cannot find information for this network interface in /proc/net/dev.",
"id": 2
}
],
"discovery 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
}
],
"auto registration":[
{
"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"
}
],
"tasks":[
{
"type": 0,
"status": 0,
"parent_taskid": 10
},
{
"type": 0,
"status": 1,
"error": "No permissions to execute task.",
"parent_taskid": 20
}
],
"version":"5.4.0"
}
сервер→прокси:
{
"response": "success",
"tasks":[
{
"type": 1,
"clock": 1478608371,
"ttl": 600,
"commandtype": 2,
"command": "restart_service1.sh",
"execute_on": 2,
"port": 80,
"authtype": 0,
"username": "userA",
"password": "password1",
"publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
"privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
"parent_taskid": 10,
"hostid": 10070
},
{
"type": 1,
"clock": 1478608381,
"ttl": 600,
"commandtype": 1,
"command": "restart_service2.sh",
"execute_on": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"parent_taskid": 20,
"hostid": 10084
}
]
}
Запрос proxy config
отсылается активным прокси сервером для получения его конфигурационных данных. Этот запрос отсылается каждые ProxyConfigFrequency
секунд (параметр конфигурации прокси).
имя | тип значения | описание | ||||
---|---|---|---|---|---|---|
прокси→сервер: | ||||||
request | строка | «proxy config» | ||||
host | строка | Имя прокси сервера. | ||||
version | строка | Версия прокси сервера (<major>.<minor>.<build>). | ||||
session | строка | Токен сессии конфигурации прокси. | ||||
config_revision | число | Ревизия конфигурации прокси. | ||||
сервер→прокси: | ||||||
fullsync | число | 1 — если пересылаются полные данные конфигурации, в противном случае отсутствует (опционально). | ||||
data | массив | Объект табличных данных. Отсутствует, если конфигурация не менялась (опционально). | ||||
<таблица> | объект | Один или более объектов с данными <таблицы> (опционально, в зависимости от изменений). | ||||
fields | массив | Массив имён полей. | ||||
- | строка | Имя поля. | ||||
data | массив | Массив строк. | ||||
- | массив | Массив столбцов. | ||||
- | строка,число | Значение столбца с типом, зависящим от типа столбца в схеме базы данных. | ||||
macro.secrets | объект | Информация о скрытых макросах, отсутствует, если нет изменений в макросах хранилища (опционально). | ||||
config_revision | число | Ревизия кэша конфигурации — отсылается с данными конфигурации (опционально). | ||||
del_hostids | массив | Массив идентификаторов удалённых узлов сети (опционально). | ||||
- | число | Идентификатор узла сети. | ||||
del_macro_hostids | массив | Массив идентификаторов узлов сети со всеми удалёнными макросами (опционально). | ||||
- | число | Идентификатор узла сети. |
Пример:
прокси→сервер:
{
"request": "proxy config",
"host": "Zabbix proxy",
"version":"7.0.0",
"session": "fd59a09ff4e9d1fb447de1f04599bcf6",
"config_revision": 0
}
сервер→прокси:
{
"full_sync": 1,
"data": {
"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": [
[10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
]
},
"interface": {
"fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
"data": [
[1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
]
},
"interface_snmp": {
"fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
"data": []
},
"host_inventory": {
"fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
"data": [
[10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
]
},
"items": {
"fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
"data": [
[44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
[44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
]
},
"item_rtdata": {
"fields": ["itemid", "lastlogsize", "mtime"],
"data": [
[44161, 0, 0],
[44162, 0, 0]
]
},
"item_preproc": {
"fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
"data": []
},
"item_parameter": {
"fields": ["item_parameterid", "itemid", "name", "value"],
"data": []
},
"globalmacro": {
"fields": ["globalmacroid", "macro", "value", "type"],
"data": [
[2, "{$SNMP_COMMUNITY}", "public", 0]
]
},
"hosts_templates": {
"fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
"data": []
},
"hostmacro": {
"fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
"data": [
[5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
]
},
"drules": {
"fields": ["druleid", "name", "iprange", "delay"],
"data": [
[2, "Local network", "127.0.0.1", "10s"]
]
},
"dchecks": {
"fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
"data": [
[2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
]
},
"regexps": {
"fields": ["regexpid", "name"],
"data": [
[1, "File systems for discovery"],
[2, "Network interfaces for discovery"],
[3, "Storage devices for SNMP discovery"],
[4, "Windows service names for discovery"],
[5, "Windows service startup states for discovery"]
]
},
"expressions": {
"fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
"data": [
[1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
[3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
[5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
[6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
[7, 2, "^Software Loopback Interface", 4, ",", 1],
[8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
[9, 2, "^NULL[0-9.]*$", 4, ",", 1],
[10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
[11, 2, "^[Ss]ystem$", 4, ",", 1],
[12, 2, "^Nu[0-9.]*$", 4, ",", 1]
]
},
"config": {
"fields": ["configid", "snmptrap_logging", "hk_history_global", "hk_history", "autoreg_tls_accept"],
"data": [
[1, 1, 0, "90d", 1]
]
},
"httptest": {
"fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
"data": []
},
"httptestitem": {
"fields": ["httptestitemid", "httptestid", "itemid", "type"],
"data": []
},
"httptest_field": {
"fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
"data": []
},
"httpstep": {
"fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
"data": []
},
"httpstepitem": {
"fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
"data": []
},
"httpstep_field": {
"fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
"data": []
},
"config_autoreg_tls": {
"fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
"data": [
[1, "", ""]
]
}
},
"macro.secrets": {
"AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
"Content": "738"
}
},
"config_revision": 2
}
Запрос proxy data
отсылается прокси сервером, чтобы предоставить данные о доступности интерфейсов узлов сети, а также данных истории, обнаружений и авторегистрации. Этот запрос отсылается каждые DataSenderFrequency
секунд (параметр конфигурации прокси). Обратите внимание, что активный прокси всё ещё будет опрашивать Zabbix сервер каждую секунду относительно задач на удалённое выполнение (с пустым запросом proxy data
).
имя | тип значения | описание | |
---|---|---|---|
прокси→сервер: | |||
request | строка | «proxy data» | |
host | строка | Имя прокси сервера. | |
session | строка | Токен сессии данных. | |
interface availability | массив | (опционально) Массив объектов данных о доступности интерфейсов. | |
interfaceid | число | Идентификатор интерфейса. | |
available | число | Доступность интерфейса: 0, INTERFACE_AVAILABLE_UNKNOWN — неизвестно 1, INTERFACE_AVAILABLE_TRUE — доступен 2, INTERFACE_AVAILABLE_FALSE — недоступен |
|
error | строка | Сообщение об ошибке интерфейса либо пустая строка. | |
history data | массив | (опционально) Массив объектов данных истории. | |
itemid | число | Идентификатор элемента данных. | |
clock | число | Отметка времени элемента данных (секунды). | |
ns | число | Отметка времени элемента данных (наносекунды). | |
value | строка | (опционально) Значение элемента данных. | |
id | число | Идентификатор значения (возрастающий счётчик, уникальный в пределах одной сессии данных). | |
timestamp | число | (опционально) Отметка времени (timestamp) элементов данных журнального типа. | |
source | строка | (опционально) Источник (source) элемента данных журнального типа. | |
severity | число | (опционально) Важность (severity) элемента данных журнального типа. | |
eventid | число | (опционально) Идентификатор (eventid) элемента данных журнального типа. | |
state | строка | (опционально) Состояние элемента данных: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
lastlogsize | число | (опционально) Последний размер файла журнала (lastlogsize) элемента данных журнального типа. | |
mtime | число | (опционально) Отметка времени последнего обновления (mtime) элемента данных журнального типа. | |
discovery 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 — Сервис работает (UP) 1, DOBJECT_STATUS_DOWN — Сервис не работает (DOWN) |
|
autoregistration | массив | (опционально) Массив объектов данных авторегистрации. | |
clock | число | Отметка времени данных авторегистрации. | |
host | строка | Имя узла сети. | |
ip | строка | (опционально) IP адрес узла сети. | |
dns | строка | (опционально) DNS имя, отрезолвенное из IP адреса. | |
port | строка | (опционально) Порт узла сети. | |
host_metadata | строка | (опционально) Метаданные узла сети, отосланные агентом (на основе параметров конфигурации агента HostMetadata или HostMetadataItem). | |
tasks | массив | (опционально) Массив задач. | |
type | число | Тип задачи: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT — результат удалённой команды |
|
status | число | Статус выполнения удалённой команды: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED — удалённая команда завершилась успешно 1, ZBX_TM_REMOTE_COMMAND_FAILED — удалённая команда завершилась неудачно |
|
error | строка | (опционально) Сообщение об ошибке. | |
parent_taskid | число | Идентификатор родительской задачи. | |
more | число | (опционально) 1 — имеются дополнительные данные истории для отправки. | |
clock | число | (опционально) Отметка времени обмена данными (секунды). | |
ns | число | (опционально) Отметка времени обмена данными (наносекунды). | |
version | строка | Версия прокси сервера (<major>.<minor>.<build>). | |
сервер→прокси: | |||
response | строка | Информация об успешности запороса («success» или «failed»). | |
upload | строка | Управление загрузкой для исторических данных (история, авторегистрация, доступность узлов сети, сетевое обнаружение). Возможные значения: enabled — нормальная работа disabled — сервер не принимает данные (возможно, из-за превышения ограничения внутреннего кэша) |
|
tasks | массив | (опционально) Массив задач. | |
type | число | Тип задачи: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND — удалённая команда |
|
clock | число | Время создания задачи. | |
ttl | число | Время в секундах до истечения срока задачи. | |
commandtype | число | Тип удалённой задачи: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT — применить пользовательский скрипт 1, ZBX_SCRIPT_TYPE_IPMI — использовать IPMI 2, ZBX_SCRIPT_TYPE_SSH — использовать SSH 3, ZBX_SCRIPT_TYPE_TELNET — использовать Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT — использовать глобальный скрипт (в данный момент функционал эквивалентен пользовательскому скрипту) |
|
command | строка | Команда для удалённого выполнения. | |
execute_on | число | Целевой объект выполнения для пользовательского скрипта: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT — выполнить скрипт на агенте 1, ZBX_SCRIPT_EXECUTE_ON_SERVER — выполнить скрипт на сервере 2, ZBX_SCRIPT_EXECUTE_ON_PROXY — выполнить скрипт на прокси |
|
port | число | (опционально) Порт для команд Telnet и SSH. | |
authtype | число | (опционально) Тип аутентификации для команд SSH. | |
username | строка | (опционально) Имя пользователя для команд Telnet и SSH. | |
password | строка | (опционально) Пароль для команд Telnet и SSH. | |
publickey | строка | (опционально) Открытый ключ (public key) для команд SSH. | |
privatekey | строка | (опционально) Закрытый ключ (private key) для команд SSH. | |
parent_taskid | число | Идентификатор родительской задачи. | |
hostid | число | Идентификатор целевого узла сети. |
Пример:
прокси→сервер:
{
"request": "proxy data",
"host": "Zabbix proxy",
"session": "818cdd1b537bdc5e50c09ed4969235b6",
"interface availability": [{
"interfaceid": 1,
"available": 1,
"error": ""
}],
"history data": [{
"id": 1114,
"itemid": 44162,
"clock": 1665730632,
"ns": 798953105,
"value": "1"
}, {
"id": 1115,
"itemid": 44161,
"clock": 1665730633,
"ns": 811684663,
"value": "58"
}],
"auto registration": [{
"clock": 1665730633,
"host": "Zabbix server",
"ip": "127.0.0.1",
"dns": "localhost",
"port": "10053",
"host_metadata": "58",
"tls_accepted": 1
}],
"discovery data": [{
"clock": 1665732232,
"drule": 2,
"dcheck": 2,
"ip": "127.0.0.1",
"dns": "localhost",
"port": 10052,
"status": 1
}, {
"clock": 1665732232,
"drule": 2,
"dcheck": null,
"ip": "127.0.0.1",
"dns": "localhost",
"status": 1
}],
"host data": [{
"hostid": 10084,
"active_status": 1
}],
"tasks": [{
"type": 3,
"clock": 1665730985,
"ttl": 0,
"status": -1,
"info": "Remote commands are not enabled",
"parent_taskid": 3
}],
"version": "7.0.0",
"clock": 1665730643,
"ns": 65389964
}
сервер→прокси:
{
"upload": "enabled",
"response": "success",
"tasks": [{
"type": 2,
"clock": 1665730986,
"ttl": 600,
"commandtype": 0,
"command": "ping -c 3 127.0.0.1; case $? in [01]) true;; *) false;; esac",
"execute_on": 2,
"port": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"alertid": 0,
"parent_taskid": 4,
"hostid": 10084
}]
}