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 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": "dados proxy",
"host": "Proxy nº 12",
"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 2,
"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 2,
"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
}
],
"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:
{
"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
}]
}