1 Протокол за размену података између сервера и проксија

Преглед

Сервер - прокси размена података је заснована на JSON формату.

Поруке захтева и одговора морају да почињу са заглављем и дужином података.

Пасивни прокси

Захтев за конфигурацију

Сервер ће прво послати празан захтев proxy config. Овај захтев се шаље сваких ProxyConfigFrequency (параметар конфигурације сервера) секунди.

Прокси одговара са тренутном верзијом проксија, токеном сесије и ревизијом конфигурације. Сервер одговара са подацима о конфигурацији које је потребно ажурирати.

name value type description
server→proxy:
request string 'proxy config'
proxy→server:
version string Верзија проксија (<major>.<minor>.<build>).
session string Токен сесије конфигурације проксија.
config_revision number Ревизија конфигурације проксија.
server→proxy:
full_sync number 1 - ако се шаљу комплетни подаци о конфигурацији; ако их нема - у супротном (опционо).
data array Објекат табеле података. Одсутан ако конфигурација није промењена (опционо).
<table> object Један или више објеката са <table> подацима (опционо, у зависности од промена).
fields array Низ имена поља.
- string Назив поља.
data array Низ редова.
- array Низ колона.
- string,number Вредност колоне са типом који зависи од типа колоне у шеми базе података.
macro.secrets object Тајне информације о макроима, одсутне ако нема промена у макроима трезора (опционо)).
config_revision number Ревизија кеша конфигурације - шаље се са подацима о конфигурацији (опционо)).
del_hostids array Низ уклоњених ID-ијева домаћина (опционо)).
- number Идентификатор домаћина.
del_macro_hostids array Низ ИД-ова хостова са уклоњеним свим макроима (опционо)).
- number Идентификатор домаћина.
proxy→server:
response string Захтев за информације о успеху ("успех" или "неуспех").
version string Верзија проксија (<major>.<minor>.<build>).

Пример:

server→proxy:

server→proxy:

{
         "request":"proxy config"
       } 

proxy→server:

{
            "version": "7.4.0",
            "session": "0033124949800811e5686dbfd9bcea98",
            "config_revision": 0
       }

server→proxy:

{
            "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]
                      ]
                 },
                 "settings": {
                      "fields": ["name", "type", "value_str", "value_int"],
                      "data": [
                           ["autoreg_tls_accept", 2, "", 1],
                           ["hk_history_global", 2, "", 0],
                           ["snmptrap_logging", 2, "", 1],
                           ["proxy_secrets_provider", 2, "", 0],
                           ["hk_history", 1, "31d", 0],
                           ["timeout_db_monitor", 1, "3s", 0],
                           ["timeout_external_check", 1, "3s", 0],
                           ["timeout_http_agent", 1, "3s", 0],
                           ["timeout_simple_check", 1, "3s", 0],
                           ["timeout_snmp_agent", 1, "3s", 0],
                           ["timeout_ssh_agent", 1, "3s", 0],
                           ["timeout_telnet_agent", 1, "3s", 0],
                           ["timeout_zabbix_agent", 1, "3s", 0],
                           ["timeout_browser", 1, "30s", 0]
                      ]
                 },
                 "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→server:

{
            "response": "success",
            "version": "7.4.0"
       }
Захтев за податке

Захтев за proxy data се користи за добијање доступности интерфејса хоста, историјских података, података о откривању и аутоматској регистрацији од проксија. Овај захтев се шаље сваких ProxyDataFrequency (параметар конфигурације сервера) секунде.

name value type description
server→proxy:
request string 'proxy data'
proxy→server:
session string Токен сесије података.
interface availability array (опционо) Низ објеката података о доступности интерфејса.
interfaceid number Идентификатор интерфејса.
available number Доступност интерфејса:

0, INTERFACE_AVAILABLE_UNKNOWN - непознато
1, INTERFACE_AVAILABLE_TRUE - доступно
2, INTERFACE_AVAILABLE_FALSE - недоступно
error string Порука о грешци интерфејса или празан стринг.
history data *array (опционо) Низ објеката података историје.
itemid number Идентификатор ставке.
clock number Временска ознака вредности ставке (секунде).
ns number Временска ознака вредности ставке (наносекунде).
value string (опционо) Вредност ставке.
id number Идентификатор вредности (растући бројач, јединствен у једној сесији података).
timestamp number (опционо) Временска ознака ставки типа дневника.
source string (опционо) Изворна вредност ставке дневника догађаја.
severity number (опционо) Вредност озбиљности ставке дневника догађаја.
eventid number (опционо) Вредност ИД-а догађаја ставке дневника догађаја.
state string (опционо) Стање ставке:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (опционо) Последња величина евиденције ставки типа дневника.
mtime number (опционо) Време измене ставки типа дневника.
discovery data array (опционо) Низ објеката података о откривању.
clock number Временска ознака података о откривању.
druleid number Идентификатор правила откривања.
dcheckid number Идентификатор провере откривања или null за податке правила откривања.
type number Тип провере откривања:

-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 ping
13, SVC_SNMPv3 - SNMPv3 агент
14, SVC_HTTPS - Провера HTTPS сервиса
15, SVC_TELNET - Провера доступности Telnet-а
ip string IP адреса домаћина.
dns string DNS име домаћина.
** port** * number* (опционо) Број сервисног порта.
key_ string (опционо) Кључ ставке за проверу откривања типа 9 SVC_AGENT
value string (опционо) Вредност примљена од сервиса, може бити празна за већину сервиса.

|^|status|number|(опционо) Статус сервиса:

0, DOBJECT_STATUS_UP - Сервис UP
1, DOBJECT_STATUS_DOWN - Сервис НЕСТАЈЕ| |auto registration|<|array|(опционо) Низ објеката података аутоматске регистрације.| | |сclock|number|Временска ознака података аутоматске регистрације.| |^|host|string|Име домаћина.| |^|ip|string|(опционо) IP адреса домаћина.| |^|dns|string|(опционо) DNS име из IP адресе.| |^|port|string|(опционо) Порт домаћина.| |^|host_metadata|string|(опционо) Метаподаци домаћина које је послао агент (на основу параметра конфигурације агента HostMetadata или HostMetadataItem).| |tasks|<|array|(опционо) Низ задатака.| | |type|number|Тип задатка:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - резултат удаљене команде| |^|status|number|Статус извршења удаљене команде:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - удаљена команда је успешно завршена
1, ZBX_TM_REMOTE_COMMAND_FAILED - удаљена команда није успела| |^|error|string|(опционо) Порука о грешци.| |^|parent_taskid|numberј|ID родитељског задатка.| |more|<|number|(опционо) 1 - има још података из историје за слање.| |clock|<|number|(опционо) Временска ознака преноса података (секунде).| |ns|<|number|(опционо) Временска ознака преноса података (наносекунде).| |version|<|string|Верзија проксија (<major>.<minor>.<build>).| |server→proxy:|<|<|<| |response|<|string|Захтев за информације о успеху ('успех' или 'неуспех').| |tasks|<|array|(опционо) Низ задатака.| | |type|number|Тип задатка:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - даљинска команда| |^| clock|број|Време креирања задатка.| |^|ttl|number|Време у секундама након којег задатак истиче.| |^| commandtype|number|Тип удаљене команде:

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|* string|Удаљена команда за извршавање.| |^|execute_on|number|Циљ извршавања за прилагођене скрипте:

0,
ZBX_SCRIPT_EXECUTE_ON_AGENT* - изврши скрипту на агенту
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - изврши скрипту на серверу
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - изврши скрипту на проксију| |^|port|number|(опционо) Порт за Telnet и SSH команде.| |^|authtype|number|(опционо) Тип аутентификације за SSH команде.| |^|** username|string|(опционо) Корисничко име за Telnet и SSH команде.| |^| password|string|(опционо) Лозинка за Telnet и SSH команде.| |^|publickey|string|(опционо) Јавни кључ за SSH команде.| |^|privatekey|string|(опционо) Приватни кључ за SSH команде.| |^|parent_taskid|number|ID родитељског задатка.| |^|hostid**|number|ID циљног домаћина.|

Пример:

server→proxy:

{
            "request": "proxy data"
       }

proxy→server:

{
           "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":"7.0.0"
       }

server→proxy:

{
         "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 (параметар конфигурације проксија) секунди.

name value type description
proxy→server:
request string 'proxy config'
host string
Име проксија.
version string Верзија проксија (<major>.<minor>.<build>).
session string Токен сесије конфигурације проксија.
config_revision number Ревизија конфигурације проксија.
server→proxy:
fullsync number 1 - ако се шаљу комплетни подаци о конфигурацији, у супротном одсуствују (опционо).
data array Објекат табеле података. Одсутан ако конфигурација није промењена (опционо).
<table> object Један или више објеката са <table> подацима (опционо, у зависности од промена).
fields array Низ имена поља.
- string Назив поља.
data array Низ редова.
- array Низ колона.
- string,number Вредност колоне са типом који зависи од типа колоне у шеми базе података.
macro.secrets object Тајне информације о макроима, одсутне ако нема промена у макроима трезора (опционо).
config_revision number Ревизија кеша конфигурације - шаље се са подацима о конфигурацији (опционо).
del_hostids array Низ уклоњених hostids-ова (опционо).
- number Идентификатор домаћина.
del_macro_hostids array Низ hostids-ова са уклоњеним свим макроима (опционо).
- number Идентификатор домаћина.

Пример:

proxy→server:

{
              "request": "proxy config",
              "host": "Zabbix proxy",
              "version":"7.0.0",
              "session": "fd59a09ff4e9d1fb447de1f04599bcf6",
              "config_revision": 0
       }

server→proxy:

{
           "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).

name value type description
proxy→server:
request string 'proxy data'
host string Име проксија.
session string Токен сесије података.
interface availability array (optional) Низ објеката података о доступности интерфејса.
interfaceid number Идентификатор интерфејса.
available number Доступност интерфејса:

0, INTERFACE_AVAILABLE_UNKNOWN - unknown
1, INTERFACE_AVAILABLE_TRUE - available
2, INTERFACE_AVAILABLE_FALSE - недоступно
error string Порука о грешци интерфејса или празан стринг.
history data array (optional) Низ објеката историјских података.
itemid number Идентификатор ставке.
clock number Временска ознака вредности ставке (секунде).
ns number Временска ознака вредности ставке (наносекунде).
value string (optional) Вредност ставке.
id number Идентификатор вредности (растући бројач, јединствен у оквиру једне сесије података).
timestamp number (optional) Временска ознака ставки типа дневника.
source string (optional) Изворна вредност ставке дневника догађаја.
severity number (optional) Вредност озбиљности ставке дневника догађаја.
eventid number (optional) Вредност ИД-а догађаја ставке дневника догађаја.
state string (optional) Item state:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (optional) Последња величина евиденције ставки типа евиденције.
mtime number (optional) Време измене ставки типа дневника.
discovery data array (optional) Низ објеката података за откривање.
clock number Временска ознака података откривања.
druleid number Идентификатор правила откривања.
dcheckid number Идентификатор провере откривања или null за податке правила откривања.
type number Discovery check 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 string IP адреса домаћина.
dns string DNS име домаћина.
port number (optional) Број сервисног порта.
key_ string (optional) Кључ ставке за проверу откривања типа 9 SVC_AGENT
value string (optional) Вредност примљена од сервиса, може бити празна за већину сервиса.
status number (optional) Статус услуге:

0, DOBJECT_STATUS_UP - Service UP
1, DOBJECT_STATUS_DOWN - Service DOWN
autoregistration array (optional) Низ објеката података за ауторегистрацију.
clock number Временска ознака података аутоматске регистрације.
host string Име домаћина.
ip string (optional) IP адреса домаћина.
dns string (optional) Решено DNS име из IP адресе.
port string (optional) Порт домаћина.
host_metadata string (optional)Метаподаци домаћина које шаље агент (на основу параметра конфигурације агента HostMetadata или HostMetadataItem)).
tasks array (optional) Низ задатака.
type number Task type:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - резултат удаљене команде
status number Статус извршења даљинске команде:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - Даљинска команда је успешно завршена
1, ZBX_TM_REMOTE_COMMAND_FAILED - даљинска команда није успела
error string (optional) Порука о грешци.
parent_taskid number ID надређеног задатка.
more number (optional) 1 - има још података из историје за слање
clock number (optional) Временска ознака преноса података (секунде).
ns number (optional) Временска ознака преноса података (наносекунде).
version string Верзија проксија (<major>.<minor>.<build>).
server→proxy:
response string Захтевајте информације о успеху ('успех' или 'неуспех').
upload string Контрола отпремања за историјске податке (историја, аутоматска регистрација, доступност домаћина, откривање мреже).

Могуће вредности:
enabled - нормалан рад
disabled - Сервер не прихвата податке (могуће због прекорачења ограничења интерне кеш меморије)
tasks array (optional) Низ задатака.
type number Task type:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - даљинска команда
clock number Време креирања задатка.
ttl number Време у секундама након којег задатак истиче.
commandtype number Тип даљинске команде:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - use custom script
1, ZBX_SCRIPT_TYPE_IPMI - use IPMI
2, ZBX_SCRIPT_TYPE_SSH - use SSH
3, ZBX_SCRIPT_TYPE_TELNET - use Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - користи глобалну скрипту (тренутно функционално еквивалентну прилагођеној скрипти)
command string Даљинска команда за извршавање.
execute_on number Циљ извршавања за прилагођене скрипте:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - изврши скрипту на агенту
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - изврши скрипту на серверу
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - изврши скрипту на проксију
port number (optional) Порт за Telnet и SSH команде.
authtype number (optional) Тип аутентификације за SSH команде.
username string (optional) Корисничко име за Telnet и SSH команде.
password string (optional) Лозинка за Telnet и SSH команде.
publickey string (optional) Јавни кључ за SSH команде.
privatekey string (optional) Приватни кључ за SSH команде.
parent_taskid number ID надређеног задатка.
hostid number ID циљног домаћина.

Example:

proxy→server:

{
           "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
       }

server→proxy:

{
           "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
           }]
       }