[comment]: # ({7669b1c2-7669b1c2})
# 1 Server-Proxy-Datenaustauschprotokoll

[comment]: # ({/7669b1c2-7669b1c2})

[comment]: # ({7382efcd-7382efcd})
#### Übersicht

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

Anfrage- und Antwortnachrichten müssen mit [Header und Datenlänge](/manual/appendix/protocols/header_datalen) beginnen.

[comment]: # ({/7382efcd-7382efcd})

[comment]: # ({14661e11-14661e11})
#### Passiver Proxy

[comment]: # ({/14661e11-14661e11})

[comment]: # ({52650084-fac082ad})
##### Konfigurationsanfrage

Der Server sendet zunächst eine leere `proxy config`-Anfrage. Diese Anfrage wird alle `ProxyConfigFrequency`
(SERVER-Konfigurationsparameter) Sekunden gesendet.

Der Proxy antwortet mit der aktuellen Proxy-Version, dem Sitzungstoken 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* | Proxy-Konfigurationssitzungstoken. |
| **config_revision** | <   | <   | <   | <   | *number* | Proxy-Konfigurationsrevision. |
| |<|<|<|<|<|<|
| 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 mit einem vom Spaltentyp im Datenbankschema abhängigen Typ. |
|     | <   | <   | <   | <   | <   | <   |
| **macro.secrets** | <   | <   | <   | <  | *object* | Informationen zu geheimen Makros, nicht vorhanden, wenn es keine Änderungen bei Vault-Makros gibt (optional). |
| **config_revision** | <   | <   | <   | <   | *number* | Konfigurations-Cache-Revision - zusammen mit den Konfigurationsdaten gesendet (optional). |
| **del_hostids** | <   | <   | <   | <   | *array* | Array der entfernten Host-IDs (optional). |
|     | -   | <   | <   | <   | *number* | Host-ID. |
| **del_macro_hostids** | <   | <   | <   | <   | *array* | Array von Host-IDs, bei denen alle Makros entfernt wurden (optional). |
|     | -   | <   | <   | <   | *number* | Host-ID. |
|     | <   | <   | <   | <   | <   | <   |
| proxy→server: | <   | <   | <   | <   | <   | <   |
| **response** | <   | <   | <   | <   | *string* | Erfolgsinformation der Anfrage ('success' oder 'failed'). |
| **version** | <   | <   | <   | <   | *string* | Proxy-Version (\<major>.\<minor>.\<build>). |

Beispiel:

server→proxy:

```json
{
  "request":"proxy config"
} 
```

proxy→server:

```json
{
  "version": "7.4.0",
  "session": "0033124949800811e5686dbfd9bcea98",
  "config_revision": 0
}
```

server→proxy:

```json
{
	"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, "Dateisysteme für die Erkennung"],
				[2, "Netzwerkschnittstellen für die Erkennung"],
				[3, "Speichergeräte für die SNMP-Erkennung"],
				[4, "Windows-Dienstnamen für die Erkennung"],
				[5, "Windows-Dienststartzustände für die Erkennung"]
			]
		},
		"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:

```json
{
  "response": "success",
  "version": "7.4.0"
}
```

[comment]: # ({/52650084-fac082ad})

[comment]: # ({74b1e336-c348e5d9})
##### Datenanforderung

Die Anforderung `proxy data` wird verwendet, um Verfügbarkeit von Host-Schnittstellen sowie historische, Discovery- und Autoregistrierungsdaten vom Proxy abzurufen. Diese Anforderung wird alle `ProxyDataFrequency` Sekunden (Server-Konfigurationsparameter) gesendet.

|name|<|value type|description|
|-|----------|----------|----------------------------------------|
|server→proxy:|<|<|<|
|**request**|<|*string*|'proxy data'|
|proxy→server:|<|<|<|
|**session**|<|*string*|Daten-Sitzungstoken.|
|**interface availability**|<|*array*|*(optional)* Array von Objekten mit Daten zur Schnittstellenverfügbarkeit.|
| |**interfaceid**|*number*|Schnittstellen-ID.|
|^|**available**|*number*|Schnittstellenverfügbarkeit:<br><br>**0**, *INTERFACE\_AVAILABLE\_UNKNOWN* - unbekannt<br>**1**, *INTERFACE\_AVAILABLE\_TRUE* - verfügbar<br>**2**, *INTERFACE\_AVAILABLE\_FALSE* - nicht verfügbar|
|^|**error**|*string*|Fehlermeldung der Schnittstelle oder leerer String.|
|**history data**|<|*array*|*(optional)* Array von Objekten mit Verlaufsdaten.|
| |**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, innerhalb einer Daten-Sitzung eindeutig).|
|^|**timestamp**|*number*|*(optional)* Zeitstempel von Datenpunkten des Log-Typs.|
|^|**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:<br>**0**, *ITEM\_STATE\_NORMAL*<br>**1**, *ITEM\_STATE\_NOTSUPPORTED*|
|^|**lastlogsize**|*number*|*(optional)* Letzte Loggröße von Datenpunkten des Log-Typs.|
|^|**mtime**|*number*|*(optional)* Änderungszeit von Datenpunkten des Log-Typs.|
|**discovery data**|<|*array*|*(optional)* Array von Objekten mit Discovery-Daten.|
| |**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:<br><br>**-1** Daten der Discovery-Regel<br>**0**, *SVC\_SSH* - SSH-Dienstprüfung<br>**1**, *SVC\_LDAP* - LDAP-Dienstprüfung<br>**2**, *SVC\_SMTP* - SMTP-Dienstprüfung<br>**3**, *SVC\_FTP* - FTP-Dienstprüfung<br>**4**, *SVC\_HTTP* - HTTP-Dienstprüfung<br>**5**, *SVC\_POP* - POP-Dienstprüfung<br>**6**, *SVC\_NNTP* - NNTP-Dienstprüfung<br>**7**, *SVC\_IMAP* - IMAP-Dienstprüfung<br>**8**, *SVC\_TCP* - Prüfung der TCP-Port-Verfügbarkeit<br>**9**, *SVC\_AGENT* - Zabbix Agent<br>**10**, *SVC\_SNMPv1* - SNMPv1-Agent<br>**11**, *SVC\_SNMPv2* - SNMPv2-Agent<br>**12**, *SVC\_ICMPPING* - ICMP-Ping<br>**13**, *SVC\_SNMPv3* - SNMPv3-Agent<br>**14**, *SVC\_HTTPS* - HTTPS-Dienstprüfung<br>**15**, *SVC\_TELNET* - Telnet-Verfügbarkeitsprüfung|
|^|**ip**|*string*|IP-Adresse des Host.|
|^|**dns**|*string*|DNS-Name des Host.|
|^|**port**|*number*|*(optional)* Dienstportnummer.|
|^|**key\_**|*string*|*(optional)* Datenpunkt-Schlüssel für Discovery-Prüfung vom Typ **9** *SVC\_AGENT*|
|^|**value**|*string*|*(optional)* Vom Dienst empfangener Wert, kann bei den meisten Diensten leer sein.|
|^|**status**|*number*|*(optional)* Dienststatus:<br><br>**0**, *DOBJECT\_STATUS\_UP* - Dienst UP<br>**1**, *DOBJECT\_STATUS\_DOWN* - Dienst DOWN|
|**auto registration**|<|*array*|*(optional)* Array von Objekten mit Autoregistrierungsdaten.|
| |**clock**|*number*|Zeitstempel der Autoregistrierungsdaten.|
|^|**host**|*string*|Host-Name.|
|^|**ip**|*string*|*(optional)* IP-Adresse des Host.|
|^|**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:<br><br>**0**, *ZBX\_TM\_TASK\_PROCESS\_REMOTE\_COMMAND\_RESULT* - Ergebnis eines Remote-Befehls|
|^|**status**|*number*|Ausführungsstatus des Remote-Befehls:<br><br>**0**, *ZBX\_TM\_REMOTE\_COMMAND\_COMPLETED* - Remote-Befehl erfolgreich abgeschlossen<br>**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 zum Erfolg der Anforderung ('success' oder 'failed').|
|**tasks**|<|*array*|*(optional)* Array von Aufgaben.|
| |**type**|*number*|Aufgabentyp:<br><br>**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:<br><br>**0**, *ZBX\_SCRIPT\_TYPE\_CUSTOM\_SCRIPT* - benutzerdefiniertes Skript verwenden<br>**1**, *ZBX\_SCRIPT\_TYPE\_IPMI* - IPMI verwenden<br>**2**, *ZBX\_SCRIPT\_TYPE\_SSH* - SSH verwenden<br>**3**, *ZBX\_SCRIPT\_TYPE\_TELNET* - Telnet verwenden<br>**4**, *ZBX\_SCRIPT\_TYPE\_GLOBAL\_SCRIPT* - globales Skript verwenden (derzeit funktional gleichwertig mit benutzerdefiniertem Skript)|
|^|**command**|*string*|Auszuführender Remote-Befehl.|
|^|**execute\_on**|*number*|Ausführungsziel für benutzerdefinierte Skripte:<br><br>**0**, *ZBX\_SCRIPT\_EXECUTE\_ON\_AGENT* - Skript auf dem Agent ausführen<br>**1**, *ZBX\_SCRIPT\_EXECUTE\_ON\_SERVER* - Skript auf dem Server ausführen<br>**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-Host.|

Beispiel:

server→proxy:

```json
{
  "request": "proxy data"
}
```

proxy→server:

```json
{
    "session": "12345678901234567890123456789012"
    "interface availability": [
        {
            "interfaceid": 1,
            "available": 1,
            "error": ""
    },
        {
            "interfaceid": 2,
            "available": 2,
            "error": "Get value from agent failed: cannot connect to [[127.0.0.1]:10049]: [111] Connection refused"
    },
        {
            "interfaceid": 3,
            "available": 1,
            "error": ""
    },
        {
            "interfaceid": 4,
            "available": 1,
            "error": ""
    }
    ],
    "history data":[
        {
            "itemid":"12345",
            "clock":1478609647,
            "ns":332510044,
            "value":"52956612",
            "id": 1
        },
        {
            "itemid":"12346",
            "clock":1478609647,
            "ns":330690279,
            "state":1,
            "value":"Cannot find information for this network interface in /proc/net/dev.",
            "id": 2
        }
    ],
    "discovery data":[
        {
            "clock":1478608764,
            "drule":2,
            "dcheck":3,
            "type":12,
            "ip":"10.3.0.10",
            "dns":"vdebian",
            "status":1
        },
        {
            "clock":1478608764,
            "drule":2,
            "dcheck":null,
            "type":-1,
            "ip":"10.3.0.10",
            "dns":"vdebian",
            "status":1
        }
    ],
    "auto registration":[
        {
            "clock":1478608371,
            "host":"Logger1",
            "ip":"10.3.0.1",
            "dns":"localhost",
            "port":"10050"
        },
        {
            "clock":1478608381,
            "host":"Logger2",
            "ip":"10.3.0.2",
            "dns":"localhost",
            "port":"10050"
        }
    ],
    "tasks":[
        {
            "type": 0,
            "status": 0,
            "parent_taskid": 10
        },
        {
            "type": 0,
            "status": 1,
            "error": "No permissions to execute task.",
            "parent_taskid": 20
        }
    ],
    "version":"7.4.0"
}
```

server→proxy:

```json
{
  "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
      }
  ]
}
```

[comment]: # ({/74b1e336-c348e5d9})

[comment]: # ({50f116cc-cecd61c8})
##### 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:

```json
{
  "request":"proxy tasks"
}
```

proxy→server:

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

server→proxy:

```json
{
  "response":"success"
}
```

[comment]: # ({/50f116cc-cecd61c8})

[comment]: # ({967ea060-967ea060})
#### Aktiver Proxy

[comment]: # ({/967ea060-967ea060})

[comment]: # ({ec2f11cd-bed30a3b})
##### Konfigurationsanfrage

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

| name | <   | <   | <   | <   | value type | description |
|-|-|-|-|----------|----------|----------------------------------------|
| proxy→server: | <   | <   | <   | <   | <   | <   |
| **request** | <   | <   | <   | <   | *string* | 'proxy config' |
| **host** | <   | <   | <   | <   | *string<br>* | Proxy-Name. |
| **version** | <   | <   | <   | <   | *string* | Proxy-Version (\<major>.\<minor>.\<build>). |
| **session** | <   | <   | <   | <   | *string* | Sitzungstoken der Proxy-Konfiguration. |
| **config_revision** | <   | <   | <   | <   | *number* | Revision der Proxy-Konfiguration. |
| **hostmap_revision** | <   | <   | <   | <   | *number* | Aktuelle Revision 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 den Änderungen). |
| ^   |     | **fields** | <   | <   | *array* | Array von Feldnamen. |
| ^   | ^   |     | -   | <   | *string* | Feldname. |
| ^   | ^   | **data** | <   | <   | *array* | Array von Zeilen. |
| ^   | ^   |     | -   | <   | *array* | Array von Spalten. |
| ^   | ^   | ^   |     | -   | *string*,*number* | Spaltenwert mit Typ abhängig vom Spaltentyp im Datenbankschema. |
|     | <   | <   | <   | <   | <   | <   |
| **macro.secrets** | <   | <   | <   | <  | *object* | Informationen zu geheimen Makros, nicht vorhanden, wenn es keine Änderungen bei Vault-Makros gibt (optional). |
| **proxy_group** | <   | <   | <   | <  | *string* | Der Name der Proxy-Gruppe, zu der der Proxy gehört. |
| **config_revision** | <   | <   | <   | <   | *number* | Revision des Konfigurationscaches - wird mit den Konfigurationsdaten gesendet (optional). |
| **del_hostids** | <   | <   | <   | <   | *array* | Array der entfernten 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:

```json
{
  "request": "proxy config",
  "host": "Zabbix proxy",
  "version":"7.4.0",
  "session": "fd59a09ff4e9d1fb447de1f04599bcf6",
  "config_revision": 0
}
```

server→proxy:

```json
{
	"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, "Dateisysteme für die Erkennung"],
				[2, "Netzwerkschnittstellen für die Erkennung"],
				[3, "Speichergeräte für die SNMP-Erkennung"],
				[4, "Windows-Dienstnamen für die Erkennung"],
				[5, "Startzustände von Windows-Diensten für die Erkennung"]
			]
		},
		"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
}
```

[comment]: # ({/ec2f11cd-bed30a3b})

[comment]: # ({f7ffbeef-ef0ba621})
##### Datenanforderung

Die Anforderung `proxy data` wird vom Proxy gesendet, um Verfügbarkeitsdaten der Host-Schnittstellen, Verlaufsdaten, Erkennungsdaten und Daten zur automatischen Registrierung bereitzustellen.
Diese Anforderung wird alle `DataSenderFrequency` Sekunden gesendet (Proxy-Konfigurationsparameter).
Beachten Sie, dass ein aktiver Proxy den Zabbix Server weiterhin jede Sekunde nach Aufgaben für Remote-Befehle abfragt (mit einer leeren Anforderung `proxy data`).

|name|<|value type|description|
|-|----------|----------|----------------------------------------|
|proxy→server:|<|<|<|
|**request**|<|*string*|'proxy data'|
|**host**|<|*string*|Proxy-Name.|
|**session**|<|*string*|Daten-Sitzungstoken.|
|**interface availability**|<|*array*|*(optional)* Array von Objekten mit Verfügbarkeitsdaten der Schnittstellen.|
| |**interfaceid**|*number*|Schnittstellen-ID.|
|^|**available**|*number*|Verfügbarkeit der Schnittstelle:<br><br>**0**, *INTERFACE\_AVAILABLE\_UNKNOWN* - unbekannt<br>**1**, *INTERFACE\_AVAILABLE\_TRUE* - verfügbar<br>**2**, *INTERFACE\_AVAILABLE\_FALSE* - nicht verfügbar|
|^|**error**|*string*|Fehlermeldung der Schnittstelle oder leerer String.|
|**history data**|<|*array*|*(optional)* Array von Objekten mit Verlaufsdaten.|
| |**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, innerhalb einer Daten-Sitzung eindeutig).|
|^|**timestamp**|*number*|*(optional)* Zeitstempel von Datenpunkten des Log-Typs.|
|^|**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:<br>**0**, *ITEM\_STATE\_NORMAL*<br>**1**, *ITEM\_STATE\_NOTSUPPORTED*|
|^|**lastlogsize**|*number*|*(optional)* Letzte Loggröße von Datenpunkten des Log-Typs.|
|^|**mtime**|*number*|*(optional)* Änderungszeit von Datenpunkten des Log-Typs.|
|**discovery data**|<|*array*|*(optional)* Array von Objekten mit Erkennungsdaten.|
| |**clock**|*number*|Zeitstempel der Erkennungsdaten.|
|^|**druleid**|*number*|ID der Erkennungsregel.|
|^|**dcheckid**|*number*|ID der Erkennungsprüfung oder null für Daten der Erkennungsregel.|
|^|**type**|*number*|Typ der Erkennungsprüfung:<br><br>**-1** Daten der Erkennungsregel<br>**0**, *SVC\_SSH* - SSH-Dienstprüfung<br>**1**, *SVC\_LDAP* - LDAP-Dienstprüfung<br>**2**, *SVC\_SMTP* - SMTP-Dienstprüfung<br>**3**, *SVC\_FTP* - FTP-Dienstprüfung<br>**4**, *SVC\_HTTP* - HTTP-Dienstprüfung<br>**5**, *SVC\_POP* - POP-Dienstprüfung<br>**6**, *SVC\_NNTP* - NNTP-Dienstprüfung<br>**7**, *SVC\_IMAP* - IMAP-Dienstprüfung<br>**8**, *SVC\_TCP* - Verfügbarkeitsprüfung eines TCP-Ports<br>**9**, *SVC\_AGENT* - Zabbix Agent<br>**10**, *SVC\_SNMPv1* - SNMPv1-Agent<br>**11**, *SVC\_SNMPv2* - SNMPv2-Agent<br>**12**, *SVC\_ICMPPING* - ICMP-Ping<br>**13**, *SVC\_SNMPv3* - SNMPv3-Agent<br>**14**, *SVC\_HTTPS* - HTTPS-Dienstprüfung<br>**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)* Datenpunkt-Schlüssel für Erkennungsprüfung vom Typ **9** *SVC\_AGENT*|
|^|**value**|*string*|*(optional)* Vom Dienst empfangener Wert, kann bei den meisten Diensten leer sein.|
|^|**status**|*number*|*(optional)* Dienststatus:<br><br>**0**, *DOBJECT\_STATUS\_UP* - Dienst UP<br>**1**, *DOBJECT\_STATUS\_DOWN* - Dienst DOWN|
|**autoregistration**|<|*array*|*(optional)* Array von Objekten mit Daten zur automatischen Registrierung.|
| |**clock**|*number*|Zeitstempel der Daten zur automatischen Registrierung.|
|^|**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:<br><br>**0**, *ZBX\_TM\_TASK\_PROCESS\_REMOTE\_COMMAND\_RESULT* - Ergebnis eines Remote-Befehls|
|^|**status**|*number*|Ausführungsstatus des Remote-Befehls:<br><br>**0**, *ZBX\_TM\_REMOTE\_COMMAND\_COMPLETED* - Remote-Befehl erfolgreich abgeschlossen<br>**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 Anforderung ('success' oder 'failed').|
|**upload**|<|*string*|Steuerung des Uploads für historische Daten (Verlauf, automatische Registrierung, Host-Verfügbarkeit, Netzwerkerkennung).<br><br>Mögliche Werte:<br>**enabled** - normaler Betrieb<br>**disabled** - der Server akzeptiert keine Daten (möglicherweise aufgrund eines internen Cache-Überlaufs)|
|**tasks**|<|*array*|*(optional)* Array von Aufgaben.|
| |**type**|*number*|Aufgabentyp:<br><br>**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:<br><br>**0**, *ZBX\_SCRIPT\_TYPE\_CUSTOM\_SCRIPT* - benutzerdefiniertes Skript verwenden<br>**1**, *ZBX\_SCRIPT\_TYPE\_IPMI* - IPMI verwenden<br>**2**, *ZBX\_SCRIPT\_TYPE\_SSH* - SSH verwenden<br>**3**, *ZBX\_SCRIPT\_TYPE\_TELNET* - Telnet verwenden<br>**4**, *ZBX\_SCRIPT\_TYPE\_GLOBAL\_SCRIPT* - globales Skript verwenden (derzeit funktional gleichwertig mit benutzerdefiniertem Skript)|
|^|**command**|*string*|Auszuführender Remote-Befehl.|
|^|**execute\_on**|*number*|Ausführungsziel für benutzerdefinierte Skripte:<br><br>**0**, *ZBX\_SCRIPT\_EXECUTE\_ON\_AGENT* - Skript auf dem Agent ausführen<br>**1**, *ZBX\_SCRIPT\_EXECUTE\_ON\_SERVER* - Skript auf dem Server ausführen<br>**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:

proxy→server:

```json
{
	"request": "proxy data",
	"host": "Zabbix proxy",
	"session": "818cdd1b537bdc5e50c09ed4969235b6",
	"interface availability": [{
		"interfaceid": 1,
		"available": 1,
		"error": ""
	}],
	"history data": [{
		"id": 1114,
		"itemid": 44162,
		"clock": 1665730632,
		"ns": 798953105,
		"value": "1"
	}, {
		"id": 1115,
		"itemid": 44161,
		"clock": 1665730633,
		"ns": 811684663,
		"value": "58"
	}],
	"auto registration": [{
		"clock": 1665730633,
		"host": "Zabbix server",
		"ip": "127.0.0.1",
		"dns": "localhost",
		"port": "10053",
		"host_metadata": "58",
		"tls_accepted": 1
	}],
	"discovery data": [{
		"clock": 1665732232,
		"drule": 2,
		"dcheck": 2,
		"ip": "127.0.0.1",
		"dns": "localhost",
		"port": 10052,
		"status": 1
	}, {
		"clock": 1665732232,
		"drule": 2,
		"dcheck": null,
		"ip": "127.0.0.1",
		"dns": "localhost",
		"status": 1
	}],
	"host data": [{
		"hostid": 10084,
		"active_status": 1
	}],
	"tasks": [{
		"type": 3,
		"clock": 1665730985,
		"ttl": 0,
		"status": -1,
		"info": "Remote commands are not enabled",
		"parent_taskid": 3
	}],
	"version": "7.4.0",
	"clock": 1665730643,
	"ns": 65389964
}
```

server→proxy:

```json
{
	"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
	}]
}
```

[comment]: # ({/f7ffbeef-ef0ba621})
