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