1 Server-Proxy-Datenaustauschprotokoll

Übersicht

Der Datenaustausch zwischen Server und Proxy basiert auf dem JSON-Format.

Anfrage- und Antwortnachrichten müssen mit Header und Datenlänge beginnen.

Passiver Proxy

Konfigurationsanfrage

Der Server sendet zunächst eine leere Anfrage proxy config. Diese Anfrage wird alle ProxyConfigFrequency (Schritte des Server-Konfigurationsparameters) Sekunden gesendet.

Der Proxy antwortet mit der aktuellen Proxy-Version, dem Sitzungs-Token und der Konfigurationsrevision. Der Server antwortet mit den Konfigurationsdaten, die aktualisiert werden müssen.

name value type description
server→proxy:
request string 'proxy config'
proxy→server:
version string Proxy-Version (<major>.<minor>.<build>).
session string Sitzungs-Token der Proxy-Konfiguration.
config_revision number Revisionsnummer der Proxy-Konfiguration.
server→proxy:
full_sync number 1 - wenn vollständige Konfigurationsdaten gesendet werden; andernfalls nicht vorhanden (optional).
data array Objekt mit Tabellendaten. Nicht vorhanden, wenn die Konfiguration nicht geändert wurde (optional).
<table> object Ein oder mehrere Objekte mit <table>-Daten (optional, abhängig von den Änderungen).
fields array Array von Feldnamen.
- string Feldname.
data array Array von Zeilen.
- array Array von Spalten.
- string,number Spaltenwert, dessen Typ vom Spaltentyp im Datenbankschema abhängt.
macro.secrets object Informationen zu geheimen Makros; nicht vorhanden, wenn es keine Änderungen an Vault-Makros gibt (optional).
config_revision number Revision des Konfigurations-Caches - wird zusammen mit den Konfigurationsdaten gesendet (optional).
del_hostids array Array entfernter Host-IDs (optional).
- number Host-Kennung.
del_macro_hostids array Array von Host-IDs, bei denen alle Makros entfernt wurden (optional).
- number Host-Kennung.
proxy→server:
response string Information über den Erfolg der Anfrage ('success' oder 'failed').
version string Proxy-Version (<major>.<minor>.<build>).

Beispiel:

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"
}
Datenanforderung

Die Anfrage proxy data wird verwendet, um Verfügbarkeitsdaten von Host-Schnittstellen sowie Verlaufs-, Discovery- und Autoregistrierungsdaten vom Proxy abzurufen. Diese Anfrage wird alle ProxyDataFrequency Sekunden (Konfigurationsparameter des Servers) gesendet.

name value type description
server→proxy:
request string 'proxy data'
proxy→server:
session string Token der Datensitzung.
interface availability array (optional) Array von Datenobjekten zur Schnittstellenverfügbarkeit.
interfaceid number Schnittstellen-ID.
available number Schnittstellenverfügbarkeit:

0, INTERFACE_AVAILABLE_UNKNOWN - unbekannt
1, INTERFACE_AVAILABLE_TRUE - verfügbar
2, INTERFACE_AVAILABLE_FALSE - nicht verfügbar
error string Fehlermeldung der Schnittstelle oder leerer String.
history data array (optional) Array von Verlaufsdatenobjekten.
itemid number Datenpunkt-ID.
clock number Zeitstempel des Datenpunktwerts (Sekunden).
ns number Zeitstempel des Datenpunktwerts (Nanosekunden).
value string (optional) Datenpunktwert.
id number Wert-ID (aufsteigender Zähler, eindeutig innerhalb einer Datensitzung).
timestamp number (optional) Zeitstempel von Datenpunkten vom Typ Log.
source string (optional) Quellwert des Eventlog-Datenpunkts.
severity number (optional) Schweregradwert des Eventlog-Datenpunkts.
eventid number (optional) eventid-Wert des Eventlog-Datenpunkts.
state string (optional) Datenpunktstatus:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (optional) Letzte Loggröße von Datenpunkten vom Typ Log.
mtime number (optional) Änderungszeit von Datenpunkten vom Typ Log.
discovery data array (optional) Array von Discovery-Datenobjekten.
clock number Zeitstempel der Discovery-Daten.
druleid number ID der Discovery-Regel.
dcheckid number ID der Discovery-Prüfung oder null für Daten der Discovery-Regel.
type number Typ der Discovery-Prüfung:

-1 Daten der Discovery-Regel
0, SVC_SSH - SSH-Serviceprüfung
1, SVC_LDAP - LDAP-Serviceprüfung
2, SVC_SMTP - SMTP-Serviceprüfung
3, SVC_FTP - FTP-Serviceprüfung
4, SVC_HTTP - HTTP-Serviceprüfung
5, SVC_POP - POP-Serviceprüfung
6, SVC_NNTP - NNTP-Serviceprüfung
7, SVC_IMAP - IMAP-Serviceprüfung
8, SVC_TCP - TCP-Portverfügbarkeitsprüfung
9, SVC_AGENT - Zabbix Agent
10, SVC_SNMPv1 - SNMPv1-Agent
11, SVC_SNMPv2 - SNMPv2-Agent
12, SVC_ICMPPING - ICMP-Ping
13, SVC_SNMPv3 - SNMPv3-Agent
14, SVC_HTTPS - HTTPS-Serviceprüfung
15, SVC_TELNET - Telnet-Verfügbarkeitsprüfung
ip string IP-Adresse des Hosts.
dns string DNS-Name des Hosts.
port number (optional) Portnummer des Dienstes.
key_ string (optional) Datenpunktschlüssel für Discovery-Prüfungen vom Typ 9 SVC_AGENT
value string (optional) Vom Dienst empfangener Wert; kann bei den meisten Diensten leer sein.
status number (optional) Dienststatus:

0, DOBJECT_STATUS_UP - Dienst UP
1, DOBJECT_STATUS_DOWN - Dienst DOWN
auto registration array (optional) Array von Autoregistrierungs-Datenobjekten.
clock number Zeitstempel der Autoregistrierungsdaten.
host string Host-Name.
ip string (optional) IP-Adresse des Hosts.
dns string (optional) Aus der IP-Adresse aufgelöster DNS-Name.
port string (optional) Host-Port.
host_metadata string (optional) Vom Agent gesendete Host-Metadaten (basierend auf dem Agent-Konfigurationsparameter HostMetadata oder HostMetadataItem).
tasks array (optional) Array von Aufgaben.
type number Aufgabentyp:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - Ergebnis eines Remote-Befehls
status number Ausführungsstatus des Remote-Befehls:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - Remote-Befehl erfolgreich abgeschlossen
1, ZBX_TM_REMOTE_COMMAND_FAILED - Remote-Befehl fehlgeschlagen
error string (optional) Fehlermeldung.
parent_taskid number ID der übergeordneten Aufgabe.
more number (optional) 1 - es sind weitere Verlaufsdaten zu senden.
clock number (optional) Zeitstempel der Datenübertragung (Sekunden).
ns number (optional) Zeitstempel der Datenübertragung (Nanosekunden).
version string Proxy-Version (<major>.<minor>.<build>).
server→proxy:
response string Information über den Erfolg der Anfrage ('success' oder 'failed').
tasks array (optional) Array von Aufgaben.
type number Aufgabentyp:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - Remote-Befehl
clock number Erstellungszeit der Aufgabe.
ttl number Zeit in Sekunden, nach der die Aufgabe abläuft.
commandtype number Typ des Remote-Befehls:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - benutzerdefiniertes Skript verwenden
1, ZBX_SCRIPT_TYPE_IPMI - IPMI verwenden
2, ZBX_SCRIPT_TYPE_SSH - SSH verwenden
3, ZBX_SCRIPT_TYPE_TELNET - Telnet verwenden
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - globales Skript verwenden (derzeit funktional gleichwertig mit einem benutzerdefinierten Skript)
command string Auszuführender Remote-Befehl.
execute_on number Ausführungsziel für benutzerdefinierte Skripte:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - Skript auf dem Agent ausführen
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - Skript auf dem Server ausführen
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - Skript auf dem Proxy ausführen
port number (optional) Port für Telnet- und SSH-Befehle.
authtype number (optional) Authentifizierungstyp für SSH-Befehle.
username string (optional) Benutzername für Telnet- und SSH-Befehle.
password string (optional) Passwort für Telnet- und SSH-Befehle.
publickey string (optional) Öffentlicher Schlüssel für SSH-Befehle.
privatekey string (optional) Privater Schlüssel für SSH-Befehle.
parent_taskid number ID der übergeordneten Aufgabe.
hostid number ID des Ziel-Hosts.

Beispiel:

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

Der Austausch proxy tasks verarbeitet die Übermittlung und Bestätigung von Aufgaben für Remote-Befehle zwischen dem Server und einem passiven Proxy. Wenn der Server den Proxy nach Aufgabenergebnissen abfragt, sendet er in dem durch ProxyDataFrequency definierten Intervall eine leere Anfrage proxy tasks. Der Proxy antwortet mit seiner aktuellen Version und allen ausstehenden Aufgabenergebnissen (einschließlich Zeitstempeln). Der Server bestätigt dann den Empfang, indem er ein response zurückgibt, und kann neue Aufgaben einschließen, die der Proxy ausführen soll.

name value type description
server→proxy:
request string 'proxy tasks'
proxy→server:
version string Proxy-Version (<major>.<minor>.<build>).
clock number (optional) Zeitstempel der Datenübertragung (Sekunden).
ns number (optional) Zeitstempel der Datenübertragung (Nanosekunden).
server→proxy:
response string Information über den Erfolg der Anfrage ('success' oder 'failed').

Beispiel:

server→proxy:

{
  "request":"proxy tasks"
}

proxy→server:

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

server→proxy:

{
  "response":"success"
}

Aktiver Proxy

Konfigurationsanfrage

Die Anfrage proxy config wird von einem aktiven Proxy gesendet, um Proxy-Konfigurationsdaten abzurufen. Diese Anfrage wird alle ProxyConfigFrequency Sekunden gesendet (Proxy-Konfigurationsparameter).

name value type description
proxy→server:
request string 'proxy config'
host string
Proxy-Name.
version string Proxy-Version (<major>.<minor>.<build>).
session string Sitzungs-Token der Proxy-Konfiguration.
config_revision number Revisionsnummer der Proxy-Konfiguration.
hostmap_revision number Aktuelle Revisionsnummer der Host-zu-Proxy-Zuordnung.
server→proxy:
full_sync number 1 - wenn vollständige Konfigurationsdaten gesendet werden, andernfalls nicht vorhanden (optional).
data array Objekt mit Tabellendaten. Nicht vorhanden, wenn die Konfiguration nicht geändert wurde (optional).
<table> object Ein oder mehrere Objekte mit <table>-Daten (optional, abhängig von Änderungen).
fields array Array von Feldnamen.
- string Feldname.
data array Array von Zeilen.
- array Array von Spalten.
- string,number Spaltenwert, dessen Typ vom Spaltentyp im Datenbankschema abhängt.
macro.secrets object Informationen zu geheimen Makros; nicht vorhanden, wenn es keine Änderungen an Vault-Makros gibt (optional).
proxy_group string Der Name der Proxy-Gruppe, zu der der Proxy gehört.
config_revision number Revision des Konfigurations-Caches - wird zusammen mit den Konfigurationsdaten gesendet (optional).
del_hostids array Array entfernter Host-IDs (optional).
- number Host-Kennung.
del_macro_hostids array Array von Host-IDs, bei denen alle Makros entfernt wurden (optional).
- number Host-Kennung.

Beispiel:

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

Die Anfrage proxy data wird vom Proxy gesendet, um die Verfügbarkeit von Host-Schnittstellen sowie Verlaufs-, Discovery- und Autoregistrierungsdaten bereitzustellen. Diese Anfrage wird alle DataSenderFrequency Sekunden gesendet (Konfigurationsparameter des Proxy). Beachten Sie, dass ein aktiver Proxy den Zabbix Server weiterhin jede Sekunde auf Remote-Command-Aufgaben abfragt (mit einer leeren Anfrage proxy data).

name value type description
proxy→server:
request string 'proxy data'
host string Proxy-Name.
session string Datensitzungs-Token.
interface availability array (optional) Array von Datenobjekten zur Schnittstellenverfügbarkeit.
interfaceid number Schnittstellen-ID.
available number Schnittstellenverfügbarkeit:

0, INTERFACE_AVAILABLE_UNKNOWN - unbekannt
1, INTERFACE_AVAILABLE_TRUE - verfügbar
2, INTERFACE_AVAILABLE_FALSE - nicht verfügbar
error string Fehlermeldung der Schnittstelle oder leerer String.
history data array (optional) Array von Verlaufsdatenobjekten.
itemid number Datenpunkt-ID.
clock number Zeitstempel des Datenpunktwerts (Sekunden).
ns number Zeitstempel des Datenpunktwerts (Nanosekunden).
value string (optional) Datenpunktwert.
id number Wert-ID (aufsteigender Zähler, eindeutig innerhalb einer Datensitzung).
timestamp number (optional) Zeitstempel von Datenpunkten vom Typ Log.
source string (optional) Quellwert des Eventlog-Datenpunkts.
severity number (optional) Schweregradwert des Eventlog-Datenpunkts.
eventid number (optional) eventid-Wert des Eventlog-Datenpunkts.
state string (optional) Datenpunktstatus:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (optional) Letzte Log-Größe von Datenpunkten vom Typ Log.
mtime number (optional) Änderungszeit von Datenpunkten vom Typ Log.
discovery data array (optional) Array von Discovery-Datenobjekten.
clock number Zeitstempel der Discovery-Daten.
druleid number ID der Discovery-Regel.
dcheckid number ID der Discovery-Prüfung oder null für Daten der Discovery-Regel.
type number Typ der Discovery-Prüfung:

-1 Daten der Discovery-Regel
0, SVC_SSH - SSH-Serviceprüfung
1, SVC_LDAP - LDAP-Serviceprüfung
2, SVC_SMTP - SMTP-Serviceprüfung
3, SVC_FTP - FTP-Serviceprüfung
4, SVC_HTTP - HTTP-Serviceprüfung
5, SVC_POP - POP-Serviceprüfung
6, SVC_NNTP - NNTP-Serviceprüfung
7, SVC_IMAP - IMAP-Serviceprüfung
8, SVC_TCP - Prüfung der TCP-Port-Verfügbarkeit
9, SVC_AGENT - Zabbix Agent
10, SVC_SNMPv1 - SNMPv1-Agent
11, SVC_SNMPv2 - SNMPv2-Agent
12, SVC_ICMPPING - ICMP-Ping
13, SVC_SNMPv3 - SNMPv3-Agent
14, SVC_HTTPS - HTTPS-Serviceprüfung
15, SVC_TELNET - Prüfung der Telnet-Verfügbarkeit
ip string IP-Adresse des Hosts.
dns string DNS-Name des Hosts.
port number (optional) Portnummer des Dienstes.
key_ string (optional) Datenpunktschlüssel für Discovery-Prüfungen vom Typ 9 SVC_AGENT
value string (optional) Vom Dienst empfangener Wert; kann bei den meisten Diensten leer sein.
status number (optional) Dienststatus:

0, DOBJECT_STATUS_UP - Dienst UP
1, DOBJECT_STATUS_DOWN - Dienst DOWN
autoregistration array (optional) Array von Autoregistrierungs-Datenobjekten.
clock number Zeitstempel der Autoregistrierungsdaten.
host string Host-Name.
ip string (optional) IP-Adresse des Hosts.
dns string (optional) Aus der IP-Adresse aufgelöster DNS-Name.
port string (optional) Host-Port.
host_metadata string (optional) Vom Agent gesendete Host-Metadaten (basierend auf dem Agent-Konfigurationsparameter HostMetadata oder HostMetadataItem).
tasks array (optional) Array von Aufgaben.
type number Aufgabentyp:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - Ergebnis des Remote-Commands
status number Ausführungsstatus des Remote-Commands:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - Remote-Command erfolgreich abgeschlossen
1, ZBX_TM_REMOTE_COMMAND_FAILED - Remote-Command fehlgeschlagen
error string (optional) Fehlermeldung.
parent_taskid number ID der übergeordneten Aufgabe.
more number (optional) 1 - es sind weitere Verlaufsdaten zu senden
clock number (optional) Zeitstempel der Datenübertragung (Sekunden).
ns number (optional) Zeitstempel der Datenübertragung (Nanosekunden).
version string Proxy-Version (<major>.<minor>.<build>).
server→proxy:
response string Information über den Erfolg der Anfrage ('success' oder 'failed').
upload string Upload-Steuerung für historische Daten (Verlauf, Autoregistrierung, Host-Verfügbarkeit, Netzwerk-Discovery).

Mögliche Werte:
enabled - normaler Betrieb
disabled - der Server akzeptiert keine Daten (möglicherweise aufgrund eines internen Cache-Limits)
tasks array (optional) Array von Aufgaben.
type number Aufgabentyp:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - Remote-Command
clock number Zeitpunkt der Aufgabenerstellung.
ttl number Zeit in Sekunden, nach der die Aufgabe abläuft.
commandtype number Typ des Remote-Commands:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - benutzerdefiniertes Skript verwenden
1, ZBX_SCRIPT_TYPE_IPMI - IPMI verwenden
2, ZBX_SCRIPT_TYPE_SSH - SSH verwenden
3, ZBX_SCRIPT_TYPE_TELNET - Telnet verwenden
4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - globales Skript verwenden (derzeit funktional gleichwertig mit einem benutzerdefinierten Skript)
command string Auszuführender Remote-Command.
execute_on number Ausführungsziel für benutzerdefinierte Skripte:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - Skript auf dem Agent ausführen
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - Skript auf dem Server ausführen
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - Skript auf dem Proxy ausführen
port number (optional) Port für Telnet- und SSH-Commands.
authtype number (optional) Authentifizierungstyp für SSH-Commands.
username string (optional) Benutzername für Telnet- und SSH-Commands.
password string (optional) Passwort für Telnet- und SSH-Commands.
publickey string (optional) Öffentlicher Schlüssel für SSH-Commands.
privatekey string (optional) Privater Schlüssel für SSH-Commands.
parent_taskid number ID der übergeordneten Aufgabe.
hostid number ID des Ziel-Hosts.

Beispiel:

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