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
}
]
}
Tasks request
The proxy tasks exchange handles delivery and acknowledgement of remote command tasks between the server and a passive proxy. When the server polls the proxy for task results, it sends an empty proxy tasks request at the interval defined by ProxyDataFrequency. The proxy responds with its current version and any pending task results (including timestamps). The server then acknowledges receipt by returning a response and may include new tasks for the proxy to execute.
| name | value type | description | |
|---|---|---|---|
| server→proxy: | |||
| request | string | 'proxy tasks' | |
| proxy→server: | |||
| version | string | Proxy version (<major>.<minor>.<build>). | |
| clock | number | (optional) Data transfer timestamp (seconds). | |
| ns | number | (optional) Data transfer timestamp (nanoseconds). | |
| server→proxy: | |||
| response | string | Request success information ('success' or 'failed'). | |
Example:
server→proxy:
{
"request":"proxy tasks"
}
proxy→server:
{
"version":"7.0.0",
"clock":1721059872,
"ns":848141522
}
server→proxy:
{
"response":"success"
}
Активни прокси
Захтев за конфигурацију
Захтев за 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
}]
}