1. Verificações Passivas
1.1. Uma verificação passiva é uma requisição simples de dados. O Zabbix Server/Proxy solicita algum dado (por exemplo a carga de CPU) e o Zabbix Agent retorna com o resultado.
1.2. Resposta do agente
1.2.1. <HEADER><DATALEN><DATA>[\0<ERROR>]
1.3. Requisição do servidor
1.3.1. <item key>\n
1.4. Exemplo de fluxo com item suportado:
1.4.1. 1.Servidor abre uma conexão TCP 2.Servidor envia agent.ping\n 3.Agente lê a requisição e responde com <HEADER><DATALEN>1 4.Servidor processa o dado para receber o valor ('1' neste exemplo) 5.Conexão TCP é fechada
1.5. Exemplo de fluxo para item não suportado:
1.5.1. 1.Servidor abre uma conexão TCP 2.Servidor envia vfs.fs.size[/nono]\n 3.Agente lê a requisição e responde com <HEADER><DATALEN>ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory 4.Servidor processa o dado, modifica o estado do item para 'não suportado' com a mensagem de erro retornada 5.Conexão TCP é fechada
2. Verificações Ativas
2.1. As verificações ativas requerem um processamento mais complexo. Primeiramente o agente deve obter do servidor a lista com os itens a serem processados de forma independente.
2.2. Os servidores que irão fornecer a lista de verificações ativas deverão estar listados no parâmetro 'ServerActive' do arquivo de configuração do agente. A frequência de consulta à estas verificações é definida pelo parâmetro 'RefreshActiveChecks' neste mesmo arquivo. Caso uma requisição da lista de itens ativos falhe, uma nova tentativa será feita a cada 60 segundos com aquele servidor.
2.3. O agente envia os dados periodicamente aos servidores.
2.4. Requisição do agente
2.4.1. <HEADER><DATALEN>{ "request":"active checks", "host":"<hostname>" }
2.5. Resposta do servidor
2.5.1. <HEADER><DATALEN>{ "response":"success", "data":[ { "key":"log[/home/zabbix/logs/zabbix_agentd.log]", "delay":30, "lastlogsize":0, "mtime":0 }, { "key":"agent.version", "delay":600, "lastlogsize":0, "mtime":0 }, { "key":"vfs.fs.size[/nono]", "delay":600, "lastlogsize":0, "mtime":0 } ] }
2.6. Exemplo de fluxo:
2.6.1. 1.O agente abre a conexão TCP 2.O agente envia a lista de valores 3.O servidor processa os dados e envia o status de volta 4.A conexão TCP é fechada