Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

1 Protocolo de troca de dados server-proxy

Visão geral

A troca de dados entre server e proxy é baseada no formato JSON.

As mensagens de solicitação e resposta devem começar com cabeçalho e comprimento dos dados.

Proxy passivo

Solicitação de configuração

O server enviará primeiro uma solicitação vazia de proxy config. Esta solicitação é enviada a cada ProxyConfigFrequency (segundos do parâmetro de configuração do server).

O proxy responde com a versão atual do proxy, token de sessão e revisão da configuração. O server responde com os dados de configuração que precisam ser atualizados.

nome tipo de valor descrição
server→proxy:
request string 'proxy config'
proxy→server:
version string Versão do proxy (<major>.<minor>.<build>).
session string Token de sessão de configuração do proxy.
config_revision number Revisão da configuração do proxy.
server→proxy:
full_sync number 1 - se os dados completos de configuração forem enviados; ausente - caso contrário (opcional).
data array Objeto de dados da tabela. Ausente se a configuração não foi alterada (opcional).
<table> object Um ou mais objetos com dados de <table> (opcional, dependendo das alterações).
fields array Array de nomes de campos.
- string Nome do campo.
data array Array de linhas.
- array Array de colunas.
- string,number Valor da coluna com tipo dependendo do tipo da coluna no esquema do banco de dados.
macro.secrets object Informações de macro secreta, ausente se não houver alterações em macros de cofre (opcional).
config_revision number Revisão do cache de configuração - enviada com os dados de configuração (opcional).
del_hostids array Array de hostids removidos (opcional).
- number Identificador do host.
del_macro_hostids array Array de hostids com todas as macros removidas (opcional).
- number Identificador do host.
proxy→server:
response string Informação de sucesso da solicitação ('success' ou 'failed').
version string Versão do proxy (<major>.<minor>.<build>).

Exemplo:

server→proxy:

{
         "request":"proxy config"
       } 

proxy→server:

{
         "version": "8.0.0",
         "session": "0033124949800811e5686dbfd9bcea98",
         "config_revision": 0
       }

server→proxy:

{
           "full_sync": 1,
           "data": {
               "hosts": {
                   "fields": ["hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk"],
                   "data": [
                       [10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
                   ]
               },
               "interface": {
                   "fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
                   "data": [
                       [1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
                   ]
               },
               "interface_snmp": {
                   "fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
                   "data": []
               },
               "host_inventory": {
                   "fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
                   "data": [
                       [10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
                   ]
               },
               "items": {
                   "fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
                   "data": [
                       [44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
                       [44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
                   ]
               },
               "item_rtdata": {
                   "fields": ["itemid", "lastlogsize", "mtime"],
                   "data": [
                       [44161, 0, 0],
                       [44162, 0, 0]
                   ]
               },
               "item_preproc": {
                   "fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
                   "data": []
               },
               "item_parameter": {
                   "fields": ["item_parameterid", "itemid", "name", "value"],
                   "data": []
               },
               "globalmacro": {
                   "fields": ["globalmacroid", "macro", "value", "type"],
                   "data": [
                       [2, "{$SNMP_COMMUNITY}", "public", 0]
                   ]
               },
               "hosts_templates": {
                   "fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
                   "data": []
               },
               "hostmacro": {
                   "fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
                   "data": [
                       [5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
                   ]
               },
               "drules": {
                   "fields": ["druleid", "name", "iprange", "delay"],
                   "data": [
                       [2, "Local network", "127.0.0.1", "10s"]
                   ]
               },
               "dchecks": {
                   "fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
                   "data": [
                       [2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
                   ]
               },
               "regexps": {
                   "fields": ["regexpid", "name"],
                   "data": [
                       [1, "File systems for discovery"],
                       [2, "Network interfaces for discovery"],
                       [3, "Storage devices for SNMP discovery"],
                       [4, "Windows service names for discovery"],
                       [5, "Windows service startup states for discovery"]
                   ]
               },
               "expressions": {
                   "fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
                   "data": [
                       [1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
                       [3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
                       [5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
                       [6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
                       [7, 2, "^Software Loopback Interface", 4, ",", 1],
                       [8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
                       [9, 2, "^NULL[0-9.]*$", 4, ",", 1],
                       [10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
                       [11, 2, "^[Ss]ystem$", 4, ",", 1],
                       [12, 2, "^Nu[0-9.]*$", 4, ",", 1]
                   ]
               },
               "settings": {
                   "fields": ["name", "type", "value_str", "value_int"],
                   "data": [
                       ["autoreg_tls_accept", 2, "", 1],
                       ["hk_history_global", 2, "", 0],
                       ["snmptrap_logging", 2, "", 1],
                       ["proxy_secrets_provider", 2, "", 0],
                       ["hk_history", 1, "31d", 0],
                       ["timeout_db_monitor", 1, "3s", 0],
                       ["timeout_external_check", 1, "3s", 0],
                       ["timeout_http_agent", 1, "3s", 0],
                       ["timeout_simple_check", 1, "3s", 0],
                       ["timeout_snmp_agent", 1, "3s", 0],
                       ["timeout_ssh_agent", 1, "3s", 0],
                       ["timeout_telnet_agent", 1, "3s", 0],
                       ["timeout_zabbix_agent", 1, "3s", 0],
                       ["timeout_browser", 1, "30s", 0]
                   ]
               },
               "httptest": {
                   "fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
                   "data": []
               },
               "httptestitem": {
                   "fields": ["httptestitemid", "httptestid", "itemid", "type"],
                   "data": []
               },
               "httptest_field": {
                   "fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
                   "data": []
               },
               "httpstep": {
                   "fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
                   "data": []
               },
               "httpstepitem": {
                   "fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
                   "data": []
               },
               "httpstep_field": {
                   "fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
                   "data": []
               },
               "config_autoreg_tls": {
                   "fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
                   "data": [
                       [1, "", ""]
                   ]
               }
           },
           "macro.secrets": {
               "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
                   "Content": "738"
               }
           },
           "config_revision": 2
       }

proxy→server:

{
         "response": "success",
         "version": "8.0.0"
       }
Solicitação de dados

A solicitação proxy data é usada para obter a disponibilidade da interface do host, dados históricos, de descoberta e de auto-registro do proxy. Esta solicitação é enviada a cada ProxyDataFrequency (parâmetro de configuração do server) segundos.

nome tipo de valor descrição
server→proxy:
request string 'proxy data'
proxy→server:
session string Token de sessão de dados.
interface availability array (opcional) Array de objetos de dados de disponibilidade de interface.
interfaceid number Identificador da interface.
available number Disponibilidade da interface:

0, INTERFACE_AVAILABLE_UNKNOWN - desconhecida
1, INTERFACE_AVAILABLE_TRUE - disponível
2, INTERFACE_AVAILABLE_FALSE - indisponível
error string Mensagem de erro da interface ou string vazia.
history data array (opcional) Array de objetos de dados históricos.
itemid number Identificador do item.
clock number Timestamp do valor do item (segundos).
ns number Timestamp do valor do item (nanossegundos).
value string (opcional) Valor do item.
id number Identificador do valor (contador crescente, único dentro de uma sessão de dados).
timestamp number (opcional) Timestamp de itens do tipo log.
source string (opcional) Valor da fonte do item eventlog.
severity number (opcional) Valor de severidade do item eventlog.
eventid number (opcional) Valor eventid do item eventlog.
state string (opcional) Estado do item:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (opcional) Último tamanho do log de itens do tipo log.
mtime number (opcional) Tempo de modificação de itens do tipo log.
discovery data array (opcional) Array de objetos de dados de descoberta.
clock number Timestamp dos dados de descoberta.
druleid number Identificador da regra de descoberta.
dcheckid number Identificador da verificação de descoberta ou nulo para dados da regra de descoberta.
type number Tipo de verificação de descoberta:

-1 dados da regra de descoberta
0, SVC_SSH - verificação de serviço SSH
1, SVC_LDAP - verificação de serviço LDAP
2, SVC_SMTP - verificação de serviço SMTP
3, SVC_FTP - verificação de serviço FTP
4, SVC_HTTP - verificação de serviço HTTP
5, SVC_POP - verificação de serviço POP
6, SVC_NNTP - verificação de serviço NNTP
7, SVC_IMAP - verificação de serviço IMAP
8, SVC_TCP - verificação de disponibilidade da porta TCP
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 - verificação de serviço HTTPS
15, SVC_TELNET - verificação de disponibilidade Telnet
ip string Endereço IP do host.
dns string Nome DNS do host.
port number (opcional) Número da porta do serviço.
key_ string (opcional) Chave do item para verificação de descoberta do tipo 9 SVC_AGENT
value string (opcional) Valor recebido do serviço, pode estar vazio para a maioria dos serviços.
status number (opcional) Status do serviço:

0, DOBJECT_STATUS_UP - Serviço UP
1, DOBJECT_STATUS_DOWN - Serviço DOWN
auto registration array (opcional) Array de objetos de dados de auto-registro.
clock number Timestamp dos dados de auto-registro.
host string Nome do host.
ip string (opcional) Endereço IP do host.
dns string (opcional) Nome DNS resolvido a partir do endereço IP.
port string (opcional) Porta do host.
host_metadata string (opcional) Metadados do host enviados pelo agent (baseado no parâmetro de configuração do agent HostMetadata ou HostMetadataItem).
tasks array (opcional) Array de tarefas.
type number Tipo de tarefa:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado do comando remoto
status number Status da execução do comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - comando remoto concluído com sucesso
1, ZBX_TM_REMOTE_COMMAND_FAILED - comando remoto falhou
error string (opcional) Mensagem de erro.
parent_taskid number ID da tarefa pai.
more number (opcional) 1 - há mais dados históricos para enviar.
clock number (opcional) Timestamp da transferência de dados (segundos).
ns number (opcional) Timestamp da transferência de dados (nanossegundos).
version string Versão do proxy (<major>.<minor>.<build>).
server→proxy:
response string Informação de sucesso da solicitação ('success' ou 'failed').
tasks array (opcional) Array de tarefas.
type number Tipo de tarefa:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock number Hora de criação da tarefa.
ttl number Tempo em segundos após o qual a tarefa expira.
commandtype number Tipo de comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usar script customizado
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 (atualmente funcionalmente equivalente ao script customizado)
command string Comando remoto a ser executado.
execute_on number Destino de execução para scripts customizados:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executar script no agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executar script no server
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executar script no proxy
port number (opcional) Porta para comandos Telnet e SSH.
authtype number (opcional) Tipo de autenticação para comandos SSH.
username string (opcional) Nome de usuário para comandos Telnet e SSH.
password string (opcional) Senha para comandos Telnet e SSH.
publickey string (opcional) Chave pública para comandos SSH.
privatekey string (opcional) Chave privada para comandos SSH.
parent_taskid number ID da tarefa pai.
hostid number ID do host de destino.

Exemplo:

server→proxy:

{
         "request": "proxy data"
       }

proxy→server:

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

server→proxy:

{
         "response": "success",
         "tasks":[
             {
                "type": 1,
                "clock": 1478608371,
                "ttl": 600,
                "commandtype": 2,
                "command": "restart_service1.sh",
                "execute_on": 2,
                "port": 80,
                "authtype": 0,
                "username": "userA",
                "password": "password1",
                "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe",
                "privatekey": "lsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd",
                "parent_taskid": 10,
                "hostid": 10070
             },
             {
                "type": 1,
                "clock": 1478608381,
                "ttl": 600,
                "commandtype": 1,
                "command": "restart_service2.sh",
                "execute_on": 0,
                "authtype": 0,
                "username": "",
                "password": "",
                "publickey": "",
                "privatekey": "",
                "parent_taskid": 20,
                "hostid": 10084
             }
         ]
       }

Proxy ativo

Solicitação de configuração

A solicitação proxy config é enviada pelo proxy ativo para obter os dados de configuração do proxy. Esta solicitação é enviada a cada ProxyConfigFrequency (parâmetro de configuração do proxy) segundos.

nome tipo de valor descrição
proxy→server:
request string 'proxy config'
host string
Nome do proxy.
version string Versão do proxy (<major>.<minor>.<build>).
session string Token de sessão de configuração do proxy.
config_revision number Revisão da configuração do proxy.
server→proxy:
fullsync number 1 - se todos os dados de configuração forem enviados, ausente caso contrário (opcional).
data array Objeto de dados da tabela. Ausente se a configuração não foi alterada (opcional).
<table> object Um ou mais objetos com dados da tabela <table> (opcional, dependendo das alterações).
fields array Array de nomes de campos.
- string Nome do campo.
data array Array de linhas.
- array Array de colunas.
- string,number Valor da coluna com tipo dependendo do tipo da coluna no esquema do banco de dados.
macro.secrets object Informação de macro secreta, ausente se não houver alterações em macros do cofre (opcional).
config_revision number Revisão do cache de configuração - enviada com os dados de configuração (opcional).
del_hostids array Array de hostids removidos (opcional).
- number Identificador do host.
del_macro_hostids array Array de hostids com todas as macros removidas (opcional).
- number Identificador do host.

Exemplo:

proxy→server:

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

server→proxy:

{
           "full_sync": 1,
           "data": {
               "hosts": {
                   "fields": ["hostid", "host", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_password", "name", "tls_connect", "tls_accept", "tls_issuer", "tls_subject", "tls_psk_identity", "tls_psk"],
                   "data": [
                       [10084, "Zabbix server", 0, -1, 2, "", "", "Zabbix server", 1, 1, "", "", "", ""]
                   ]
               },
               "interface": {
                   "fields": ["interfaceid", "hostid", "main", "type", "useip", "ip", "dns", "port", "available"],
                   "data": [
                       [1, 10084, 1, 1, 1, "127.0.0.1", "", "10053", 1]
                   ]
               },
               "interface_snmp": {
                   "fields": ["interfaceid", "version", "bulk", "community", "securityname", "securitylevel", "authpassphrase", "privpassphrase", "authprotocol", "privprotocol", "contextname"],
                   "data": []
               },
               "host_inventory": {
                   "fields": ["hostid", "type", "type_full", "name", "alias", "os", "os_full", "os_short", "serialno_a", "serialno_b", "tag", "asset_tag", "macaddress_a", "macaddress_b", "hardware", "hardware_full", "software", "software_full", "software_app_a", "software_app_b", "software_app_c", "software_app_d", "software_app_e", "contact", "location", "location_lat", "location_lon", "notes", "chassis", "model", "hw_arch", "vendor", "contract_number", "installer_name", "deployment_status", "url_a", "url_b", "url_c", "host_networks", "host_netmask", "host_router", "oob_ip", "oob_netmask", "oob_router", "date_hw_purchase", "date_hw_install", "date_hw_expiry", "date_hw_decomm", "site_address_a", "site_address_b", "site_address_c", "site_city", "site_state", "site_country", "site_zip", "site_rack", "site_notes", "poc_1_name", "poc_1_email", "poc_1_phone_a", "poc_1_phone_b", "poc_1_cell", "poc_1_screen", "poc_1_notes", "poc_2_name", "poc_2_email", "poc_2_phone_a", "poc_2_phone_b", "poc_2_cell", "poc_2_screen", "poc_2_notes"],
                   "data": [
                       [10084, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "56.95387", "24.22067", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]
                   ]
               },
               "items": {
                   "fields": ["itemid", "type", "snmp_oid", "hostid", "key_", "delay", "history", "status", "value_type", "trapper_hosts", "logtimefmt", "params", "ipmi_sensor", "authtype", "username", "password", "publickey", "privatekey", "flags", "interfaceid", "inventory_link", "jmx_endpoint", "master_itemid", "timeout", "url", "query_fields", "posts", "status_codes", "follow_redirects", "post_type", "http_proxy", "headers", "retrieve_mode", "request_method", "output_format", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host", "allow_traps"],
                   "data": [
                       [44161, 7, "", 10084, "agent.hostmetadata", "10s", "90d", 0, 1, "", "", "", "", 0, "", "", "", "", 0, null, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0],
                       [44162, 0, "", 10084, "agent.ping", "10s", "90d", 0, 3, "", "", "", "", 0, "", "", "", "", 0, 1, 0, "", null, "3s", "", "", "", "200", 1, 0, "", "", 0, 0, 0, "", "", "", 0, 0, 0]
                   ]
               },
               "item_rtdata": {
                   "fields": ["itemid", "lastlogsize", "mtime"],
                   "data": [
                       [44161, 0, 0],
                       [44162, 0, 0]
                   ]
               },
               "item_preproc": {
                   "fields": ["item_preprocid", "itemid", "step", "type", "params", "error_handler", "error_handler_params"],
                   "data": []
               },
               "item_parameter": {
                   "fields": ["item_parameterid", "itemid", "name", "value"],
                   "data": []
               },
               "globalmacro": {
                   "fields": ["globalmacroid", "macro", "value", "type"],
                   "data": [
                       [2, "{$SNMP_COMMUNITY}", "public", 0]
                   ]
               },
               "hosts_templates": {
                   "fields": ["hosttemplateid", "hostid", "templateid", "link_type"],
                   "data": []
               },
               "hostmacro": {
                   "fields": ["hostmacroid", "hostid", "macro", "value", "type", "automatic"],
                   "data": [
                       [5676, 10084, "{$M}", "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix:Content", 2, 0]
                   ]
               },
               "drules": {
                   "fields": ["druleid", "name", "iprange", "delay"],
                   "data": [
                       [2, "Local network", "127.0.0.1", "10s"]
                   ]
               },
               "dchecks": {
                   "fields": ["dcheckid", "druleid", "type", "key_", "snmp_community", "ports", "snmpv3_securityname", "snmpv3_securitylevel", "snmpv3_authpassphrase", "snmpv3_privpassphrase", "uniq", "snmpv3_authprotocol", "snmpv3_privprotocol", "snmpv3_contextname", "host_source", "name_source"],
                   "data": [
                       [2, 2, 9, "system.uname", "", "10052", "", 0, "", "", 0, 0, 0, "", 1, 0]
                   ]
               },
               "regexps": {
                   "fields": ["regexpid", "name"],
                   "data": [
                       [1, "File systems for discovery"],
                       [2, "Network interfaces for discovery"],
                       [3, "Storage devices for SNMP discovery"],
                       [4, "Windows service names for discovery"],
                       [5, "Windows service startup states for discovery"]
                   ]
               },
               "expressions": {
                   "fields": ["expressionid", "regexpid", "expression", "expression_type", "exp_delimiter", "case_sensitive"],
                   "data": [
                       [1, 1, "^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$", 3, ",", 0],
                       [3, 3, "^(Physical memory|Virtual memory|Memory buffers|Cached memory|Swap space)$", 4, ",", 1],
                       [5, 4, "^(MMCSS|gupdate|SysmonLog|clr_optimization_v2.0.50727_32|clr_optimization_v4.0.30319_32)$", 4, ",", 1],
                       [6, 5, "^(automatic|automatic delayed)$", 3, ",", 1],
                       [7, 2, "^Software Loopback Interface", 4, ",", 1],
                       [8, 2, "^(In)?[Ll]oop[Bb]ack[0-9._]*$", 4, ",", 1],
                       [9, 2, "^NULL[0-9.]*$", 4, ",", 1],
                       [10, 2, "^[Ll]o[0-9.]*$", 4, ",", 1],
                       [11, 2, "^[Ss]ystem$", 4, ",", 1],
                       [12, 2, "^Nu[0-9.]*$", 4, ",", 1]
                   ]
               },
               "settings": {
                   "fields": ["name", "type", "value_str", "value_int"],
                   "data": [
                       ["autoreg_tls_accept", 2, "", 1],
                       ["hk_history_global", 2, "", 0],
                       ["snmptrap_logging", 2, "", 1],
                       ["proxy_secrets_provider", 2, "", 0],
                       ["hk_history", 1, "31d", 0],
                       ["timeout_db_monitor", 1, "3s", 0],
                       ["timeout_external_check", 1, "3s", 0],
                       ["timeout_http_agent", 1, "3s", 0],
                       ["timeout_simple_check", 1, "3s", 0],
                       ["timeout_snmp_agent", 1, "3s", 0],
                       ["timeout_ssh_agent", 1, "3s", 0],
                       ["timeout_telnet_agent", 1, "3s", 0],
                       ["timeout_zabbix_agent", 1, "3s", 0],
                       ["timeout_browser", 1, "30s", 0]
                   ]
               },
               "httptest": {
                   "fields": ["httptestid", "name", "delay", "agent", "authentication", "http_user", "http_password", "hostid", "http_proxy", "retries", "ssl_cert_file", "ssl_key_file", "ssl_key_password", "verify_peer", "verify_host"],
                   "data": []
               },
               "httptestitem": {
                   "fields": ["httptestitemid", "httptestid", "itemid", "type"],
                   "data": []
               },
               "httptest_field": {
                   "fields": ["httptest_fieldid", "httptestid", "type", "name", "value"],
                   "data": []
               },
               "httpstep": {
                   "fields": ["httpstepid", "httptestid", "name", "no", "url", "timeout", "posts", "required", "status_codes", "follow_redirects", "retrieve_mode", "post_type"],
                   "data": []
               },
               "httpstepitem": {
                   "fields": ["httpstepitemid", "httpstepid", "itemid", "type"],
                   "data": []
               },
               "httpstep_field": {
                   "fields": ["httpstep_fieldid", "httpstepid", "type", "name", "value"],
                   "data": []
               },
               "config_autoreg_tls": {
                   "fields": ["autoreg_tlsid", "tls_psk_identity", "tls_psk"],
                   "data": [
                       [1, "", ""]
                   ]
               }
           },
           "macro.secrets": {
               "AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix": {
                   "Content": "738"
               }
           },
           "config_revision": 2
       }
Solicitação de dados

A solicitação proxy data é enviada pelo proxy para fornecer disponibilidade de interface de host, histórico, descoberta e dados de autorregistro. Esta solicitação é enviada a cada DataSenderFrequency (parâmetro de configuração do proxy) segundos. Observe que o proxy ativo ainda irá consultar o Zabbix server a cada segundo para tarefas de comando remoto (com uma solicitação proxy data vazia).

nome tipo de valor descrição
proxy→server:
request string 'proxy data'
host string Nome do proxy.
session string Token de sessão de dados.
interface availability array (opcional) Array de objetos de dados de disponibilidade de interface.
interfaceid number Identificador da interface.
available number Disponibilidade da interface:

0, INTERFACE_AVAILABLE_UNKNOWN - desconhecida
1, INTERFACE_AVAILABLE_TRUE - disponível
2, INTERFACE_AVAILABLE_FALSE - indisponível
error string Mensagem de erro da interface ou string vazia.
history data array (opcional) Array de objetos de dados de histórico.
itemid number Identificador do item.
clock number Timestamp do valor do item (segundos).
ns number Timestamp do valor do item (nanossegundos).
value string (opcional) Valor do item.
id number Identificador do valor (contador crescente, único dentro de uma sessão de dados).
timestamp number (opcional) Timestamp de items do tipo log.
source string (opcional) Valor da fonte do item eventlog.
severity number (opcional) Valor de severidade do item eventlog.
eventid number (opcional) Valor eventid do item eventlog.
state string (opcional) Estado do item:
0, ITEM_STATE_NORMAL
1, ITEM_STATE_NOTSUPPORTED
lastlogsize number (opcional) Último tamanho do log de items do tipo log.
mtime number (opcional) Tempo de modificação de items do tipo log.
discovery data array (opcional) Array de objetos de dados de descoberta.
clock number Timestamp dos dados de descoberta.
druleid number Identificador da regra de descoberta.
dcheckid number Identificador da verificação de descoberta ou nulo para dados de regra de descoberta.
type number Tipo de verificação de descoberta:

-1 dados da regra de descoberta
0, SVC_SSH - verificação de serviço SSH
1, SVC_LDAP - verificação de serviço LDAP
2, SVC_SMTP - verificação de serviço SMTP
3, SVC_FTP - verificação de serviço FTP
4, SVC_HTTP - verificação de serviço HTTP
5, SVC_POP - verificação de serviço POP
6, SVC_NNTP - verificação de serviço NNTP
7, SVC_IMAP - verificação de serviço IMAP
8, SVC_TCP - verificação de disponibilidade de porta TCP
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 - verificação de serviço HTTPS
15, SVC_TELNET - verificação de disponibilidade Telnet
ip string Endereço IP do host.
dns string Nome DNS do host.
port number (opcional) Número da porta do serviço.
key_ string (opcional) Chave do item para verificação de descoberta do tipo 9 SVC_AGENT
value string (opcional) Valor recebido do serviço, pode estar vazio para a maioria dos serviços.
status number (opcional) Status do serviço:

0, DOBJECT_STATUS_UP - Serviço UP
1, DOBJECT_STATUS_DOWN - Serviço DOWN
autoregistration array (opcional) Array de objetos de dados de autorregistro.
clock number Timestamp dos dados de autorregistro.
host string Nome do host.
ip string (opcional) Endereço IP do host.
dns string (opcional) Nome DNS resolvido a partir do endereço IP.
port string (opcional) Porta do host.
host_metadata string (opcional) Metadados do host enviados pelo agent (baseado no parâmetro de configuração do agent HostMetadata ou HostMetadataItem).
tasks array (opcional) Array de tarefas.
type number Tipo de tarefa:

0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - resultado do comando remoto
status number Status da execução do comando remoto:

0, ZBX_TM_REMOTE_COMMAND_COMPLETED - comando remoto concluído com sucesso
1, ZBX_TM_REMOTE_COMMAND_FAILED - comando remoto falhou
error string (opcional) Mensagem de erro.
parent_taskid number ID da tarefa pai.
more number (opcional) 1 - há mais dados de histórico para enviar
clock number (opcional) Timestamp da transferência de dados (segundos).
ns number (opcional) Timestamp da transferência de dados (nanossegundos).
version string Versão do proxy (<major>.<minor>.<build>).
server→proxy:
response string Informação de sucesso da solicitação ('success' ou 'failed').
upload string Controle de upload para dados históricos (histórico, autorregistro, disponibilidade de host, descoberta de rede).

Valores possíveis:
enabled - operação normal
disabled - o server não está aceitando dados (possivelmente devido ao limite interno do cache)
tasks array (opcional) Array de tarefas.
type number Tipo de tarefa:

1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto
clock number Hora de criação da tarefa.
ttl number Tempo em segundos após o qual a tarefa expira.
commandtype number Tipo de comando remoto:

0, ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - usar script customizado
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 (atualmente funcionalmente equivalente ao script customizado)
command string Comando remoto a ser executado.
execute_on number Alvo de execução para scripts customizados:

0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executar script no agent
1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executar script no server
2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executar script no proxy
port number (opcional) Porta para comandos Telnet e SSH.
authtype number (opcional) Tipo de autenticação para comandos SSH.
username string (opcional) Nome de usuário para comandos Telnet e SSH.
password string (opcional) Senha para comandos Telnet e SSH.
publickey string (opcional) Chave pública para comandos SSH.
privatekey string (opcional) Chave privada para comandos SSH.
parent_taskid number ID da tarefa pai.
hostid number ID do host de destino.

Exemplo:

proxy→server:

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

server→proxy:

{
           "upload": "enabled",
           "response": "success",
           "tasks": [{
               "type": 2,
               "clock": 1665730986,
               "ttl": 600,
               "commandtype": 0,
               "command": "ping -c 3 127.0.0.1; case $? in [01]) true;; *) false;; esac",
               "execute_on": 2,
               "port": 0,
               "authtype": 0,
               "username": "",
               "password": "",
               "publickey": "",
               "privatekey": "",
               "alertid": 0,
               "parent_taskid": 4,
               "hostid": 10084
           }]
       }