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 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; citādi 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 ar tipu, kas atkarīgs no kolonnas tipa datubāzes shēmā.
macro.secrets object Slepeno makro informācija, nav norādīts, ja vault makro 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 hostid masīvs (neobligāti).
- number Host identifikators.
del_macro_hostids array Hostid masīvs, kuriem ir noņemti visi makro (neobligāti).
- number Host identifikators.
proxy→server:
response string Pieprasījuma izpildes informācija ('success' vai 'failed').
version string Starpniekservera versija (<major>.<minor>.<build>).

Piemērs:

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, "Failu sistēmas atklāšanai"],
                [2, "Tīkla saskarnes atklāšanai"],
                [3, "Krātuves ierīces SNMP atklāšanai"],
                [4, "Windows pakalpojumu nosaukumi atklāšanai"],
                [5, "Windows pakalpojumu startēšanas stāvokļi atklāšanai"]
            ]
        },
        "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"
}
Datu pieprasījums

proxy data pieprasījums tiek izmantots, lai iegūtu hosta saskarnes pieejamības, vēsturiskos, atklāšanas un automātiskās reģistrācijas datus no starpniekservera. Šis pieprasījums tiek nosūtīts ik pēc ProxyDataFrequency (servera konfigurācijas parametra) 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āms
1, INTERFACE_AVAILABLE_TRUE - pieejams
2, INTERFACE_AVAILABLE_FALSE - nav pieejams
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 (sekundēs).
ns number Vienuma vērtības laikspiedols (nanosekundēs).
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) Žurnāla tipa vienumu pēdējais žurnāla izmērs.
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 noteikuma identifikators.
dcheckid number Atklāšanas pārbaudes identifikators vai null atklāšanas noteikuma datiem.
type number Atklāšanas pārbaudes tips:

-1 atklāšanas noteikuma dati
0, SVC_SSH - SSH pakalpojuma pārbaude
1, SVC_LDAP - LDAP pakalpojuma pārbaude
2, SVC_SMTP - SMTP pakalpojuma pārbaude
3, SVC_FTP - FTP pakalpojuma pārbaude
4, SVC_HTTP - HTTP pakalpojuma pārbaude
5, SVC_POP - POP pakalpojuma pārbaude
6, SVC_NNTP - NNTP pakalpojuma pārbaude
7, SVC_IMAP - IMAP pakalpojuma 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 pakalpojuma pārbaude
15, SVC_TELNET - Telnet pieejamības pārbaude
ip string Hosta IP adrese.
dns string Hosta DNS nosaukums.
port number (optional) Pakalpojuma porta numurs.
key_ string (optional) Vienuma atslēga atklāšanas pārbaudei ar tipu 9 SVC_AGENT
value string (optional) No pakalpojuma saņemtā vērtība, vairumam pakalpojumu var būt tukša.
status number (optional) Pakalpojuma statuss:

0, DOBJECT_STATUS_UP - pakalpojums darbojas
1, DOBJECT_STATUS_DOWN - pakalpojums nedarbojas
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ūta 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ālā komandas rezultāts
status number Attālās komandas izpildes statuss:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - attālā komanda veiksmīgi pabeigta
1, ZBX_TM_REMOTE_COMMAND_FAILED - attālā komanda neizdevās
error string (optional) Kļūdas ziņojums.
parent_taskid number Vecāka uzdevuma ID.
more number (optional) 1 - ir vēl nosūtāmi vēsturiskie dati.
clock number (optional) Datu pārsūtīšanas laikspiedols (sekundēs).
ns number (optional) Datu pārsūtīšanas laikspiedols (nanosekundēs).
version string Starpniekservera versija (<major>.<minor>.<build>).
server→proxy:
response string Pieprasījuma izpildes informācija ('success' vai 'failed').
tasks array (optional) Uzdevumu masīvs.
type number Uzdevuma tips:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - attālā komanda
clock number Uzdevuma izveides laiks.
ttl number Laiks sekundēs, pēc kura uzdevums beidzas.
commandtype number Attālā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ālo skriptu (šobrīd funkcionāli ekvivalents pielāgotam skriptam)
command string Izpildāmā attālā komanda.
execute_on number Izpildes mērķis pielāgotiem skriptiem:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - izpildīt skriptu aģentā
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - izpildīt skriptu serverī
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - izpildīt skriptu starpniekserverī
port number (optional) Ports Telnet un SSH komandām.
authtype number (optional) SSH komandu autentifikācijas tips.
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āka uzdevuma ID.
hostid number Mērķa hosta ID.

Piemērs:

serveris→starpniekserveris:

{
  "request": "proxy data"
}

starpniekserveris→serveris:

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

serveris→starpniekserveris:

{
  "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 starpniekserveru kartējuma revīzija.
server→proxy:
full_sync number 1 - ja tiek nosūtīti pilni konfigurācijas dati, citādi nav (neobligāti).
data array Tabulas datu objekts. Nav, 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 makro informācija, nav, ja vault makrosos nav izmaiņu (neobligāti).
proxy_group string 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 Host identifikators.
del_macro_hostids array Hostid masīvs, kuriem noņemtas visas makro vērtības (neobligāti).
- number Host identifikators.

Piemērs:

proxy→server:

{
  "request": "proxy config",
  "host": "Zabbix proxy",
  "version":"7.4.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 starpniekserveris nosūta, lai nodrošinātu hostu interfeisu 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 parametra) sekundēm. Ņemiet vērā, ka aktīvs starpniekserveris joprojām katru sekundi aptaujās Zabbix serveri par attālināto komandu uzdevumiem (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) Interfeisu pieejamības datu objektu masīvs.
interfaceid number Interfeisa identifikators.
available number Interfeisa pieejamība:

0, INTERFACE_AVAILABLE_UNKNOWN - nav zināms
1, INTERFACE_AVAILABLE_TRUE - pieejams
2, INTERFACE_AVAILABLE_FALSE - nav pieejams
error string Interfeisa 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 smaguma pakāpes 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) Žurnāla tipa vienumu pēdējais žurnāla izmērs.
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 noteikuma identifikators.
dcheckid number Atklāšanas pārbaudes identifikators vai null atklāšanas noteikuma datiem.
type number Atklāšanas pārbaudes tips:

-1 atklāšanas noteikuma dati
0, SVC_SSH - SSH pakalpojuma pārbaude
1, SVC_LDAP - LDAP pakalpojuma pārbaude
2, SVC_SMTP - SMTP pakalpojuma pārbaude
3, SVC_FTP - FTP pakalpojuma pārbaude
4, SVC_HTTP - HTTP pakalpojuma pārbaude
5, SVC_POP - POP pakalpojuma pārbaude
6, SVC_NNTP - NNTP pakalpojuma pārbaude
7, SVC_IMAP - IMAP pakalpojuma 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 pakalpojuma pārbaude
15, SVC_TELNET - Telnet pieejamības pārbaude
ip string Hosta IP adrese.
dns string Hosta DNS nosaukums.
port number (optional) Pakalpojuma porta numurs.
key_ string (optional) Vienuma atslēga atklāšanas pārbaudei ar tipu 9 SVC_AGENT
value string (optional) No pakalpojuma saņemtā vērtība, vairumam pakalpojumu var būt tukša.
status number (optional) Pakalpojuma statuss:

0, DOBJECT_STATUS_UP - pakalpojums darbojas
1, DOBJECT_STATUS_DOWN - pakalpojums 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 noteiktais 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ātas 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ākkārtas uzdevuma ID.
more number (optional) 1 - vēl ir vairāk vēstures datu, 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 izpildes informācija ('success' vai 'failed').
upload string Vēsturisko datu augšupielādes kontrole (vēsture, automātiskā reģistrācija, hostu 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 pārsnieguma dēļ)
tasks array (optional) Uzdevumu masīvs.
type number Uzdevuma tips:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - attālināta komanda
clock number Uzdevuma izveides laiks.
ttl number Laiks sekundēs, pēc kura uzdevums 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ālo skriptu (šobrīd 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 aģentā
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - izpildīt skriptu serverī
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - izpildīt skriptu starpniekserverī
port number (optional) Ports Telnet un SSH komandām.
authtype number (optional) SSH komandu autentifikācijas tips.
username string (optional) Lietotājvārds Telnet un SSH komandām.
password string (optional) Parole Telnet un SSH komandām.
publickey string (optional) SSH komandu publiskā atslēga.
privatekey string (optional) SSH komandu privātā atslēga.
parent_taskid number Vecākkārtas uzdevuma 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": "7.4.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
    }]
}