1 Protocollo di scambio dati server-proxy

Panoramica

Lo scambio di dati server - proxy si basa sul formato JSON.

I messaggi di richiesta e risposta devono iniziare con header and data length.

Proxy passivo

Richiesta di configurazione

Il server invierà inizialmente una richiesta proxy config vuota. Questa richiesta viene inviata ogni ProxyConfigFrequency (parametro di configurazione del server) secondi.

Il proxy risponde con la versione corrente del proxy, il token di sessione e la revisione della configurazione. Il server risponde con i dati di configurazione che devono essere aggiornati.

name value type description
server→proxy:
request string 'proxy config'
proxy→server:
version string Versione del proxy (<major>.<minor>.<build>).
session string Token di sessione della configurazione del proxy.
config_revision number Revisione della configurazione del proxy.
server→proxy:
full_sync number 1 - se vengono inviati i dati completi di configurazione; assente - altrimenti (opzionale).
data array Oggetto dei dati delle tabelle. Assente se la configurazione non è stata modificata (opzionale).
<table> object Uno o più oggetti con i dati di <table> (opzionale, in base alle modifiche).
fields array Array di nomi di campo.
- string Nome del campo.
data array Array di righe.
- array Array di colonne.
- string,number Valore della colonna con tipo dipendente dal tipo della colonna nello schema del database.
macro.secrets object Informazioni sulle macro segrete, assente se non ci sono modifiche nelle macro del vault (opzionale).
config_revision number Revisione della cache di configurazione - inviata con i dati di configurazione (opzionale).
del_hostids array Array degli hostid rimossi (opzionale).
- number Identificatore host.
del_macro_hostids array Array degli hostid da cui sono state rimosse tutte le macro (opzionale).
- number Identificatore host.
proxy→server:
response string Informazioni sull'esito della richiesta ('success' o 'failed').
version string Versione del proxy (<major>.<minor>.<build>).

Esempio:

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"
}
Richiesta dati

La richiesta proxy data viene utilizzata per ottenere dal proxy i dati di disponibilità delle interfacce del host, i dati storici, di discovery e di autoregistrazione. Questa richiesta viene inviata ogni ProxyDataFrequency secondi (parametro di configurazione del server).

name value type description
server→proxy:
request string 'proxy data'
proxy→server:
session string Token della sessione dati.
interface availability array (opzionale) Array di oggetti dati sulla disponibilità delle interfacce.
interfaceid number Identificatore dell'interfaccia.
available number Disponibilità dell'interfaccia:

0, INTERFACE_AVAILABLE_UNKNOWN - sconosciuta
1, INTERFACE_AVAILABLE_TRUE - disponibile
2, INTERFACE_AVAILABLE_FALSE - non disponibile
error string Messaggio di errore dell'interfaccia oppure stringa vuota.
history data array (opzionale) Array di oggetti dati storici.
itemid number Identificatore dell'item.
clock number Timestamp del valore dell'item (secondi).
ns number Timestamp del valore dell'item (nanosecondi).
value string (opzionale) Valore dell'item.
id number Identificatore del valore (contatore crescente, univoco all'interno di una sessione dati).
timestamp number (opzionale) Timestamp degli item di tipo log.
source string (opzionale) Valore source dell'item eventlog.
severity number (opzionale) Valore severity dell'item eventlog.
eventid number (opzionale) Valore eventid dell'item eventlog.
state string (opzionale) Stato dell'item:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (opzionale) Ultima dimensione del log per gli item di tipo log.
mtime number (opzionale) Ora di modifica degli item di tipo log.
discovery data array (opzionale) Array di oggetti dati di discovery.
clock number Timestamp dei dati di discovery.
druleid number Identificatore della regola di discovery.
dcheckid number Identificatore del controllo di discovery oppure null per i dati della regola di discovery.
type number Tipo di controllo di discovery:

-1 dati della regola di discovery
0, SVC_SSH - controllo del servizio SSH
1, SVC_LDAP - controllo del servizio LDAP
2, SVC_SMTP - controllo del servizio SMTP
3, SVC_FTP - controllo del servizio FTP
4, SVC_HTTP - controllo del servizio HTTP
5, SVC_POP - controllo del servizio POP
6, SVC_NNTP - controllo del servizio NNTP
7, SVC_IMAP - controllo del servizio IMAP
8, SVC_TCP - controllo della disponibilità della porta TCP
9, SVC_AGENT - Zabbix agent
10, SVC_SNMPv1 - agent SNMPv1
11, SVC_SNMPv2 - agent SNMPv2
12, SVC_ICMPPING - ping ICMP
13, SVC_SNMPv3 - agent SNMPv3
14, SVC_HTTPS - controllo del servizio HTTPS
15, SVC_TELNET - controllo della disponibilità Telnet
ip string Indirizzo IP del host.
dns string Nome DNS del host.
port number (opzionale) Numero di porta del servizio.
key_ string (opzionale) Chiave item per il controllo di discovery di tipo 9 SVC_AGENT
value string (opzionale) Valore ricevuto dal servizio; può essere vuoto per la maggior parte dei servizi.
status number (opzionale) Stato del servizio:

0, DOBJECT_STATUS_UP - Servizio UP
1, DOBJECT_STATUS_DOWN - Servizio DOWN
auto registration array (opzionale) Array di oggetti dati di autoregistrazione.
clock number Timestamp dei dati di autoregistrazione.
host string Nome host.
ip string (opzionale) Indirizzo IP del host.
dns string (opzionale) Nome DNS risolto dall'indirizzo IP.
port string (opzionale) Porta del host.
host_metadata string (opzionale) Metadati del host inviati dall'agent (in base al parametro di configurazione dell'agent HostMetadata o HostMetadataItem).
tasks array (opzionale) Array di task.
type number Tipo di task:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - risultato del comando remoto
status number Stato di esecuzione del comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - comando remoto completato con successo
1, ZBX_TM_REMOTE_COMMAND_FAILED - comando remoto non riuscito
error string (opzionale) Messaggio di errore.
parent_taskid number ID del task padre.
more number (opzionale) 1 - ci sono altri dati storici da inviare.
clock number (opzionale) Timestamp del trasferimento dati (secondi).
ns number (opzionale) Timestamp del trasferimento dati (nanosecondi).
version string Versione del proxy (<major>.<minor>.<build>).
server→proxy:
response string Informazione sull'esito della richiesta ('success' oppure 'failed').
tasks array (opzionale) Array di task.
type number Tipo di task:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock number Ora di creazione del task.
ttl number Tempo in secondi dopo il quale il task scade.
commandtype number Tipo di comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usa script personalizzato
1, ZBX_SCRIPT_TYPE_IPMI - usa IPMI
2, ZBX_SCRIPT_TYPE_SSH - usa SSH
3, ZBX_SCRIPT_TYPE_TELNET - usa Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - usa script globale (attualmente funzionalmente equivalente a uno script personalizzato)
command string Comando remoto da eseguire.
execute_on number Destinazione di esecuzione per gli script personalizzati:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - esegui lo script su agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - esegui lo script su server
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - esegui lo script su proxy
port number (opzionale) Porta per i comandi Telnet e SSH.
authtype number (opzionale) Tipo di autenticazione per i comandi SSH.
username string (opzionale) Nome utente per i comandi Telnet e SSH.
password string (opzionale) Password per i comandi Telnet e SSH.
publickey string (opzionale) Chiave pubblica per i comandi SSH.
privatekey string (opzionale) Chiave privata per i comandi SSH.
parent_taskid number ID del task padre.
hostid number ID del host di destinazione.

Esempio:

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
      }
  ]
}
Richiesta di task

Lo scambio proxy tasks gestisce la consegna e la conferma di ricezione dei task dei comandi remoti tra il server e un proxy passivo. Quando il server interroga il proxy per ottenere i risultati dei task, invia una richiesta proxy tasks vuota all'intervallo definito da ProxyDataFrequency. Il proxy risponde con la propria versione corrente e con eventuali risultati di task in sospeso (inclusi i timestamp). Il server quindi conferma la ricezione restituendo una response e può includere nuovi task da eseguire da parte del proxy.

name value type description
server→proxy:
request string 'proxy tasks'
proxy→server:
version string Versione del proxy (<major>.<minor>.<build>).
clock number (opzionale) Timestamp del trasferimento dati (secondi).
ns number (opzionale) Timestamp del trasferimento dati (nanosecondi).
server→proxy:
response string Informazioni sull'esito della richiesta ('success' o 'failed').

Esempio:

server→proxy:

{
  "request":"proxy tasks"
}

proxy→server:

{
  "version":"7.0.0",
  "clock":1721059872,
  "ns":848141522
}

server→proxy:

{
  "response":"success"
}

Proxy attivo

Richiesta di configurazione

La richiesta proxy config viene inviata da un proxy attivo per ottenere i dati di configurazione del proxy. Questa richiesta viene inviata ogni ProxyConfigFrequency secondi (parametro di configurazione del proxy).

name value type description
proxy→server:
request string 'proxy config'
host string
Nome del proxy.
version string Versione del proxy (<major>.<minor>.<build>).
session string Token di sessione della configurazione del proxy.
config_revision number Revisione della configurazione del proxy.
hostmap_revision number Revisione corrente della mappatura host-proxy.
server→proxy:
full_sync number 1 - se vengono inviati i dati completi di configurazione, assente altrimenti (opzionale).
data array Oggetto dei dati della tabella. Assente se la configurazione non è stata modificata (opzionale).
<table> object Uno o più oggetti con i dati di <table> (opzionale, in base alle modifiche).
fields array Array di nomi di campo.
- string Nome del campo.
data array Array di righe.
- array Array di colonne.
- string,number Valore della colonna con tipo dipendente dal tipo di colonna nello schema del database.
macro.secrets object Informazioni sulle macro segrete, assente se non ci sono modifiche nelle macro del vault (opzionale).
proxy_group string Il nome del gruppo di proxy a cui appartiene il proxy.
config_revision number Revisione della cache di configurazione - inviata con i dati di configurazione (opzionale).
del_hostids array Array degli hostid rimossi (opzionale).
- number Identificatore host.
del_macro_hostids array Array degli hostid da cui sono state rimosse tutte le macro (opzionale).
- number Identificatore host.

Esempio:

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
}
Richiesta dati

La richiesta proxy data viene inviata dal proxy per fornire dati sulla disponibilità delle interfacce del host, cronologia, individuazione e registrazione automatica. Questa richiesta viene inviata ogni DataSenderFrequency secondi (parametro di configurazione del proxy). Si noti che il proxy attivo continuerà comunque a interrogare Zabbix server ogni secondo per le attività dei comandi remoti (con una richiesta proxy data vuota).

name value type description
proxy→server:
request string 'proxy data'
host string Nome del proxy.
session string Token della sessione dati.
interface availability array (opzionale) Array di oggetti dati sulla disponibilità dell'interfaccia.
interfaceid number Identificatore dell'interfaccia.
available number Disponibilità dell'interfaccia:

0, INTERFACE_AVAILABLE_UNKNOWN - sconosciuta
1, INTERFACE_AVAILABLE_TRUE - disponibile
2, INTERFACE_AVAILABLE_FALSE - non disponibile
error string Messaggio di errore dell'interfaccia o stringa vuota.
history data array (opzionale) Array di oggetti dati della cronologia.
itemid number Identificatore dell'item.
clock number Timestamp del valore dell'item (secondi).
ns number Timestamp del valore dell'item (nanosecondi).
value string (opzionale) Valore dell'item.
id number Identificatore del valore (contatore crescente, univoco all'interno di una sessione dati).
timestamp number (opzionale) Timestamp degli item di tipo log.
source string (opzionale) Valore source dell'item eventlog.
severity number (opzionale) Valore severity dell'item eventlog.
eventid number (opzionale) Valore eventid dell'item eventlog.
state string (opzionale) Stato dell'item:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (opzionale) Ultima dimensione del log degli item di tipo log.
mtime number (opzionale) Ora di modifica degli item di tipo log.
discovery data array (opzionale) Array di oggetti dati di individuazione.
clock number Timestamp dei dati di individuazione.
druleid number Identificatore della regola di individuazione.
dcheckid number Identificatore del controllo di individuazione oppure null per i dati della regola di individuazione.
type number Tipo di controllo di individuazione:

-1 dati della regola di individuazione
0, SVC_SSH - controllo del servizio SSH
1, SVC_LDAP - controllo del servizio LDAP
2, SVC_SMTP - controllo del servizio SMTP
3, SVC_FTP - controllo del servizio FTP
4, SVC_HTTP - controllo del servizio HTTP
5, SVC_POP - controllo del servizio POP
6, SVC_NNTP - controllo del servizio NNTP
7, SVC_IMAP - controllo del servizio IMAP
8, SVC_TCP - controllo della disponibilità della porta TCP
9, SVC_AGENT - Zabbix agent
10, SVC_SNMPv1 - agent SNMPv1
11, SVC_SNMPv2 - agent SNMPv2
12, SVC_ICMPPING - ping ICMP
13, SVC_SNMPv3 - agent SNMPv3
14, SVC_HTTPS - controllo del servizio HTTPS
15, SVC_TELNET - controllo della disponibilità Telnet
ip string Indirizzo IP del host.
dns string Nome DNS del host.
port number (opzionale) Numero di porta del servizio.
key_ string (opzionale) Chiave item per il controllo di individuazione di tipo 9 SVC_AGENT
value string (opzionale) Valore ricevuto dal servizio; per la maggior parte dei servizi può essere vuoto.
status number (opzionale) Stato del servizio:

0, DOBJECT_STATUS_UP - Servizio UP
1, DOBJECT_STATUS_DOWN - Servizio DOWN
autoregistration array (opzionale) Array di oggetti dati di registrazione automatica.
clock number Timestamp dei dati di registrazione automatica.
host string Nome del host.
ip string (opzionale) Indirizzo IP del host.
dns string (opzionale) Nome DNS risolto dall'indirizzo IP.
port string (opzionale) Porta del host.
host_metadata string (opzionale) Metadati del host inviati dall'agent (in base al parametro di configurazione dell'agent HostMetadata o HostMetadataItem).
tasks array (opzionale) Array di attività.
type number Tipo di attività:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - risultato del comando remoto
status number Stato di esecuzione del comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - comando remoto completato con successo
1, ZBX_TM_REMOTE_COMMAND_FAILED - comando remoto non riuscito
error string (opzionale) Messaggio di errore.
parent_taskid number ID dell'attività padre.
more number (opzionale) 1 - ci sono altri dati della cronologia da inviare
clock number (opzionale) Timestamp del trasferimento dati (secondi).
ns number (opzionale) Timestamp del trasferimento dati (nanosecondi).
version string Versione del proxy (<major>.<minor>.<build>).
server→proxy:
response string Informazione sull'esito della richiesta ('success' o 'failed').
upload string Controllo del caricamento per i dati storici (cronologia, registrazione automatica, disponibilità del host, individuazione di rete).

Valori possibili:
enabled - funzionamento normale
disabled - il server non accetta dati (possibilmente a causa del superamento del limite della cache interna)
tasks array (opzionale) Array di attività.
type number Tipo di attività:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock number Ora di creazione dell'attività.
ttl number Tempo in secondi dopo il quale l'attività scade.
commandtype number Tipo di comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usa script personalizzato
1, ZBX_SCRIPT_TYPE_IPMI - usa IPMI
2, ZBX_SCRIPT_TYPE_SSH - usa SSH
3, ZBX_SCRIPT_TYPE_TELNET - usa Telnet
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - usa script globale (attualmente equivalente dal punto di vista funzionale a uno script personalizzato)
command string Comando remoto da eseguire.
execute_on number Destinazione di esecuzione per gli script personalizzati:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - esegui lo script sull'agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - esegui lo script sul server
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - esegui lo script sul proxy
port number (opzionale) Porta per i comandi Telnet e SSH.
authtype number (opzionale) Tipo di autenticazione per i comandi SSH.
username string (opzionale) Nome utente per i comandi Telnet e SSH.
password string (opzionale) Password per i comandi Telnet e SSH.
publickey string (opzionale) Chiave pubblica per i comandi SSH.
privatekey string (opzionale) Chiave privata per i comandi SSH.
parent_taskid number ID dell'attività padre.
hostid number ID del host di destinazione.

Esempio:

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