1 Protocolo de intercambio de datos servidor-proxy

Descripción general

Servidor - el intercambio de datos proxy se basa en el formato JSON.

Los mensajes de solicitud y respuesta deben comenzar con encabezado y longitud de datos.

Proxy pasivo

Solicitud de configuración

El servidor primero enviará una solicitud de "configuración de proxy" vacía. Esta solicitud se envía cada ProxyConfigFrequency (parámetro de configuración del servidor) segundos.

El proxy responde con la versión actual del proxy, el token de sesión y la revisión de la configuración. El servidor responde con los datos de configuración que deben actualizarse.

nombre tipo de valor descripción
servidor→proxy:
solicitud cadena 'configuración de proxy'
proxy→servidor:
version cadena Versión de proxy (<principal>.<menor>.<compilación>).
session cadena Token de sesión de configuración de proxy.
config_revision número Revisión de la configuración del proxy.
servidor→proxy:
full_sync número 1 - si se envían los datos de configuración completos; ausente - en caso contrario (opcional).
data matriz Objeto de datos de la tabla. Ausente si no se ha cambiado la configuración (opcional).
<tabla> objeto Uno o más objetos con datos <table> (opcional, dependiendo de los cambios).
fields matriz Matriz de nombres de campos.
- cadena Nombre del campo.
data matriz Conjunto de filas.
- array Conjunto de columnas.
- string,number Valor de columna con tipo según el tipo de columna en el esquema de la base de datos.
macro.secrets objeto Información de macro secreta, ausente si no hay cambios en las macros de la bóveda (opcional).
config_revision número Revisión de la caché de configuración: enviada con datos de configuración (opcional).
del_hostids matriz Matriz de hostids eliminados (opcional).
- número Identificador de equipo.
del_macro_hostids matriz Matriz de hostids con todas las macros eliminadas (opcional).
- número Identificador de equipo.
proxy→servidor:
response cadena Solicite información de éxito ("éxito" o "fallido").
version cadena Versión de proxy (<principal>.<menor>.<compilación>).

Ejemplo:

servidor→proxy:

servidor→proxy:

{
         "request":"proxy config"
       } 

proxy→servidor:

{
         "version": "6.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, "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]
                   ]
               },
               "config": {
                   "fields": ["configid", "snmptrap_logging", "hk_history_global", "hk_history", "autoreg_tls_accept"],
                   "data": [
                       [1, 1, 0, "90d", 1]
                   ]
               },
               "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": "6.4.0"
       }
Solicitud de datos

La solicitud de "datos de proxy" se utiliza para obtener la disponibilidad de la interfaz del equipo, los datos históricos, de descubrimiento y de autoregistro desde el proxy. Esta petición se envía cada ProxyDataFrequency segundos (parámetro de configuración del servidor).

nombre tipo de valor descripción
servidor→proxy:
request cadena 'datos de proxy'
proxy→servidor:
session cadena Token de sesión de datos.
interface availability matriz (opcional) Matriz de objetos de datos de disponibilidad de interfaz.
interfaceid número Identificador de interfaz.
available número Disponibilidad de interfaz:

0, INTERFACE_AVAILABLE_UNKNOWN - desconocido
1, INTERFACE_AVAILABLE _TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - no disponible
error cadena Mensaje de error de interfaz o cadena vacía.
history data matriz (opcional) Matriz de objetos de datos históricos.
itemid número Identificador de la métrica.
clock número Marca de tiempo del valor de la métrica (segundos).
ns número Marca de tiempo del valor de la métrica (nanosegundos).
value cadena (opcional) Valor de la métrica.
id número Identificador de valor (contador ascendente, único dentro de una sesión de datos).
timestamp número (opcional) Marca de tiempo de las métricas de tipo de registro.
source cadena (opcional) Valor de origen de la métrica de registro de eventos.
severity número (opcional) Valor de gravedad de la métrica del registro de eventos.
eventid número (opcional) Valor de eventid de la métrica de registro de eventos.
state cadena (opcional) Estado de la métrica:
0, ITEM_STATE_NORMAL
1, ITEM_STATE _NOTSUPPORTED
lastlogsize number (opcional) Último tamaño de registro de las métricas del tipo de registro.
mtime number (opcional) Hora de modificación de las métricas del tipo de registro.
discovery data matriz (opcional) Matriz de objetos de datos de descubrimiento.
clock número Marca de tiempo de datos de descubrimiento.
druleid número Identificador de regla de descubrimiento.
dcheckid number Identificador de verificación de descubrimiento o nulo para los datos de la regla de descubrimiento.
type número Tipo de verificación de descubrimiento:

-1 datos de regla de descubrimiento
0, SVC_SSH - Verificación del servicio SSH
1, SVC_LDAP - Verificación del servicio LDAP
2, SVC_SMTP - Verificación del servicio SMTP
3, SVC_FTP - Verificación del servicio FTP
4, SVC_HTTP - Verificación del servicio HTTP
5, SVC_POP - Verificación del servicio POP
6, * SVC_NNTP* - Verificación del servicio NNTP
7, SVC_IMAP - Verificación del servicio IMAP
8, SVC_TCP - Verificación de disponibilidad del puerto TCP
** 9, SVC_AGENT - Agente Zabbix
10, SVC_SNMPv1 - Agente SNMPv1
11**, SVC_SNMPv2 - Agente SNMPv2
* *12, SVC_ICMPPING - Ping ICMP
13, SVC_SNMPv3 - Agente SNMPv3
14, SVC_HTTPS - Verificación del servicio HTTPS<br >15**, SVC_TELNET - Verificación de disponibilidad de Telnet
ip cadena Dirección IP del equipo.
dns cadena Nombre DNS del equipo.
port número (opcional) Número de puerto de servicio.
key_ string (opcional) Clave de elemento para verificación de descubrimiento de tipo 9 SVC_AGENT
value cadena (opcional) Valor recibido del servicio, puede estar vacío para la mayoría de los servicios.
status número (opcional) Estado del servicio:

0, DOBJECT_STATUS_UP - Servicio ARRIBA
**1* , DOBJECT_STATUS_DOWN* - Servicio ABAJO
auto registration matriz (opcional) Matriz de objetos de datos de registro automático.
clock número Marca de tiempo de datos de registro automático.
host cadena Nombre de equipo.
ip cadena (opcional) Dirección IP del equipo.
dns cadena (opcional) Nombre DNS resuelto desde la dirección IP.
port cadena (opcional) Puerto del equipo.
host_metadata cadena (opcional) Metadatos del equipo enviados por el agente (según el parámetro de configuración del agente HostMetadata o HostMetadataItem).
tasks matriz (opcional) Matriz de tareas.
type número Tipo de tarea:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado del comando remoto
status number Estado de ejecución del comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - el comando remoto se completó correctamente
1, ZBX_TM_REMOTE_COMMAND_FAILED - error del comando remoto
error cadena (opcional) Mensaje de error.
parent_taskid number ID de tarea principal.
more número (opcional) 1 - hay más datos del historial para enviar.
clock número (opcional) Marca de tiempo de transferencia de datos (segundos).
ns número (opcional) Marca de tiempo de transferencia de datos (nanosegundos).
version cadena Versión de proxy (<principal>.<menor>.<compilación>).
servidor→proxy:
response cadena Solicitud de información de éxito ('éxito' o 'fallido').
tasks matriz (opcional) Matriz de tareas.
type número Tipo de tarea:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock número Hora de creación de la tarea.
ttl número Tiempo en segundos después del cual caduca la tarea.
commandtype número Tipo de comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usar script personalizado
** 1, ZBX_SCRIPT_TYPE_IPMI - usar IPMI
2, ZBX_SCRIPT_TYPE_SSH - usar SSH
3, ZBX_SCRIPT _TYPE_TELNET - usar Telnet
4**, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - usar script global (actualmente funcionalmente equivalente a un script personalizado)
command cadena Comando remoto para ejecutar.
execute_on number Destino de ejecución para scripts personalizados:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - ejecutar script en el agente< br>1, ZBX_SCRIPT_EXECUTE_ON_SERVER - ejecutar script en el servidor
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - ejecutar script en proxy
port número (opcional) Puerto para comandos Telnet y SSH.
authtype number (opcional) Tipo de autenticación para comandos SSH.
username cadena (opcional) Nombre de usuario para comandos Telnet y SSH.
password cadena (opcional) Contraseña para comandos Telnet y SSH.
publickey cadena (opcional) Clave pública para comandos SSH.
privatekey string (opcional) Clave privada para comandos SSH.
parent_taskid number ID de tarea principal.
hostid número ID del equipo de destino.

Ejemplo:

servidor→proxy:

{
         "request": "proxy data"
       }

proxy→servidor:

{
           "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":"6.4.0"
       }

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

Proxy activo

Solicitud de configuración

La solicitud proxy config es enviada por el proxy activo para obtener los datos de configuración del proxy. Esta solicitud se envía cada ProxyConfigFrequency segundos (parámetro de configuración del proxy).

nombre tipo de valor descripción
proxy→servidor:
request cadena 'proxy config'
host cadena
Nombre del proxy.
version cadena Versión de proxy (<principal>.<menor>.<compilación>).
session cadena Token de sesión de configuración de proxy.
config_revision número Revisión de la configuración del proxy.
servidor→proxy:
fullsync número 1 - si se envían los datos de configuración completos, ausente en caso contrario (opcional).
data matriz Objeto de datos de la tabla. Ausente si no se ha cambiado la configuración (opcional).
<table> objeto Uno o más objetos con datos <table> (opcional, dependiendo de los cambios).
fields matriz Matriz de nombres de campos.
- string Nombre del campo.
data matriz Conjunto de filas.
- array Conjunto de columnas.
- string,number Valor de columna con tipo según el tipo de columna en el esquema de la base de datos.
macro.secrets objeto Información de macro secreta, ausente si no hay cambios en las macros de almacén (opcional).
config_revision número Revisión de la caché de configuración: enviada con datos de configuración (opcional).
del_hostids matriz Matriz de hostids eliminados (opcional).
- number Identificador de equipo.
del_macro_hostids matriz Matriz de hostids con todas las macros eliminadas (opcional).
- number Identificador de equipo.

Ejemplo:

proxy→servidor:

{
         "request": "proxy config",
         "host": "Zabbix proxy",
         "version":"6.4.0",
         "session": "fd59a09ff4e9d1fb447de1f04599bcf6",
         "config_revision": 0
       }

servidor→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]
                   ]
               },
               "config": {
                   "fields": ["configid", "snmptrap_logging", "hk_history_global", "hk_history", "autoreg_tls_accept"],
                   "data": [
                       [1, 1, 0, "90d", 1]
                   ]
               },
               "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
       }
Solicitud de datos

La solicitud de "datos de proxy" se envía por el proxy para proporcionar datos de disponibilidad, historial, descubrimiento y registro automático de la interfaz del equipo. Esta solicitud se envía cada segundos de DataSenderFrequency (parámetro de configuración de proxy). Tenga en cuenta que el proxy activo seguirá sondeando el servidor Zabbix cada segundo en busca de tareas de comando remotas (con una solicitud de "datos de proxy" vacía).

nombre tipo de valor descripción
proxy→servidor:
request cadena 'datos de proxy'
host cadena Nombre de proxy.
session cadena Token de sesión de datos.
interface availability matriz (opcional) Matriz de objetos de datos de disponibilidad de interfaz.
interfaceid número Identificador de interfaz.
available número Disponibilidad de interfaz:

0, INTERFACE_AVAILABLE_UNKNOWN - desconocido
1, INTERFACE_AVAILABLE _TRUE - disponible
2, INTERFACE_AVAILABLE_FALSE - no disponible
error cadena Mensaje de error de interfaz o cadena vacía.
history data matriz (opcional) Matriz de objetos de datos históricos.
itemid número Identificador de métrica.
clock número Marca de tiempo del valor de la métrica (segundos).
ns número Marca de tiempo del valor de la métrica (nanosegundos).
value cadena (opcional) Valor del artículo.
id número Identificador de valor (contador ascendente, único dentro de una sesión de datos).
timestamp número (opcional) Marca de tiempo de los elementos de tipo de registro.
source cadena (opcional) Valor de origen del elemento de registro de eventos.
severity número (opcional) Valor de gravedad del elemento del registro de eventos.
eventid número (opcional) Valor de eventid del elemento de registro de eventos.
state cadena (opcional) Estado del artículo:
0, ITEM_STATE_NORMAL
1, ITEM_STATE _NOTSAPPORTADO
lastlogsize number (opcional) Último tamaño de registro de los elementos del tipo de registro.
mtime number (opcional) Hora de modificación de los elementos del tipo de registro.
discovery data matriz (opcional) Matriz de objetos de datos de descubrimiento.
clock número Marca de tiempo de datos de descubrimiento.
druleid número Identificador de regla de descubrimiento.
dcheckid number Identificador de verificación de descubrimiento o nulo para los datos de la regla de descubrimiento.
type número Tipo de verificación de descubrimiento:

-1 datos de regla de descubrimiento
0, SVC_SSH - Verificación del servicio SSH
1, SVC_LDAP - Verificación del servicio LDAP
2, SVC_SMTP - Verificación del servicio SMTP
3, SVC_FTP - Verificación del servicio FTP
4, SVC_HTTP - Verificación del servicio HTTP
5, SVC_POP - Verificación del servicio POP
6, * SVC_NNTP* - Verificación del servicio NNTP
7, SVC_IMAP - Verificación del servicio IMAP
8, SVC_TCP - Verificación de disponibilidad del puerto TCP
** 9, SVC_AGENT - Agente Zabbix
10, SVC_SNMPv1 - Agente SNMPv1
11**, SVC_SNMPv2 - Agente SNMPv2
* *12, SVC_ICMPPING - Ping ICMP
13, SVC_SNMPv3 - Agente SNMPv3
14, SVC_HTTPS - Verificación del servicio HTTPS<br >15**, SVC_TELNET - Verificación de disponibilidad de Telnet
ip cadena Dirección IP del host.
dns cadena Nombre DNS del host.
port número (opcional) Número de puerto de servicio.
key_ string (opcional) Clave de elemento para verificación de descubrimiento de tipo 9 SVC_AGENT
value cadena (opcional) Valor recibido del servicio, puede estar vacío para la mayoría de los servicios.
status número (opcional) Estado del servicio:

0, DOBJECT_STATUS_UP - Servicio ARRIBA
**1* , DOBJECT_STATUS_DOWN* - Servicio ABAJO
autoregistration matriz (opcional) Matriz de objetos de datos de autoregistro.
clock número Marca de tiempo de datos de registro automático.
host cadena Nombre de host.
ip cadena (opcional) Dirección IP del host.
dns cadena (opcional) Nombre DNS resuelto desde la dirección IP.
port cadena (opcional) Puerto de host.
host_metadata cadena (opcional) Metadatos del host enviados por el agente (según el parámetro de configuración del agente HostMetadata o HostMetadataItem).
tasks matriz (opcional) Matriz de tareas.
type número Tipo de tarea:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado del comando remoto
status number Estado de ejecución del comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - el comando remoto se completó correctamente
1, ZBX_TM_REMOTE_COMMAND_FAILED - error del comando remoto
error cadena (opcional) Mensaje de error.
parent_taskid number ID de tarea principal.
more número (opcional) 1 - hay más datos del historial para enviar
clock número (opcional) Marca de tiempo de transferencia de datos (segundos).
ns número (opcional) Marca de tiempo de transferencia de datos (nanosegundos).
version cadena Versión de proxy (<principal>.<menor>.<compilación>).
servidor→proxy:
response cadena Solicitud de información de éxito ('éxito' o 'fallido').
upload string Control de carga para datos históricos (historial, registro automático, disponibilidad de host, descubrimiento de red).

Valores posibles:
enabled - funcionamiento normal
deshabilitado: el servidor no acepta datos (posiblemente debido a que el caché interno excede el límite)
tasks matriz (opcional) Matriz de tareas.
type número Tipo de tarea:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock número Hora de creación de la tarea.
ttl número Tiempo en segundos después del cual caduca la tarea.
commandtype número Tipo de comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usar script personalizado
** 1, ZBX_SCRIPT_TYPE_IPMI - usar IPMI
2, ZBX_SCRIPT_TYPE_SSH - usar SSH
3, ZBX_SCRIPT _TYPE_TELNET - usar Telnet
4**, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - usar script global (actualmente funcionalmente equivalente a un script personalizado)
command cadena Comando remoto para ejecutar.
execute_on number Destino de ejecución para scripts personalizados:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - ejecutar script en el agente< br>1, ZBX_SCRIPT_EXECUTE_ON_SERVER - ejecutar script en el servidor
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - ejecutar script en proxy
port número (opcional) Puerto para comandos Telnet y SSH.
authtype number (opcional) Tipo de autenticación para comandos SSH.
username cadena (opcional) Nombre de usuario para comandos Telnet y SSH.
password cadena (opcional) Contraseña para comandos Telnet y SSH.
publickey cadena (opcional) Clave pública para comandos SSH.
privatekey string (opcional) Clave privada para comandos SSH.
parent_taskid number ID de tarea principal.
hostid número ID del host de destino.

Ejemplo:

proxy→servidor:

{
           "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": "6.4.0",
           "clock": 1665730643,
           "ns": 65389964
       }

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