Este artigo fornece informações básicas sobre como o canal de dados do ePO (DC) funciona. Ele também fornece etapas de solução de problemas úteis que você pode tomar para diagnosticar problemas com o canal de dados.
Visão geral de alto nível de um fluxo de trabalho de canal de dados:
- O servidor de aplicativos do ePO (Tomcat) grava a solicitação EPOAgentHandlerDataChannelWQ (DC WQ) de DC na tabela do banco de dados do ePO.
- Os manipuladores Agent sondam regularmente a tabela WQ do DC, procurando o trabalho a ser feito.
- Os manipuladores Agent pegam todas as solicitações de DC pendentes no DC WQ e trabalham nelas. A solicitação de saída inicial é essencialmente uma chamada de ativação para o McAfee Agent no cliente instruindo-o a comunicar-se novamente com o ePO, pois o trabalho do DC está disponível.
- O Manipulador de agentes se comunica com o Tomcat e atualiza o status da solicitação de DC de saída, seja ele um êxito ou uma falha.
- O agente se comunica com o ePO:
- Durante seu intervalo normal de comunicação entre o agente e o servidor (ASCI)
Quanto
- Quando contatado pela Manipulador de agentes na etapa 3 acima, e descobre que o DC está aguardando a entrada na fila de trabalho do DC. O agente seleciona esse trabalho e conclui a solicitação.
- Uma tarefa de manutenção de banco de dados interna é executada a cada minuto. A tarefa procura solicitações de DC no banco de dados que tenham sido concluídas ou que tenham expirado. Em seguida, ele continua a removê-los do DC WQ.
Consultas do SQL:
Use as consultas a seguir para obter informações sobre solicitações de canal de dados:
- Para exibir o que Manipulador de agentes está processando uma solicitação de canal de dados para um cliente específico, use a seguinte consulta SQL:
Select
ELN.NodeName as ClientName,
ELN.AgentGUID,
AH.ComputerName as HandlerName,
AH.LastKnownTCPIP as HandlerIP,
DCWQ.Source as DCRequest,
DCWQAttempts.LastDeliveryAttempt as DCLastAttemptTime,
DCWQ.RetryDelay as RetryDelaySeconds,
DCWQAttempts.RetriesRemaining,
DCWQ.ExpireTime as DCExpireTime
From
EPOLeafNode as ELN, EPOAgentHandlerDataChannelWQMT as DCWQ,
EPOAgentHandlerDataChannelWQAttemptsMT as DCWQAttempts, EPORegisteredApacheServers as AH
Where
DCWQ.AutoID = DCWQAttempts.ParentID
And DCWQ.Target = ELN.AutoID
And DCWQAttempts.AgentHandlerId = AH.AutoID
And ELN.NodeName = '<system name>'
Onde
está o sistema que você está consultando. Por exemplo, para consultar um sistema chamado teste, você teria que atualização a última linha da consulta para:
ELN.NodeName = 'TEST'
- Para exibir uma contagem de todos os tipos de solicitação de canal de dados na fila, use a seguinte consulta SQL:
Select Source as DCRequest, count (*) as 'Number of Occurrences'
From EPOAgentHandlerDataChannelWQ
Group By Source Order by Source asc
Entradas de arquivo de registro:
O canal de dados usa o protocolo Secure pipe (SPIPE) para gerar solicitações. Ele tem quatro tipos de solicitação de SPIPE principais, que podem ser consultados nos arquivos de registro abaixo:
- Tipo de solicitação: MsgUpload
Propósito: a solicitação é usada para enviar itens de DC do nó do cliente para o Manipulador de agentes.
Exemplo (registro do servidor em um Manipulador de agentes):
NAIMSERV Received [MsgUpload] from <system name="">:{<GUID>}
- Tipo de solicitação: MsgAvailable
Finalidade: o agente recebeu a solicitação do ePO quando há itens que o ePO tem que entregar ao agente.
Exemplo (registro do agente em um cliente):
- Agent tipo de pacote é MsgAvailable
- LstnSvr StartResponse-POST-PKG - MsgAvailable
- Tipo de solicitação: MsgRequest
Propósito: essa solicitação é enviada para o Manipulador de agentes pelo agente depois de receber uma MsgAvailable solicitação de um manipulador de agentes. Esta solicitação dispara o Manipulador de agentes para o qual se deve responder MsgResponse .
Exemplo #1 (registro do agente em um cliente):
Agent tipo de pacote é MsgRequest
Exemplo #2 (registro do servidor em um Manipulador de agentes):
Received [MsgRequest] from <system name="">:{<GUID>}
- Tipo de solicitação: MsgResponse
Propósito: o ePO envia essa solicitação em resposta ao MsgRequest pacote SPIPE.
Exemplo (registro do agente em um cliente):
- Agent CMsgResponsePackage::ParsePackage() - New MsgResponse-EEADMIN_1000_UserUpdatesAndAcknowledgementRsp was received
- Agent Package type is MsgResponse
- Agent CMsgResponsePackage::ParsePackage() - New MsgResponse-EEADMIN_1000_AddDomainUsersRsp was received
Exemplos de condição de erro em comum:
Esta seção fornece soluções para problemas comuns de canal de dados que podem ocorrer.
- Exemplo 1-as solicitações de canal de dados, como uma chamada de ativação do agente, são bem-sucedidas, mas o log de tarefas do servidor no console do ePO sempre relata que expiraram.
O server_<system name>.log arquivo no manipulador de agentes pode conter os seguintes erros:
- MCUPLOAD SecureHttp.cpp(968): Failed to send HTTP request. Error=12029 (12029)
- NAIMSERV server.cpp(587): Failed to send request, err=0x80004005, HTTP status code=0
Causa:
Apache não pode se comunicar com o serviço do servidor de aplicativos (Tomcat) em execução no servidor ePO. Como não é possível se comunicar, o status da tarefa nunca é definido como êxito ou falha. Eventualmente, uma tarefa de manutenção é executada e identifica que a tarefa ultrapassou seu tempo expirado e expira a tarefa.
Possíveis soluções:
- Examine a server.ini arquivo ( <ePO installation directory>\DB\server.ini ). Ele informa o endereço IP e o nome DNS que o Manipulador de agentes está usando para o Tomcat. Confirme se estão corretas.
- Verifique se DNS resolve o endereço IP correto para o servidor ePO no Manipulador de agentes.
- Verifique se uma rota entre o Manipulador de agentes e o servidor ePO existe na porta 8444 (porta padrão).
- Exemplo 2-o log de tarefas do servidor tem tarefas relacionadas ao canal de dados que não estão sobrepresos "em andamento" longo depois que o tempo de expiração é atingido. A EPODataChannelData tabela está crescendo grande.
Causa:
Uma tarefa de manutenção interna deve ser executada a cada minuto para procurar objetos de canal de dados expirados e removê-los. No entanto, a tarefa não está sendo executada.
Possíveis soluções:
Essa entrada no orion.log mostra se a tarefa interna que limpa as tabelas de canais de dados ( dbcleanup tarefa) está em execução:
INFO [scheduler-TaskQueueEngine-thread-4] Internal.DbCleanupTask - Running DataChannel DbCleanupTask
Esta consulta fornece a próxima hora da dbcleanup tarefa em fila:
Select RunTime from OrionTaskQueueMT where TaskDescription like '%dbclean%'
Execute as seguintes ações, dependendo status da dbcleanup tarefa: