Servidor - a troca de dados do proxy é baseada no formato JSON.
As mensagens de solicitação e resposta devem começar com cabeçalho e dados comprimento.
A solicitação proxy config é enviada pelo servidor para fornecer proxy dados de configuração. Esta solicitação é enviada a cada ProxyConfigFrequency (parâmetro de configuração do servidor) segundos.
| nome | tipo de valor | descrição | |||
|---|---|---|---|---|---|
| servidor→proxy: | |||||
| request | string | 'proxy config' | |||
| <tabela> | objeto | um ou mais objetos com <tabela> dados | |||
| campos | array | array de nomes de campo | |||
| - | string | nome do campo | |||
| dados | array | array de linhas | |||
| - | array | array de colunas | |||
| - | string,number | valor da coluna com tipo dependendo do tipo de coluna no esquema do banco de dados | |||
| proxy→servidor: | |||||
| resposta | string | as informações de sucesso da solicitação ('sucesso' ou 'falha') | |||
| versão | string | a versão do proxy (<major>.<minor>.<build>) | |||
Exemplo:
servidor→proxy:
{ "request": "configuração de proxy", "macro global":{ "Campos":[ "globalmacróide", "macro", "valor" ], "dados":[ [ 2, "{$SNMP_COMMUNITY}", "público" ] ] }, "hosts":{ "Campos":[ "host", "hospedeiro", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_senha", "nome", "tls_connect", "tls_aceitar", "tls_issuer", "tls_assunto", "tls_psk_identity", "tls_psk" ], "dados":[ [ 10001, "Linux", 3, -1, 2, "", "", "Linux", 1, 1, "", "", "", "" ], [ 10050, "Agente Zabbix", 3, -1, 2, "", "", "Agente Zabbix", 1, 1, "", "", "", "" ], [ 10105, "Registrador", 0, -1, 2, "", "", "Registrador", 1, 1, "", "", "", "" ] ] }, "interface":{ "Campos":[ "interfaceid", "host", "a Principal", "tipo", "usei", "ip", "dns", "porta", "volume" ], "dados":[ [ 2, 10105, 1, 1, 1, "127.0.0.1", "", "10050", 1 ] ] }, ... }proxy→servidor:
A solicitação proxy data é usada para obter a disponibilidade da interface do host, dados históricos, de descoberta e registro automático do proxy. Esse pedido é enviado a cada ProxyDataFrequency (parâmetro de configuração do servidor) segundos.
| nome | tipo de valor | descrição | |
|---|---|---|---|
| servidor→proxy: | |||
| solicitação | string | 'dados de proxy' | |
| proxy→servidor: | |||
| sessão | string | token de sessão de dados | |
| disponibilidade de interface | array | (opcional) array de objetos de dados de disponibilidade de interface | |
| interfaceid | número | identificador de interface | |
| disponível | número | Disponibilidade da interface 0, INTERFACE_AVAILABLE_UNKNOWN - desconhecido 1, *INTERFACE_AVAILABLE _TRUE* - disponível 2, INTERFACE_AVAILABLE_FALSE - indisponível | |
| error | string | Mensagem de erro de interface ou string vazia | |
| dados históricos | array | (opcional) array de objetos de dados históricos | |
| itemid | número | identificador do item | |
| relógio | número | valor do item timestamp (segundos) | |
| ns | número | valor do item timestamp (nanossegundos) | |
| valor | string | (opcional) valor do item | |
| id | number | identificador de valor (contador crescente, único dentro de uma sessão de dados) | |
| timestamp | number | (opcional) timestamp de itens do tipo de log | |
| fonte | string | (opcional) valor da fonte do item do log de eventos | |
| severidade | número | (opcional) valor de gravidade do item do log de eventos | |
| eventid | number | (opcional) eventlog item eventid value | |
| state | string | (opcional) estado do item 0, ITEM_STATE_NORMAL 1, *ITEM_STATE _NÃO SUPORTADO* | |
| lastlogsize | number | (opcional) último tamanho de log dos itens do tipo de log | |
| mtime | number | (opcional) modificar a hora dos itens do tipo de log | |
| dados de descoberta | array | (opcional) array de objetos de dados de descoberta | |
| relógio | número | o carimbo de data/hora dos dados de descoberta | |
| druleid | number | o identificador da regra de descoberta | |
| dcheckid | number | o identificador de verificação de descoberta ou nulo para dados da regra de descoberta | |
| tipo | número | tipo de verificação de descoberta: -1 dados da regra de descoberta 0, SVC_SSH - serviço SSH check 1, SVC_LDAP - verificação do serviço LDAP 2, SVC_SMTP - verificação do serviço SMTP 3, SVC_FTP - Verificação do serviço FTP 4, SVC_HTTP - Verificação do serviço HTTP 5, SVC_POP - Verificação do serviço POP 6, SVC_NNTP - Verificação do serviço NNTP 7, SVC_IMAP - Verificação do serviço IMAP 8, SVC_TCP - Verificação da disponibilidade da porta 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 - verificação de serviço HTTPS< br>15**, SVC_TELNET - Verificação de disponibilidade do Telnet | |
| ip | string | o endereço IP do host | |
| dns | string | o nome DNS do host | |
| porta | número | (opcional) número da porta de serviço | |
| key_ | string | (opcional) a chave do item para verificação de descoberta do tipo 9 SVC_AGENT | |
| valor | 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 - Service UP **1* , DOBJECT_STATUS_DOWN* - Serviço DOWN | |
| registro automático | array | (opcional) array de objetos de dados de registro automático | |
| relógio | número | o carimbo de data/hora dos dados de registro automático | |
| host | string | o nome do host | |
| ip | string | (opcional) o endereço IP do host | |
| dns | string | (opcional) o nome DNS resolvido do endereço IP | |
| port | string | (opcional) a porta do host | |
| host_metadata | string | (opcional) os metadados do host enviados pelo agente (com base no parâmetro de configuração do agente HostMetadata ou HostMetadataItem) | |
| tarefas | array | (opcional) array de tarefas | |
| type | number | o tipo de tarefa: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - remote command result | |
| status | number | status de execução do comando remoto: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - o comando remoto foi concluído com sucesso<br >1, ZBX_TM_REMOTE_COMMAND_FAILED - o comando remoto falhou | |
| error | string | (opcional) a mensagem de erro | |
| parent_taskid | number | o ID da tarefa pai | |
| mais | número | (opcional) 1 - há mais dados do histórico para enviar | |
| relógio | número | (opcional) data de transferência de dados (segundos) | |
| ns | number | (opcional) data de transferência de dados (nanossegundos) | |
| versão | string | a versão do proxy (<major>.<minor>.<build>) | |
| servidor→proxy: | |||
| resposta | string | as informações de sucesso da solicitação ('sucesso' ou 'falha') | |
| tarefas | array | (opcional) array de tarefas | |
| tipo | número | tipo de tarefa: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto | |
| relógio | número | hora de criação da tarefa | |
| ttl | number | o tempo em segundos após o qual a tarefa expira | |
| commandtype | number | o tipo de comando remoto: 0 | |
| , ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT - use script personalizado 1, ZBX_SCRIPT_TYPE_IPMI - use IPMI 2, ZBX_SCRIPT _TYPE_SSH - use SSH 3, ZBX_SCRIPT_TYPE_TELNET - use Telnet 4, ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT - use script global (atualmente funcionalmente equivalente ao script personalizado) | |||
| comando | string | o comando remoto a ser executado | |
| execute_on | number | o destino de execução para scripts personalizados: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executa script no agente 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executa script no servidor 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executa script no proxy | |
| port | number | (opcional) a porta para comandos telnet e ssh | |
| authtype | number | (opcional) o tipo de autenticação para comandos ssh | |
| username | string | (opcional) o nome de usuário para comandos telnet e ssh | |
| senha | string | (opcional) a senha para comandos telnet e ssh | |
| chave pública | string | (opcional) a chave pública para comandos ssh | |
| privatekey | string | (opcional) a chave privada para comandos ssh | |
| parent_taskid | number | o ID da tarefa pai | |
| hostid | number | hostid de destino | |
Exemplo:
servidor→proxy:
proxy→servidor:
{ "sessão": "12345678901234567890123456789012" "disponibilidade de interface": [ { "interfaceid": 1, "disponível": 1, "erro": "" }, { "interfaceid": 2, "disponível": 2, "error": "Falha ao obter valor do agente: não é possível conectar a [[127.0.0.1]:10049]: [111] Conexão recusada" }, { "interfaceid": 3, "disponível": 1, "erro": "" }, { "interfaceid": 4, "disponível": 1, "erro": "" } ], "dados do histórico":[ { "itemid":"12345", "relógio":1478609647, "ns":332510044, "valor":"52956612", "id": 1 }, { "itemid":"12346", "relógio":1478609647, "ns":330690279, "estado":1, "value":"Não foi possível encontrar informações para esta interface de rede em /proc/net/dev.", "id": 2 } ], "dados de descoberta":[ { "relógio": 1478608764, "drule": 2, "dcheck":3, "tipo":12, "ip":"10.3.0.10", "dns":"vdebian", "estado":1 }, { "relógio": 1478608764, "drule": 2, "dcheck":null, "tipo 1, "ip":"10.3.0.10", "dns":"vdebian", "estado":1 } ], "registro automático":[ { "relógio":1478608371, "host":"Registrador1", "ip":"10.3.0.1", "dns":"localhost", "porta":"10050" }, { "relógio":1478608381, "host":"Logger2", "ip":"10.3.0.2", "dns":"localhost", "porta":"10050" } ], "tarefas":[ { "tipo": 0, "estado": 0, "parent_taskid": 10 }, { "tipo": 0, "estado": 1, "error": "Nenhuma permissão para executar a tarefa.", "parent_taskid": 20 } ], "versão":"5.4.0" }servidor→proxy:
{ "resposta": "sucesso", "tarefas":[ { "tipo 1, "relógio": 1478608371, "ttl": 600, "commandtype": 2, "command": "restart_service1.sh", "execute_on": 2, "porta": 80, "authtype": 0, "username": "userA", "senha": "senha1", "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe", "privatekey": "lsuusFncCzWBQ7RKNUsesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5QCqGKukO1De7zhd", "parent_taskid": 10, "hostid": 10070 }, { "tipo 1, "relógio": 1478608381, "ttl": 600, "commandtype": 1, "command": "restart_service2.sh", "execute_on": 0, "authtype": 0, "nome do usuário": "", "senha": "", "chave pública": "", "chave privada": "", "parent_taskid": 20, "hostid": 10084 } ] }A solicitação proxy heartbeat é enviada pelo proxy para informar que o proxy está executando. Este pedido é enviado a cada HeartbeatFrequency (proxy parâmetro de configuração) segundos.
| nome | tipo de valor | descrição | |
|---|---|---|---|
| proxy→servidor: | |||
| request | string | 'proxy heartbeat' | |
| host | string | o nome do proxy | |
| versão | string | a versão do proxy (<major>.<minor>.<build>) | |
| servidor→proxy: | |||
| resposta | string | as informações de sucesso da solicitação ('sucesso' ou 'falha') | |
proxy→servidor:
servidor→proxy:
A solicitação proxy config é enviada pelo proxy para obter o proxy dados de configuração. Este pedido é enviado a cada ConfigFrequency (proxy parâmetro de configuração) segundos.
| nome | tipo de valor | descrição | |||
|---|---|---|---|---|---|
| proxy→servidor: | |||||
| request | string | 'proxy config' | |||
| host | string | nome do proxy | |||
| versão | string | a versão do proxy (<major>.<minor>.<build>) | |||
| servidor→proxy: | |||||
| request | string | 'proxy config' | |||
| <tabela> | objeto | um ou mais objetos com <tabela> dados | |||
| campos | array | array de nomes de campo | |||
| - | string | nome do campo | |||
| dados | array | array de linhas | |||
| - | array | array de colunas | |||
| - | string,number | valor da coluna com tipo dependendo do tipo de coluna no esquema do banco de dados | |||
| proxy→servidor: | |||||
| resposta | string | as informações de sucesso da solicitação ('sucesso' ou 'falha') | |||
Exemplo:
proxy→servidor:
servidor→proxy:
{ "macro global":{ "Campos":[ "globalmacróide", "macro", "valor" ], "dados":[ [ 2, "{$SNMP_COMMUNITY}", "público" ] ] }, "hosts":{ "Campos":[ "host", "hospedeiro", "status", "ipmi_authtype", "ipmi_privilege", "ipmi_username", "ipmi_senha", "nome", "tls_connect", "tls_aceitar", "tls_issuer", "tls_assunto", "tls_psk_identity", "tls_psk" ], "dados":[ [ 10001, "Linux", 3, -1, 2, "", "", "Linux", 1, 1, "", "", "", "" ], [ 10050, "Agente Zabbix", 3, -1, 2, "", "", "Agente Zabbix", 1, 1, "", "", "", "" ], [ 10105, "Registrador", 0, -1, 2, "", "", "Registrador", 1, 1, "", "", "", "" ] ] }, "interface":{ "Campos":[ "interfaceid", "host", "a Principal", "tipo", "usei", "ip", "dns", "porta", "volume" ], "dados":[ [ 2, 10105, 1, 1, 1, "127.0.0.1", "", "10050", 1 ] ] }, ... }proxy→servidor:
A solicitação proxy data é enviada pelo proxy para fornecer a interface do host dados de disponibilidade, histórico, descoberta e registro automático. Esse pedido é enviado a cada DataSenderFrequency (parâmetro de configuração de proxy) segundos.
| nome | tipo de valor | descrição | |
|---|---|---|---|
| proxy→servidor: | |||
| solicitação | string | 'dados de proxy' | |
| host | string | o nome do proxy | |
| sessão | string | token de sessão de dados | |
| disponibilidade de interface | array | (opcional) array de objetos de dados de disponibilidade de interface | |
| interfaceid | número | identificador de interface | |
| disponível | número | Disponibilidade da interface 0, INTERFACE_AVAILABLE_UNKNOWN - desconhecido 1, *INTERFACE_AVAILABLE _TRUE* - disponível 2, INTERFACE_AVAILABLE_FALSE - indisponível | |
| error | string | Mensagem de erro de interface ou string vazia | |
| dados históricos | array | (opcional) array de objetos de dados históricos | |
| itemid | número | identificador do item | |
| relógio | número | valor do item timestamp (segundos) | |
| ns | número | valor do item timestamp (nanossegundos) | |
| valor | string | (opcional) valor do item | |
| id | number | identificador de valor (contador crescente, único dentro de uma sessão de dados) | |
| timestamp | number | (opcional) timestamp de itens do tipo de log | |
| fonte | string | (opcional) valor da fonte do item do log de eventos | |
| severidade | número | (opcional) valor de gravidade do item do log de eventos | |
| eventid | number | (opcional) eventlog item eventid value | |
| state | string | (opcional) estado do item 0, ITEM_STATE_NORMAL 1, *ITEM_STATE _NÃO SUPORTADO* | |
| lastlogsize | number | (opcional) último tamanho de log dos itens do tipo de log | |
| mtime | number | (opcional) modificar a hora dos itens do tipo de log | |
| dados de descoberta | array | (opcional) array de objetos de dados de descoberta | |
| relógio | número | o carimbo de data/hora dos dados de descoberta | |
| druleid | number | o identificador da regra de descoberta | |
| dcheckid | number | o identificador de verificação de descoberta ou nulo para dados da regra de descoberta | |
| tipo | número | tipo de verificação de descoberta: -1 dados da regra de descoberta 0, SVC_SSH - serviço SSH check 1, SVC_LDAP - verificação do serviço LDAP 2, SVC_SMTP - verificação do serviço SMTP 3, SVC_FTP - Verificação do serviço FTP 4, SVC_HTTP - Verificação do serviço HTTP 5, SVC_POP - Verificação do serviço POP 6, SVC_NNTP - Verificação do serviço NNTP 7, SVC_IMAP - Verificação do serviço IMAP 8, SVC_TCP - Verificação da disponibilidade da porta 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 - verificação de serviço HTTPS< br>15**, SVC_TELNET - Verificação de disponibilidade do Telnet | |
| ip | string | o endereço IP do host | |
| dns | string | o nome DNS do host | |
| porta | número | (opcional) número da porta de serviço | |
| key_ | string | (opcional) a chave do item para verificação de descoberta do tipo 9 SVC_AGENT | |
| valor | 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 - Service UP **1* , DOBJECT_STATUS_DOWN* - Serviço DOWN | |
| registro automático | array | (opcional) array de objetos de dados de registro automático | |
| relógio | número | o carimbo de data/hora dos dados de registro automático | |
| host | string | o nome do host | |
| ip | string | (opcional) o endereço IP do host | |
| dns | string | (opcional) o nome DNS resolvido do endereço IP | |
| port | string | (opcional) a porta do host | |
| host_metadata | string | (opcional) os metadados do host enviados pelo agente (com base no parâmetro de configuração do agente HostMetadata ou HostMetadataItem) | |
| tarefas | array | (opcional) array de tarefas | |
| type | number | o tipo de tarefa: 0, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND_RESULT - remote command result | |
| status | number | o status de execução do comando remoto: 0, ZBX_TM_REMOTE_COMMAND_COMPLETED - o comando remoto foi concluído com sucesso<br >1, ZBX_TM_REMOTE_COMMAND_FAILED - o comando remoto falhou | |
| error | string | (opcional) a mensagem de erro | |
| parent_taskid | number | o ID da tarefa pai | |
| mais | número | (opcional) 1 - há mais dados do histórico para enviar | |
| relógio | número | (opcional) data de transferência de dados (segundos) | |
| ns | number | (opcional) data de transferência de dados (nanossegundos) | |
| versão | string | a versão do proxy (<major>.<minor>.<build>) | |
| servidor→proxy: | |||
| resposta | string | as informações de sucesso da solicitação ('sucesso' ou 'falha') | |
| tarefas | array | (opcional) array de tarefas | |
| tipo | número | tipo de tarefa: 1, ZBX_TM_TASK_PROCESS_REMOTE_COMMAND - comando remoto | |
| relógio | número | hora de criação da tarefa | |
| ttl | number | o tempo em segundos após o qual a tarefa expira | |
| tipo de comando | número | o comando remoto type: 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 - usa script global (atualmente funcionalmente equivalente ao script personalizado) | |
| comando | string | o comando remoto a ser executado | |
| execute_on | number | o destino de execução para scripts personalizados: 0, ZBX_SCRIPT_EXECUTE_ON_AGENT - executa script no agente 1, ZBX_SCRIPT_EXECUTE_ON_SERVER - executa script no servidor 2, ZBX_SCRIPT_EXECUTE_ON_PROXY - executa script no proxy | |
| port | number | (opcional) a porta para comandos telnet e ssh | |
| authtype | number | (opcional) o tipo de autenticação para comandos ssh | |
| username | string | (opcional) o nome de usuário para comandos telnet e ssh | |
| senha | string | (opcional) a senha para comandos telnet e ssh | |
| chave pública | string | (opcional) a chave pública para comandos ssh | |
| privatekey | string | (opcional) a chave privada para comandos ssh | |
| parent_taskid | number | o ID da tarefa pai | |
| hostid | number | hostid de destino | |
Exemplo:
proxy→servidor:
{ "request": "proxy data", "host": "Proxy #12", "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": 2, "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": 2, "clock":1478608381, "ttl": 600, "commandtype": 1, "command": "restart_service2.sh", "execute_on": 0, "authtype": 0, "username": "", "password": "", "publickey": "", "privatekey": "", "parent_taskid": 20, "hostid": 10084 } ], "tasks":[ { "type": 0, "status": 0, "parent_taskid": 10 }, { "type": 0, "status": 1, "error": "No permissions to execute task.", "parent_taskid": 20 } ], "version":"5.4.0" }servidor→proxy:
{ "response": "success", "upload": "enabled", "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 } ] }