1 Protocolo de intercambio de datos entre servidor y proxy
Descripción general
El intercambio de datos entre servidor y proxy se basa en el formato JSON.
Los mensajes de solicitud y respuesta deben comenzar con cabecera y longitud de datos.
Proxy pasivo
Solicitud de configuración
El server enviará primero una solicitud vacía proxy config. Esta solicitud se envía cada ProxyConfigFrequency
(parámetro de configuración del server) 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 server responde con los datos de configuración que deben actualizarse.
| name | value type | description | ||||
|---|---|---|---|---|---|---|
| server→proxy: | ||||||
| request | string | 'proxy config' | ||||
| proxy→server: | ||||||
| version | string | Versión del proxy (<major>.<minor>.<build>). | ||||
| session | string | Token de sesión de configuración del proxy. | ||||
| config_revision | number | Revisión de la configuración del proxy. | ||||
| server→proxy: | ||||||
| full_sync | number | 1 - si se envían todos los datos de configuración; ausente - en caso contrario (opcional). | ||||
| data | array | Objeto de datos de la tabla. Ausente si la configuración no ha cambiado (opcional). | ||||
| <table> | object | Uno o más objetos con datos de <table> (opcional, según los cambios). | ||||
| fields | array | Matriz de nombres de campos. | ||||
| - | string | Nombre del campo. | ||||
| data | array | Matriz de filas. | ||||
| - | array | Matriz de columnas. | ||||
| - | string,number | Valor de la columna con tipo según el tipo de columna en el esquema de la base de datos. | ||||
| macro.secrets | object | Información de macros secretas, ausente si no hay cambios en las macros de vault (opcional). | ||||
| config_revision | number | Revisión de la caché de configuración - enviada con los datos de configuración (opcional). | ||||
| del_hostids | array | Matriz de hostids eliminados (opcional). | ||||
| - | number | Identificador del host. | ||||
| del_macro_hostids | array | Matriz de hostids con todas las macros eliminadas (opcional). | ||||
| - | number | Identificador del host. | ||||
| proxy→server: | ||||||
| response | string | Información de éxito de la solicitud ('success' o 'failed'). | ||||
| version | string | Versión del proxy (<major>.<minor>.<build>). | ||||
Ejemplo:
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, "File systems for discovery"],
[2, "Network interfaces for discovery"],
[3, "Storage devices for SNMP discovery"],
[4, "Windows service names for discovery"],
[5, "Windows service startup states for discovery"]
]
},
"expressions": {
"fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
"data": [
[1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
[3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
[5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
[6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
[7, 2, "^Software Loopback Interface", 4, ",", 1],
[8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
[9, 2, "^NULL[0-9.]*$", 4, ",", 1],
[10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
[11, 2, "^[Ss]ystem$", 4, ",", 1],
[12, 2, "^Nu[0-9.]*$", 4, ",", 1]
]
},
"settings": {
"fields": ["name", "type", "value_str", "value_int"],
"data": [
["autoreg_tls_accept", 2, "", 1],
["hk_history_global", 2, "", 0],
["snmptrap_logging", 2, "", 1],
["proxy_secrets_provider", 2, "", 0],
["hk_history", 1, "31d", 0],
["timeout_db_monitor", 1, "3s", 0],
["timeout_external_check", 1, "3s", 0],
["timeout_http_agent", 1, "3s", 0],
["timeout_simple_check", 1, "3s", 0],
["timeout_snmp_agent", 1, "3s", 0],
["timeout_ssh_agent", 1, "3s", 0],
["timeout_telnet_agent", 1, "3s", 0],
["timeout_zabbix_agent", 1, "3s", 0],
["timeout_browser", 1, "30s", 0]
]
},
"httptest": {
"fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
"data": []
},
"httptestitem": {
"fields": ["httptestitemid", "httptestid", "itemid", "type"],
"data": []
},
"httptest_field": {
"fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
"data": []
},
"httpstep": {
"fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
"data": []
},
"httpstepitem": {
"fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
"data": []
},
"httpstep_field": {
"fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
"data": []
},
"config_autoreg_tls": {
"fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
"data": [
[1, "", ""]
]
}
},
"macro.secrets": {
"AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
"Content": "738"
}
},
"config_revision": 2
}
proxy→server:
{
"response": "success",
"version": "7.4.0"
}
Solicitud de datos
La solicitud proxy data se usa para obtener la disponibilidad de la interfaz del host, así como datos históricos, de descubrimiento y de autoregistro desde el proxy. Esta solicitud se envía cada ProxyDataFrequency (parámetro de configuración del server) segundos.
| name | value type | description | |
|---|---|---|---|
| server→proxy: | |||
| request | string | 'proxy data' | |
| proxy→server: | |||
| session | string | Token de sesión de datos. | |
| interface availability | array | (optional) Array de objetos de disponibilidad de interfaz. | |
| interfaceid | number | Identificador de la interfaz. | |
| available | number | Disponibilidad de la interfaz: 0, INTERFACE_AVAILABLE_UNKNOWN - desconocida 1, INTERFACE_AVAILABLE_TRUE - disponible 2, INTERFACE_AVAILABLE_FALSE - no disponible |
|
| error | string | Mensaje de error de la interfaz o cadena vacía. | |
| history data | array | (optional) Array de objetos de datos históricos. | |
| itemid | number | Identificador del item. | |
| clock | number | Marca de tiempo del valor del item (segundos). | |
| ns | number | Marca de tiempo del valor del item (nanosegundos). | |
| value | string | (optional) Valor del item. | |
| id | number | Identificador del valor (contador ascendente, único dentro de una sesión de datos). | |
| timestamp | number | (optional) Marca de tiempo de los items de tipo log. | |
| source | string | (optional) Valor de origen del item eventlog. | |
| severity | number | (optional) Valor de severidad del item eventlog. | |
| eventid | number | (optional) Valor eventid del item eventlog. | |
| state | string | (optional) Estado del item: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
| lastlogsize | number | (optional) Último tamaño de log de los items de tipo log. | |
| mtime | number | (optional) Hora de modificación de los items de tipo log. | |
| discovery data | array | (optional) Array de objetos de datos de descubrimiento. | |
| clock | number | Marca de tiempo de los datos de descubrimiento. | |
| druleid | number | Identificador de la regla de descubrimiento. | |
| dcheckid | number | Identificador de la comprobación de descubrimiento o null para datos de la regla de descubrimiento. | |
| type | number | Tipo de comprobación de descubrimiento: -1 datos de la regla de descubrimiento 0, SVC_SSH - comprobación del servicio SSH 1, SVC_LDAP - comprobación del servicio LDAP 2, SVC_SMTP - comprobación del servicio SMTP 3, SVC_FTP - comprobación del servicio FTP 4, SVC_HTTP - comprobación del servicio HTTP 5, SVC_POP - comprobación del servicio POP 6, SVC_NNTP - comprobación del servicio NNTP 7, SVC_IMAP - comprobación del servicio IMAP 8, SVC_TCP - comprobación de disponibilidad del puerto TCP 9, SVC_AGENT - agent de Zabbix 10, SVC_SNMPv1 - agent SNMPv1 11, SVC_SNMPv2 - agent SNMPv2 12, SVC_ICMPPING - ping ICMP 13, SVC_SNMPv3 - agent SNMPv3 14, SVC_HTTPS - comprobación del servicio HTTPS 15, SVC_TELNET - comprobación de disponibilidad de Telnet |
|
| ip | string | Dirección IP del host. | |
| dns | string | Nombre DNS del host. | |
| port | number | (optional) Número de puerto del servicio. | |
| key_ | string | (optional) Clave del item para la comprobación de descubrimiento de tipo 9 SVC_AGENT | |
| value | string | (optional) Valor recibido del servicio; puede estar vacío para la mayoría de los servicios. | |
| status | number | (optional) Estado del servicio: 0, DOBJECT_STATUS_UP - servicio UP 1, DOBJECT_STATUS_DOWN - servicio DOWN |
|
| auto registration | array | (optional) Array de objetos de datos de autoregistro. | |
| clock | number | Marca de tiempo de los datos de autoregistro. | |
| host | string | Nombre del host. | |
| ip | string | (optional) Dirección IP del host. | |
| dns | string | (optional) Nombre DNS resuelto a partir de la dirección IP. | |
| port | string | (optional) Puerto del host. | |
| host_metadata | string | (optional) Metadatos del host enviados por agent (según el parámetro de configuración de agent HostMetadata o HostMetadataItem). | |
| tasks | array | (optional) Array de tareas. | |
| type | number | Tipo de tarea: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado de 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 - el comando remoto falló |
|
| error | string | (optional) Mensaje de error. | |
| parent_taskid | number | ID de la tarea principal. | |
| more | number | (optional) 1 - hay más datos históricos por enviar. | |
| clock | number | (optional) Marca de tiempo de la transferencia de datos (segundos). | |
| ns | number | (optional) Marca de tiempo de la transferencia de datos (nanosegundos). | |
| version | string | Versión del proxy (<major>.<minor>.<build>). | |
| server→proxy: | |||
| response | string | Información de éxito de la solicitud ('success' o 'failed'). | |
| tasks | array | (optional) Array de tareas. | |
| type | number | Tipo de tarea: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto |
|
| clock | number | Hora de creación de la tarea. | |
| ttl | number | Tiempo en segundos tras el cual la tarea expira. | |
| commandtype | number | 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 equivalente funcionalmente a un script personalizado) |
|
| command | string | Comando remoto a ejecutar. | |
| execute_on | number | Destino de ejecución para scripts personalizados: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - ejecutar el script en el agent 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - ejecutar el script en el server 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - ejecutar el script en el proxy |
|
| port | number | (optional) Puerto para comandos Telnet y SSH. | |
| authtype | number | (optional) Tipo de autenticación para comandos SSH. | |
| username | string | (optional) Nombre de usuario para comandos Telnet y SSH. | |
| password | string | (optional) Contraseña para comandos Telnet y SSH. | |
| publickey | string | (optional) Clave pública para comandos SSH. | |
| privatekey | string | (optional) Clave privada para comandos SSH. | |
| parent_taskid | number | ID de la tarea principal. | |
| hostid | number | ID del host de destino. | |
Ejemplo:
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
}
]
}
Solicitud de tareas
El intercambio de proxy tasks gestiona la entrega y el reconocimiento de tareas de comandos remotos entre el server y un proxy pasivo. Cuando el server consulta al proxy por los resultados de las tareas, envía una solicitud vacía de proxy tasks en el intervalo definido por ProxyDataFrequency. El proxy responde con su versión actual y cualquier resultado de tarea pendiente (incluidos los sellos de tiempo). El server luego reconoce la recepción devolviendo una response y puede incluir nuevas tareas para que el proxy las ejecute.
| nombre | tipo de valor | descripción | |
|---|---|---|---|
| server→proxy: | |||
| request | string | 'proxy tasks' | |
| proxy→server: | |||
| version | string | Versión del proxy (<major>.<minor>.<build>). | |
| clock | number | (opcional) Sello de tiempo de transferencia de datos (segundos). | |
| ns | number | (opcional) Sello de tiempo de transferencia de datos (nanosegundos). | |
| server→proxy: | |||
| response | string | Información de éxito de la solicitud ('success' o 'failed'). | |
Ejemplo:
server→proxy:
{
"request":"proxy tasks"
}
proxy→server:
{
"version":"7.0.0",
"clock":1721059872,
"ns":848141522
}
server→proxy:
{
"response":"success"
}
Proxy activo
Solicitud de configuración
La solicitud proxy config es enviada por el proxy activo para obtener datos de configuración del proxy. Esta solicitud se envía cada ProxyConfigFrequency (parámetro de configuración del proxy) segundos.
| name | value type | description | ||||
|---|---|---|---|---|---|---|
| proxy→server: | ||||||
| request | string | 'proxy config' | ||||
| host | string |
Nombre del proxy. | ||||
| version | string | Versión del proxy (<major>.<minor>.<build>). | ||||
| session | string | Token de sesión de configuración del proxy. | ||||
| config_revision | number | Revisión de la configuración del proxy. | ||||
| hostmap_revision | number | Revisión actual del mapeo host-a-proxy. | ||||
| server→proxy: | ||||||
| full_sync | number | 1 - si se envían todos los datos de configuración, ausente en caso contrario (opcional). | ||||
| data | array | Objeto con datos de tabla. Ausente si la configuración no ha cambiado (opcional). | ||||
| <table> | object | Uno o más objetos con datos de <table> (opcional, según los cambios). | ||||
| fields | array | Matriz de nombres de campos. | ||||
| - | string | Nombre del campo. | ||||
| data | array | Matriz de filas. | ||||
| - | array | Matriz 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 | object | Información de macros secretas, ausente si no hay cambios en las macros de vault (opcional). | ||||
| proxy_group | string | Nombre del grupo de proxy al que pertenece el proxy. | ||||
| config_revision | number | Revisión de la caché de configuración - enviada con los datos de configuración (opcional). | ||||
| del_hostids | array | Matriz de hostids eliminados (opcional). | ||||
| - | number | Identificador del host. | ||||
| del_macro_hostids | array | Matriz de hostids con todas las macros eliminadas (opcional). | ||||
| - | number | Identificador del host. | ||||
Ejemplo:
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, "File systems for discovery"],
[2, "Network interfaces for discovery"],
[3, "Storage devices for SNMP discovery"],
[4, "Windows service names for discovery"],
[5, "Windows service startup states for discovery"]
]
},
"expressions": {
"fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
"data": [
[1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
[3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
[5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
[6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
[7, 2, "^Software Loopback Interface", 4, ",", 1],
[8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
[9, 2, "^NULL[0-9.]*$", 4, ",", 1],
[10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
[11, 2, "^[Ss]ystem$", 4, ",", 1],
[12, 2, "^Nu[0-9.]*$", 4, ",", 1]
]
},
"settings": {
"fields": ["name", "type", "value_str", "value_int"],
"data": [
["autoreg_tls_accept", 2, "", 1],
["hk_history_global", 2, "", 0],
["snmptrap_logging", 2, "", 1],
["proxy_secrets_provider", 2, "", 0],
["hk_history", 1, "31d", 0],
["timeout_db_monitor", 1, "3s", 0],
["timeout_external_check", 1, "3s", 0],
["timeout_http_agent", 1, "3s", 0],
["timeout_simple_check", 1, "3s", 0],
["timeout_snmp_agent", 1, "3s", 0],
["timeout_ssh_agent", 1, "3s", 0],
["timeout_telnet_agent", 1, "3s", 0],
["timeout_zabbix_agent", 1, "3s", 0],
["timeout_browser", 1, "30s", 0]
]
},
"httptest": {
"fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
"data": []
},
"httptestitem": {
"fields": ["httptestitemid", "httptestid", "itemid", "type"],
"data": []
},
"httptest_field": {
"fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
"data": []
},
"httpstep": {
"fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
"data": []
},
"httpstepitem": {
"fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
"data": []
},
"httpstep_field": {
"fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
"data": []
},
"config_autoreg_tls": {
"fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
"data": [
[1, "", ""]
]
}
},
"macro.secrets": {
"AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
"Content": "738"
}
},
"config_revision": 2
}
Solicitud de datos
La solicitud proxy data se envía desde el proxy para proporcionar disponibilidad de interfaces de host, datos de historial, descubrimiento y autoregistro.
Esta solicitud se envía cada DataSenderFrequency segundos (parámetro de configuración del proxy).
Tenga en cuenta que el proxy activo seguirá consultando al server de Zabbix cada segundo para tareas de comandos remotos (con una solicitud proxy data vacía).
| name | value type | description | |
|---|---|---|---|
| proxy→server: | |||
| request | string | 'proxy data' | |
| host | string | Nombre del proxy. | |
| session | string | Token de sesión de datos. | |
| interface availability | array | (optional) Matriz de objetos de disponibilidad de interfaces. | |
| interfaceid | number | Identificador de la interfaz. | |
| available | number | Disponibilidad de la interfaz: 0, INTERFACE_AVAILABLE_UNKNOWN - desconocida 1, INTERFACE_AVAILABLE_TRUE - disponible 2, INTERFACE_AVAILABLE_FALSE - no disponible |
|
| error | string | Mensaje de error de la interfaz o cadena vacía. | |
| history data | array | (optional) Matriz de objetos de datos de historial. | |
| itemid | number | Identificador del item. | |
| clock | number | Marca de tiempo del valor del item (segundos). | |
| ns | number | Marca de tiempo del valor del item (nanosegundos). | |
| value | string | (optional) Valor del item. | |
| id | number | Identificador del valor (contador ascendente, único dentro de una sesión de datos). | |
| timestamp | number | (optional) Marca de tiempo de los items de tipo log. | |
| source | string | (optional) Valor de origen del item eventlog. | |
| severity | number | (optional) Valor de severidad del item eventlog. | |
| eventid | number | (optional) Valor eventid del item eventlog. | |
| state | string | (optional) Estado del item: 0, ITEM_STATE_NORMAL 1, ITEM_STATE_NOTSUPPORTED |
|
| lastlogsize | number | (optional) Último tamaño de log de los items de tipo log. | |
| mtime | number | (optional) Hora de modificación de los items de tipo log. | |
| discovery data | array | (optional) Matriz de objetos de datos de descubrimiento. | |
| clock | number | Marca de tiempo de los datos de descubrimiento. | |
| druleid | number | Identificador de la regla de descubrimiento. | |
| dcheckid | number | Identificador de la comprobación de descubrimiento o null para datos de la regla de descubrimiento. | |
| type | number | Tipo de comprobación de descubrimiento: -1 datos de la regla de descubrimiento 0, SVC_SSH - comprobación del servicio SSH 1, SVC_LDAP - comprobación del servicio LDAP 2, SVC_SMTP - comprobación del servicio SMTP 3, SVC_FTP - comprobación del servicio FTP 4, SVC_HTTP - comprobación del servicio HTTP 5, SVC_POP - comprobación del servicio POP 6, SVC_NNTP - comprobación del servicio NNTP 7, SVC_IMAP - comprobación del servicio IMAP 8, SVC_TCP - comprobación de disponibilidad del puerto TCP 9, SVC_AGENT - agent de Zabbix 10, SVC_SNMPv1 - agent SNMPv1 11, SVC_SNMPv2 - agent SNMPv2 12, SVC_ICMPPING - ping ICMP 13, SVC_SNMPv3 - agent SNMPv3 14, SVC_HTTPS - comprobación del servicio HTTPS 15, SVC_TELNET - comprobación de disponibilidad de Telnet |
|
| ip | string | Dirección IP del host. | |
| dns | string | Nombre DNS del host. | |
| port | number | (optional) Número de puerto del servicio. | |
| key_ | string | (optional) Clave del item para la comprobación de descubrimiento de tipo 9 SVC_AGENT | |
| value | string | (optional) Valor recibido del servicio; puede estar vacío para la mayoría de los servicios. | |
| status | number | (optional) Estado del servicio: 0, DOBJECT_STATUS_UP - Servicio UP 1, DOBJECT_STATUS_DOWN - Servicio DOWN |
|
| autoregistration | array | (optional) Matriz de objetos de datos de autoregistro. | |
| clock | number | Marca de tiempo de los datos de autoregistro. | |
| host | string | Nombre del host. | |
| ip | string | (optional) Dirección IP del host. | |
| dns | string | (optional) Nombre DNS resuelto a partir de la dirección IP. | |
| port | string | (optional) Puerto del host. | |
| host_metadata | string | (optional) Metadatos del host enviados por el agent (basados en el parámetro de configuración del agent HostMetadata o HostMetadataItem). | |
| tasks | array | (optional) Matriz de tareas. | |
| type | number | Tipo de tarea: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado de 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 - el comando remoto falló |
|
| error | string | (optional) Mensaje de error. | |
| parent_taskid | number | ID de la tarea principal. | |
| more | number | (optional) 1 - hay más datos de historial para enviar | |
| clock | number | (optional) Marca de tiempo de la transferencia de datos (segundos). | |
| ns | number | (optional) Marca de tiempo de la transferencia de datos (nanosegundos). | |
| version | string | Versión del proxy (<major>.<minor>.<build>). | |
| server→proxy: | |||
| response | string | Información de éxito de la solicitud ('success' o 'failed'). | |
| upload | string | Control de carga para datos históricos (historial, autoregistro, disponibilidad de host, descubrimiento de red). Valores posibles: enabled - funcionamiento normal disabled - el server no acepta datos (posiblemente debido a que la caché interna ha superado el límite) |
|
| tasks | array | (optional) Matriz de tareas. | |
| type | number | Tipo de tarea: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto |
|
| clock | number | Hora de creación de la tarea. | |
| ttl | number | Tiempo en segundos tras el cual la tarea expira. | |
| commandtype | number | 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 | string | Comando remoto a ejecutar. | |
| execute_on | number | Destino de ejecución para scripts personalizados: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - ejecutar el script en el agent 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - ejecutar el script en el server 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - ejecutar el script en el proxy |
|
| port | number | (optional) Puerto para comandos Telnet y SSH. | |
| authtype | number | (optional) Tipo de autenticación para comandos SSH. | |
| username | string | (optional) Nombre de usuario para comandos Telnet y SSH. | |
| password | string | (optional) Contraseña para comandos Telnet y SSH. | |
| publickey | string | (optional) Clave pública para comandos SSH. | |
| privatekey | string | (optional) Clave privada para comandos SSH. | |
| parent_taskid | number | ID de la tarea principal. | |
| hostid | number | ID del host de destino. | |
Ejemplo:
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
}]
}