1 Servera un starpniekservera datu apmaiņas protokols
Pārskats
Serveris - starpniekserveris datu apmaiņa ir balstīta uz JSON formātu.
Pieprasījuma un atbildes ziņojumiem jāsākas ar galveni un datu garumu.
Pasīvais starpniekserveris
Konfigurācijas pieprasījums
Serveris vispirms nosūtīs tukšu proxy config pieprasījumu. Šis pieprasījums tiek nosūtīts ik pēc ProxyConfigFrequency
(servera konfigurācijas parametra) sekundēm.
Starpniekserveris atbild ar pašreizējo starpniekservera versiju, sesijas marķieri un konfigurācijas revīziju. Serveris atbild ar konfigurācijas datiem, kas ir jāatjaunina.
| name | value type | description | ||||
|---|---|---|---|---|---|---|
| server→proxy: | ||||||
| request | string | 'proxy config' | ||||
| proxy→server: | ||||||
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | ||||
| session | string | Starpniekservera konfigurācijas sesijas marķieris. | ||||
| config_revision | number | Starpniekservera konfigurācijas revīzija. | ||||
| server→proxy: | ||||||
| full_sync | number | 1 - ja tiek nosūtīti pilni konfigurācijas dati; pretējā gadījumā nav norādīts (neobligāti). | ||||
| data | array | Tabulas datu objekts. Nav norādīts, ja konfigurācija nav mainīta (neobligāti). | ||||
| <table> | object | Viens vai vairāki objekti ar <table> datiem (neobligāti, atkarībā no izmaiņām). | ||||
| fields | array | Lauku nosaukumu masīvs. | ||||
| - | string | Lauka nosaukums. | ||||
| data | array | Rindu masīvs. | ||||
| - | array | Kolonnu masīvs. | ||||
| - | string,number | Kolonnas vērtība, kuras tips ir atkarīgs no kolonnas tipa datubāzes shēmā. | ||||
| macro.secrets | object | Slepeno makrosu informācija; nav norādīta, ja vault makrosos nav izmaiņu (neobligāti). | ||||
| config_revision | number | Konfigurācijas kešatmiņas revīzija - tiek nosūtīta kopā ar konfigurācijas datiem (neobligāti). | ||||
| del_hostids | array | Noņemto hostu ID masīvs (neobligāti). | ||||
| - | number | Hosta identifikators. | ||||
| del_macro_hostids | array | Hostu ID masīvs, kuriem ir noņemti visi makrosi (neobligāti). | ||||
| - | number | Hosta identifikators. | ||||
| proxy→server: | ||||||
| response | string | Informācija par pieprasījuma izpildes rezultātu ('success' vai 'failed'). | ||||
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | ||||
Piemērs:
server→proxy:
{
"request":"proxy config"
}
proxy→server:
{
"version": "8.0.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": "8.0.0"
}
Datu pieprasījums
Pieprasījums proxy data tiek izmantots, lai no starpniekservera iegūtu hosta saskarnes pieejamības,
vēsturiskos, atklāšanas un automātiskās reģistrācijas datus. Šis pieprasījums
tiek nosūtīts ik pēc ProxyDataFrequency (servera konfigurācijas parametrs)
sekundēm.
| name | value type | description | |
|---|---|---|---|
| server→proxy: | |||
| request | string | 'proxy data' | |
| proxy→server: | |||
| session | string | Datu sesijas marķieris. | |
| interface availability | array | (optional) Saskarnes pieejamības datu objektu masīvs. | |
| interfaceid | number | Saskarnes identifikators. | |
| available | number | Saskarnes pieejamība: 0, INTERFACE_AVAILABLE_UNKNOWN - nezināma 1, INTERFACE_AVAILABLE_TRUE - pieejama 2, INTERFACE_AVAILABLE_FALSE - nav pieejama |
|
| error | string | Saskarnes kļūdas ziņojums vai tukša virkne. | |
| history data | array | (optional) Vēsturisko datu objektu masīvs. | |
| itemid | number | Vienuma identifikators. | |
| clock | number | Vienuma vērtības laikspiedols (sekundes). | |
| ns | number | Vienuma vērtības laikspiedols (nanosekundes). | |
| value | string | (optional) Vienuma vērtība. | |
| id | number | Vērtības identifikators (augošs skaitītājs, unikāls vienas datu sesijas ietvaros). | |
| timestamp | number | (optional) Žurnāla tipa vienumu laikspiedols. | |
| source | string | (optional) Eventlog vienuma avota vērtība. | |
| severity | number | (optional) Eventlog vienuma svarīguma vērtība. | |
| eventid | number | (optional) Eventlog vienuma eventid vērtība. | |
| state | string | (optional) Vienuma stāvoklis: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
| lastlogsize | number | (optional) Pēdējais žurnāla izmērs žurnāla tipa vienumiem. | |
| mtime | number | (optional) Žurnāla tipa vienumu modificēšanas laiks. | |
| discovery data | array | (optional) Atklāšanas datu objektu masīvs. | |
| clock | number | Atklāšanas datu laikspiedols. | |
| druleid | number | Atklāšanas kārtulas identifikators. | |
| dcheckid | number | Atklāšanas pārbaudes identifikators vai null atklāšanas kārtulas datiem. | |
| type | number | Atklāšanas pārbaudes tips: -1 atklāšanas kārtulas dati 0, SVC_SSH - SSH servisa pārbaude 1, SVC_LDAP - LDAP servisa pārbaude 2, SVC_SMTP - SMTP servisa pārbaude 3, SVC_FTP - FTP servisa pārbaude 4, SVC_HTTP - HTTP servisa pārbaude 5, SVC_POP - POP servisa pārbaude 6, SVC_NNTP - NNTP servisa pārbaude 7, SVC_IMAP - IMAP servisa pārbaude 8, SVC_TCP - TCP porta pieejamības pārbaude 9, SVC_AGENT - Zabbix aģents 10, SVC_SNMPv1 - SNMPv1 aģents 11, SVC_SNMPv2 - SNMPv2 aģents 12, SVC_ICMPPING - ICMP ping 13, SVC_SNMPv3 - SNMPv3 aģents 14, SVC_HTTPS - HTTPS servisa pārbaude 15, SVC_TELNET - Telnet pieejamības pārbaude |
|
| ip | string | Hosta IP adrese. | |
| dns | string | Hosta DNS nosaukums. | |
| port | number | (optional) Servisa porta numurs. | |
| key_ | string | (optional) Vienuma atslēga atklāšanas pārbaudei ar tipu 9 SVC_AGENT | |
| value | string | (optional) No servisa saņemtā vērtība; lielākajai daļai servisu tā var būt tukša. | |
| status | number | (optional) Servisa statuss: 0, DOBJECT_STATUS_UP - Serviss ir UP 1, DOBJECT_STATUS_DOWN - Serviss ir DOWN |
|
| auto registration | array | (optional) Automātiskās reģistrācijas datu objektu masīvs. | |
| clock | number | Automātiskās reģistrācijas datu laikspiedols. | |
| host | string | Hosta nosaukums. | |
| ip | string | (optional) Hosta IP adrese. | |
| dns | string | (optional) No IP adreses atrisinātais DNS nosaukums. | |
| port | string | (optional) Hosta ports. | |
| host_metadata | string | (optional) Hosta metadati, ko nosūtījis aģents (pamatojoties uz aģenta konfigurācijas parametru HostMetadata vai HostMetadataItem). | |
| tasks | array | (optional) Uzdevumu masīvs. | |
| type | number | Uzdevuma tips: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - attālinātās komandas rezultāts |
|
| status | number | Attālinātās komandas izpildes statuss: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - attālinātā komanda veiksmīgi pabeigta 1, ZBX_TM_REMOTE_COMMAND_FAILED - attālinātās komandas izpilde neizdevās |
|
| error | string | (optional) Kļūdas ziņojums. | |
| parent_taskid | number | Vecākuzdevuma ID. | |
| more | number | (optional) 1 - ir vēl vēsturiskie dati, ko nosūtīt. | |
| clock | number | (optional) Datu pārsūtīšanas laikspiedols (sekundes). | |
| ns | number | (optional) Datu pārsūtīšanas laikspiedols (nanosekundes). | |
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | |
| server→proxy: | |||
| response | string | Pieprasījuma izdošanās informācija ('success' vai 'failed'). | |
| tasks | array | (optional) Uzdevumu masīvs. | |
| type | number | Uzdevuma tips: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - attālinātā komanda |
|
| clock | number | Uzdevuma izveides laiks. | |
| ttl | number | Laiks sekundēs, pēc kura uzdevuma derīgums beidzas. | |
| commandtype | number | Attālinātās komandas tips: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - izmantot pielāgotu skriptu 1, ZBX_SCRIPT_TYPE_IPMI - izmantot IPMI 2, ZBX_SCRIPT_TYPE_SSH - izmantot SSH 3, ZBX_SCRIPT_TYPE_TELNET - izmantot Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - izmantot globālu skriptu (pašlaik funkcionāli ekvivalents pielāgotam skriptam) |
|
| command | string | Izpildāmā attālinātā komanda. | |
| execute_on | number | Izpildes mērķis pielāgotiem skriptiem: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - izpildīt skriptu uz aģenta 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - izpildīt skriptu uz servera 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - izpildīt skriptu uz starpniekservera |
|
| port | number | (optional) Ports Telnet un SSH komandām. | |
| authtype | number | (optional) Autentifikācijas tips SSH komandām. | |
| username | string | (optional) Lietotājvārds Telnet un SSH komandām. | |
| password | string | (optional) Parole Telnet un SSH komandām. | |
| publickey | string | (optional) Publiskā atslēga SSH komandām. | |
| privatekey | string | (optional) Privātā atslēga SSH komandām. | |
| parent_taskid | number | Vecākuzdevuma ID. | |
| hostid | number | Mērķa hosta ID. | |
Piemērs:
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":"8.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
}
]
}
Uzdevumu pieprasījums
proxy tasks apmaiņa nodrošina attālināto komandu uzdevumu piegādi un apstiprināšanu starp serveri un pasīvu starpniekserveri. Kad serveris aptaujā starpniekserveri, lai saņemtu uzdevumu rezultātus, tas nosūta tukšu proxy tasks pieprasījumu ar intervālu, kas noteikts ProxyDataFrequency. Starpniekserveris atbild ar savu pašreizējo versiju un visiem gaidošajiem uzdevumu rezultātiem (ieskaitot laikspiedolus). Pēc tam serveris apstiprina saņemšanu, atgriežot response, un var iekļaut jaunus uzdevumus, kas starpniekserverim jāizpilda.
| name | value type | description | |
|---|---|---|---|
| serveris→starpniekserveris: | |||
| request | string | 'proxy tasks' | |
| starpniekserveris→serveris: | |||
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | |
| clock | number | (neobligāts) Datu pārsūtīšanas laikspiedols (sekundes). | |
| ns | number | (neobligāts) Datu pārsūtīšanas laikspiedols (nanosekundes). | |
| serveris→starpniekserveris: | |||
| response | string | Pieprasījuma izdošanās informācija ('success' vai 'failed'). | |
Piemērs:
serveris→starpniekserveris:
{
"request":"proxy tasks"
}
starpniekserveris→serveris:
{
"version":"7.0.0",
"clock":1721059872,
"ns":848141522
}
serveris→starpniekserveris:
{
"response":"success"
}
Aktīvais starpniekserveris
Konfigurācijas pieprasījums
proxy config pieprasījumu aktīvais starpniekserveris nosūta, lai iegūtu starpniekservera
konfigurācijas datus. Šis pieprasījums tiek nosūtīts ik pēc ProxyConfigFrequency (starpniekservera
konfigurācijas parametra) sekundēm.
| name | value type | description | ||||
|---|---|---|---|---|---|---|
| proxy→server: | ||||||
| request | string | 'proxy config' | ||||
| host | string |
Starpniekservera nosaukums. | ||||
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | ||||
| session | string | Starpniekservera konfigurācijas sesijas marķieris. | ||||
| config_revision | number | Starpniekservera konfigurācijas revīzija. | ||||
| hostmap_revision | number | Pašreizējā hostu un starpniekservera kartējuma revīzija. | ||||
| server→proxy: | ||||||
| full_sync | number | 1 - ja tiek nosūtīti pilni konfigurācijas dati, pretējā gadījumā nav norādīts (neobligāti). | ||||
| data | array | Tabulas datu objekts. Nav norādīts, ja konfigurācija nav mainīta (neobligāti). | ||||
| <table> | object | Viens vai vairāki objekti ar <table> datiem (neobligāti, atkarībā no izmaiņām). | ||||
| fields | array | Lauku nosaukumu masīvs. | ||||
| - | string | Lauka nosaukums. | ||||
| data | array | Rindu masīvs. | ||||
| - | array | Kolonnu masīvs. | ||||
| - | string,number | Kolonnas vērtība, kuras tips ir atkarīgs no kolonnas tipa datubāzes shēmā. | ||||
| macro.secrets | object | Slepeno makrosu informācija; nav norādīta, ja vault makrosos nav izmaiņu (neobligāti). | ||||
| proxy_group | string | Tā starpniekserveru grupas nosaukums, kurai pieder starpniekserveris. | ||||
| config_revision | number | Konfigurācijas kešatmiņas revīzija - tiek nosūtīta kopā ar konfigurācijas datiem (neobligāti). | ||||
| del_hostids | array | Noņemto hostid masīvs (neobligāti). | ||||
| - | number | Hosta identifikators. | ||||
| del_macro_hostids | array | Hostid masīvs, kuriem ir noņemti visi makrosi (neobligāti). | ||||
| - | number | Hosta identifikators. | ||||
Piemērs:
proxy→server:
{
"request": "proxy config",
"host": "Zabbix proxy",
"version":"8.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]
]
},
"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
}
Datu pieprasījums
proxy data pieprasījumu nosūta starpniekserveris, lai nodrošinātu hosta saskarnes pieejamības, vēstures, atklāšanas un automātiskās reģistrācijas datus.
Šis pieprasījums tiek nosūtīts ik pēc DataSenderFrequency (starpniekservera konfigurācijas parametrs) sekundēm.
Ņemiet vērā, ka aktīvais starpniekserveris joprojām aptaujās Zabbix serveri katru sekundi attālināto komandu uzdevumu saņemšanai (ar tukšu proxy data pieprasījumu).
| name | value type | description | |
|---|---|---|---|
| proxy→server: | |||
| request | string | 'proxy data' | |
| host | string | Starpniekservera nosaukums. | |
| session | string | Datu sesijas marķieris. | |
| interface availability | array | (optional) Saskarnes pieejamības datu objektu masīvs. | |
| interfaceid | number | Saskarnes identifikators. | |
| available | number | Saskarnes pieejamība: 0, INTERFACE_AVAILABLE_UNKNOWN - nezināma 1, INTERFACE_AVAILABLE_TRUE - pieejama 2, INTERFACE_AVAILABLE_FALSE - nav pieejama |
|
| error | string | Saskarnes kļūdas ziņojums vai tukša virkne. | |
| history data | array | (optional) Vēstures datu objektu masīvs. | |
| itemid | number | Vienuma identifikators. | |
| clock | number | Vienuma vērtības laikspiedols (sekundes). | |
| ns | number | Vienuma vērtības laikspiedols (nanosekundes). | |
| value | string | (optional) Vienuma vērtība. | |
| id | number | Vērtības identifikators (augošs skaitītājs, unikāls vienas datu sesijas ietvaros). | |
| timestamp | number | (optional) Žurnāla tipa vienumu laikspiedols. | |
| source | string | (optional) Eventlog vienuma avota vērtība. | |
| severity | number | (optional) Eventlog vienuma nopietnības vērtība. | |
| eventid | number | (optional) Eventlog vienuma eventid vērtība. | |
| state | string | (optional) Vienuma stāvoklis: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
| lastlogsize | number | (optional) Pēdējais žurnāla izmērs žurnāla tipa vienumiem. | |
| mtime | number | (optional) Modifikācijas laiks žurnāla tipa vienumiem. | |
| discovery data | array | (optional) Atklāšanas datu objektu masīvs. | |
| clock | number | Atklāšanas datu laikspiedols. | |
| druleid | number | Atklāšanas kārtulas identifikators. | |
| dcheckid | number | Atklāšanas pārbaudes identifikators vai null atklāšanas kārtulas datiem. | |
| type | number | Atklāšanas pārbaudes tips: -1 atklāšanas kārtulas dati 0, SVC_SSH - SSH servisa pārbaude 1, SVC_LDAP - LDAP servisa pārbaude 2, SVC_SMTP - SMTP servisa pārbaude 3, SVC_FTP - FTP servisa pārbaude 4, SVC_HTTP - HTTP servisa pārbaude 5, SVC_POP - POP servisa pārbaude 6, SVC_NNTP - NNTP servisa pārbaude 7, SVC_IMAP - IMAP servisa pārbaude 8, SVC_TCP - TCP porta pieejamības pārbaude 9, SVC_AGENT - Zabbix aģents 10, SVC_SNMPv1 - SNMPv1 aģents 11, SVC_SNMPv2 - SNMPv2 aģents 12, SVC_ICMPPING - ICMP ping 13, SVC_SNMPv3 - SNMPv3 aģents 14, SVC_HTTPS - HTTPS servisa pārbaude 15, SVC_TELNET - Telnet pieejamības pārbaude |
|
| ip | string | Hosta IP adrese. | |
| dns | string | Hosta DNS nosaukums. | |
| port | number | (optional) Servisa porta numurs. | |
| key_ | string | (optional) Vienuma atslēga atklāšanas pārbaudei ar tipu 9 SVC_AGENT | |
| value | string | (optional) No servisa saņemtā vērtība; lielākajai daļai servisu tā var būt tukša. | |
| status | number | (optional) Servisa statuss: 0, DOBJECT_STATUS_UP - Serviss darbojas 1, DOBJECT_STATUS_DOWN - Serviss nedarbojas |
|
| autoregistration | array | (optional) Automātiskās reģistrācijas datu objektu masīvs. | |
| clock | number | Automātiskās reģistrācijas datu laikspiedols. | |
| host | string | Hosta nosaukums. | |
| ip | string | (optional) Hosta IP adrese. | |
| dns | string | (optional) No IP adreses atrisinātais DNS nosaukums. | |
| port | string | (optional) Hosta ports. | |
| host_metadata | string | (optional) Hosta metadati, ko nosūtījis aģents (pamatojoties uz HostMetadata vai HostMetadataItem aģenta konfigurācijas parametru). | |
| tasks | array | (optional) Uzdevumu masīvs. | |
| type | number | Uzdevuma tips: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - attālinātās komandas rezultāts |
|
| status | number | Attālinātās komandas izpildes statuss: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - attālinātā komanda veiksmīgi pabeigta 1, ZBX_TM_REMOTE_COMMAND_FAILED - attālinātā komanda neizdevās |
|
| error | string | (optional) Kļūdas ziņojums. | |
| parent_taskid | number | Vecākuzdevuma ID. | |
| more | number | (optional) 1 - ir vēl vēstures dati, ko nosūtīt | |
| clock | number | (optional) Datu pārsūtīšanas laikspiedols (sekundes). | |
| ns | number | (optional) Datu pārsūtīšanas laikspiedols (nanosekundes). | |
| version | string | Starpniekservera versija (<major>.<minor>.<build>). | |
| server→proxy: | |||
| response | string | Pieprasījuma veiksmes informācija ('success' vai 'failed'). | |
| upload | string | Vēsturisko datu augšupielādes kontrole (vēsture, automātiskā reģistrācija, hosta pieejamība, tīkla atklāšana). Iespējamās vērtības: enabled - normāla darbība disabled - serveris nepieņem datus (iespējams, iekšējās kešatmiņas limita pārsniegšanas dēļ) |
|
| tasks | array | (optional) Uzdevumu masīvs. | |
| type | number | Uzdevuma tips: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - attālinātā komanda |
|
| clock | number | Uzdevuma izveides laiks. | |
| ttl | number | Laiks sekundēs, pēc kura uzdevuma derīgums beidzas. | |
| commandtype | number | Attālinātās komandas tips: 0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - izmantot pielāgotu skriptu 1, ZBX_SCRIPT_TYPE_IPMI - izmantot IPMI 2, ZBX_SCRIPT_TYPE_SSH - izmantot SSH 3, ZBX_SCRIPT_TYPE_TELNET - izmantot Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - izmantot globālu skriptu (pašlaik funkcionāli ekvivalents pielāgotam skriptam) |
|
| command | string | Izpildāmā attālinātā komanda. | |
| execute_on | number | Izpildes mērķis pielāgotiem skriptiem: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - izpildīt skriptu uz aģenta 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - izpildīt skriptu uz servera 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - izpildīt skriptu uz starpniekservera |
|
| port | number | (optional) Ports Telnet un SSH komandām. | |
| authtype | number | (optional) Autentifikācijas tips SSH komandām. | |
| username | string | (optional) Lietotājvārds Telnet un SSH komandām. | |
| password | string | (optional) Parole Telnet un SSH komandām. | |
| publickey | string | (optional) Publiskā atslēga SSH komandām. | |
| privatekey | string | (optional) Privātā atslēga SSH komandām. | |
| parent_taskid | number | Vecākuzdevuma ID. | |
| hostid | number | Mērķa hosta ID. | |
Piemērs:
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": "8.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
}]
}