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 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:
{
"request":"proxy config"
}
proxy→server:
{
"version": "7.4.0",
"session": "0033124949800811e5686dbfd9bcea98",
"config_revision": 0
}
server→proxy:
{
"full_sync": 1,
"data": {
"hosts": {
"fields": ["hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk"],
"data": [
[10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
]
},
"interface": {
"fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
"data": [
[1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
]
},
"interface_snmp": {
"fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
"data": []
},
"host_inventory": {
"fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
"data": [
[10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
]
},
"items": {
"fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
"data": [
[44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
[44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
]
},
"item_rtdata": {
"fields": ["itemid", "lastlogsize", "mtime"],
"data": [
[44161, 0, 0],
[44162, 0, 0]
]
},
"item_preproc": {
"fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
"data": []
},
"item_parameter": {
"fields": ["item_parameterid", "itemid", "name", "value"],
"data": []
},
"globalmacro": {
"fields": ["globalmacroid", "macro", "value", "type"],
"data": [
[2, "{$SNMP_COMMUNITY}", "public", 0]
]
},
"hosts_templates": {
"fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
"data": []
},
"hostmacro": {
"fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
"data": [
[5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
]
},
"drules": {
"fields": ["druleid", "name", "iprange", "delay"],
"data": [
[2, "Local network", "127.0.0.1", "10s"]
]
},
"dchecks": {
"fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
"data": [
[2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
]
},
"regexps": {
"fields": ["regexpid", "name"],
"data": [
[1, "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:
{
"response": "success",
"version": "7.4.0"
}
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: 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 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: 0, ITEM_STATE_NORMAL 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: -1 Daten der Discovery-Regel 0, SVC_SSH - SSH-Dienstprüfung 1, SVC_LDAP - LDAP-Dienstprüfung 2, SVC_SMTP - SMTP-Dienstprüfung 3, SVC_FTP - FTP-Dienstprüfung 4, SVC_HTTP - HTTP-Dienstprüfung 5, SVC_POP - POP-Dienstprüfung 6, SVC_NNTP - NNTP-Dienstprüfung 7, SVC_IMAP - IMAP-Dienstprü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-Dienstprüfung 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: 0, DOBJECT_STATUS_UP - Dienst UP 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: 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 zum Erfolg der Anforderung ('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 benutzerdefiniertem 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-Host. | |
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":"7.4.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 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 |
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:
{
"request": "proxy config",
"host": "Zabbix proxy",
"version":"7.4.0",
"session": "fd59a09ff4e9d1fb447de1f04599bcf6",
"config_revision": 0
}
server→proxy:
{
"full_sync": 1,
"data": {
"hosts": {
"fields": ["hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk"],
"data": [
[10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
]
},
"interface": {
"fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
"data": [
[1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
]
},
"interface_snmp": {
"fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
"data": []
},
"host_inventory": {
"fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
"data": [
[10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
]
},
"items": {
"fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
"data": [
[44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
[44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
]
},
"item_rtdata": {
"fields": ["itemid", "lastlogsize", "mtime"],
"data": [
[44161, 0, 0],
[44162, 0, 0]
]
},
"item_preproc": {
"fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
"data": []
},
"item_parameter": {
"fields": ["item_parameterid", "itemid", "name", "value"],
"data": []
},
"globalmacro": {
"fields": ["globalmacroid", "macro", "value", "type"],
"data": [
[2, "{$SNMP_COMMUNITY}", "public", 0]
]
},
"hosts_templates": {
"fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
"data": []
},
"hostmacro": {
"fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
"data": [
[5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
]
},
"drules": {
"fields": ["druleid", "name", "iprange", "delay"],
"data": [
[2, "Local network", "127.0.0.1", "10s"]
]
},
"dchecks": {
"fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
"data": [
[2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
]
},
"regexps": {
"fields": ["regexpid", "name"],
"data": [
[1, "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
}
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: 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 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: 0, ITEM_STATE_NORMAL 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: -1 Daten der Erkennungsregel 0, SVC_SSH - SSH-Dienstprüfung 1, SVC_LDAP - LDAP-Dienstprüfung 2, SVC_SMTP - SMTP-Dienstprüfung 3, SVC_FTP - FTP-Dienstprüfung 4, SVC_HTTP - HTTP-Dienstprüfung 5, SVC_POP - POP-Dienstprüfung 6, SVC_NNTP - NNTP-Dienstprüfung 7, SVC_IMAP - IMAP-Dienstprüfung 8, SVC_TCP - Verfügbarkeitsprüfung eines TCP-Ports 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-Dienstprü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) 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: 0, DOBJECT_STATUS_UP - Dienst UP 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: 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 Anforderung ('success' oder 'failed'). | |
| upload | string | Steuerung des Uploads für historische Daten (Verlauf, automatische Registrierung, Host-Verfügbarkeit, Netzwerkerkennung). Mögliche Werte: enabled - normaler Betrieb disabled - der Server akzeptiert keine Daten (möglicherweise aufgrund eines internen Cache-Überlaufs) |
|
| 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 benutzerdefiniertem 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:
proxy→server:
{
"request": "proxy data",
"host": "Zabbix proxy",
"session": "818cdd1b537bdc5e50c09ed4969235b6",
"interface availability": [{
"interfaceid": 1,
"available": 1,
"error": ""
}],
"history data": [{
"id": 1114,
"itemid": 44162,
"clock": 1665730632,
"ns": 798953105,
"value": "1"
}, {
"id": 1115,
"itemid": 44161,
"clock": 1665730633,
"ns": 811684663,
"value": "58"
}],
"auto registration": [{
"clock": 1665730633,
"host": "Zabbix server",
"ip": "127.0.0.1",
"dns": "localhost",
"port": "10053",
"host_metadata": "58",
"tls_accepted": 1
}],
"discovery data": [{
"clock": 1665732232,
"drule": 2,
"dcheck": 2,
"ip": "127.0.0.1",
"dns": "localhost",
"port": 10052,
"status": 1
}, {
"clock": 1665732232,
"drule": 2,
"dcheck": null,
"ip": "127.0.0.1",
"dns": "localhost",
"status": 1
}],
"host data": [{
"hostid": 10084,
"active_status": 1
}],
"tasks": [{
"type": 3,
"clock": 1665730985,
"ttl": 0,
"status": -1,
"info": "Remote commands are not enabled",
"parent_taskid": 3
}],
"version": "7.4.0",
"clock": 1665730643,
"ns": 65389964
}
server→proxy:
{
"upload": "enabled",
"response": "success",
"tasks": [{
"type": 2,
"clock": 1665730986,
"ttl": 600,
"commandtype": 0,
"command": "ping -c 3 127.0.0.1; case $? in [01]) true;; *) false;; esac",
"execute_on": 2,
"port": 0,
"authtype": 0,
"username": "",
"password": "",
"publickey": "",
"privatekey": "",
"alertid": 0,
"parent_taskid": 4,
"hostid": 10084
}]
}