Introduction
O Event Streamer (eStreamer) permite que você faça o stream de vários tipos de dados de eventos de um sistema FireSIGHT para um aplicativo cliente desenvolvido personalmente. Depois de criar um aplicativo cliente, você pode conectá-lo a um servidor eStreamer (por exemplo, um FireSIGHT Management Center), iniciar o serviço eStreamer e começar a trocar dados. A integração com o eStreamer requer programação personalizada, mas permite que você solicite dados específicos de um dispositivo. Este documento descreve como um cliente eStreamer se comunica e como solucionar um problema com um cliente.
Método de comunicação entre cliente e servidor do eStreamer
Há quatro estágios principais de comunicação que ocorrem entre um cliente e o serviço eStreamer:
Passo 1: O cliente estabelece uma conexão com o servidor eStreamer
Primeiro, um cliente estabelece uma conexão com o servidor eStreamer e a conexão é autenticada por ambas as partes. Para que um cliente possa solicitar dados do eStreamer, ele deve iniciar uma conexão TCP habilitada para SSL com o serviço eStreamer. Quando o cliente inicia a conexão, o servidor eStreamer responde, iniciando um handshake SSL com o cliente. Como parte do handshake SSL, o servidor eStreamer solicita o certificado de autenticação do cliente e verifica se o certificado é válido.
Depois que a sessão SSL é estabelecida, o servidor eStreamer executa uma verificação de pós-conexão adicional do certificado. Após a conclusão da verificação pós-conexão, o servidor eStreamer aguarda uma solicitação de dados do cliente.
Passo 2: O cliente solicita dados do serviço eStreamer
Nesta etapa, o cliente solicita dados do serviço eStreamer e especifica os tipos de dados a serem transmitidos. Uma única mensagem de solicitação de evento pode especificar qualquer combinação de dados de eventos disponíveis, incluindo metadados de eventos. Uma única solicitação de perfil de host pode especificar um único host ou vários hosts. Dois modos de solicitação estão disponíveis para solicitação de dados de evento e:
- Solicitação de fluxo de eventos: O cliente envia uma mensagem contendo sinalizadores de solicitação que especificam os tipos de eventos solicitados e a versão de cada tipo, e o servidor eStreamer responde transmitindo os dados solicitados.
- Solicitação estendida: O cliente envia uma solicitação com o mesmo formato de mensagem das solicitações do Fluxo de Eventos, mas define um sinalizador para uma solicitação estendida. Isso inicia uma interação de mensagem entre o cliente e o servidor eStreamer através da qual o cliente solicita informações adicionais e combinações de versão não disponíveis através de solicitações do Event Stream.
Passo 3: O eStreamer estabelece o fluxo de dados solicitado
Nesta etapa, o eStreamer estabelece o fluxo de dados solicitado ao cliente. Durante os períodos de inatividade, o eStreamer envia mensagens nulas periódicas ao cliente para manter a conexão aberta. Se ele receber uma mensagem de erro do cliente ou de um host intermediário, fechará a conexão.
Passo 4: A conexão é encerrada
O servidor eStreamer também pode fechar uma conexão de cliente pelas seguintes razões:
- Sempre que enviar uma mensagem, haverá um erro. Isso inclui mensagens de dados de eventos e a mensagem de manutenção de atividade nula que o eStreamer envia durante períodos de inatividade.
- Ocorre um erro ao processar uma solicitação de cliente.
- Falha na autenticação do cliente (nenhuma mensagem de erro é enviada).
- O serviço eStreamer está sendo desligado (nenhuma mensagem de erro é enviada).
O cliente não mostra nenhum evento
Se você não vir nenhum evento em seu aplicativo cliente eStreamer, siga as etapas abaixo para solucionar esse problema:
Passo 1: Verificar a configuração
Você pode controlar quais tipos de eventos o servidor eStreamer pode transmitir para aplicativos clientes que os solicitam. Para configurar os tipos de eventos transmitidos pelo eStreamer, siga as etapas abaixo:
1. Navegue até Sistema > Local > Registro.
2. Clique na guia eStreamer.
3. No menu eStreamer Event Configuration, marque as caixas de seleção ao lado dos tipos de eventos que você deseja que o eStreamer envie aos clientes solicitantes.

Note: Certifique-se de que o aplicativo cliente solicita os tipos de eventos que você deseja que ele receba. A mensagem de solicitação deve ser enviada ao servidor eStreamer (FireSIGHT Management Center ou dispositivo gerenciado).
4. Click Save.
Passo 2: Verificar o certificado
Verifique se os certificados obrigatórios foram adicionados. Para que o eStreamer possa enviar eventos do eStreamer para um cliente, o cliente deve ser adicionado ao banco de dados de correspondentes do servidor eStreamer usando a página de configuração do eStreamer. O certificado de autenticação gerado pelo servidor eStreamer também deve ser copiado para o cliente.
Passo 3: Verifique as mensagens de erro
Identifique quaisquer erros óbvios relacionados ao eStreamer em /var/log/messages usando o seguinte comando:
admin@FireSIGHT:~$ grep -i estreamer /var/log/messages | grep -i error
Passo 4: Verificar a conexão
Verifique se o servidor está aceitando conexões de entrada.
admin@FireSIGHT:~$ netstat -an | grep 8302
A saída deve ser como abaixo. Caso contrário, o serviço pode não estar em execução.
tcp 0 0 <local_ip>:8302 0.0.0.0:* LISTEN
Passo 5: Verificar o status do processo
Para verificar se há um processo sfestreamer em execução, use o seguinte comando:
admin@FireSIGHT:~$ pstree -a | grep -i sfestreamer
O cliente mostra eventos duplicados
Lidar com eventos duplicados exibidos em um cliente
O servidor eStreamer não mantém um histórico dos eventos enviados, portanto, o aplicativo cliente deve verificar se há eventos duplicados. Eventos duplicados podem ocorrer por vários motivos. Por exemplo, ao iniciar uma nova sessão de streaming, o tempo especificado pelo cliente como ponto de partida para a nova sessão pode ter várias mensagens, algumas das quais podem ter sido enviadas na sessão anterior e outras não. O eStreamer envia todas as mensagens que atendem aos critérios de solicitação especificados. Os aplicativos cliente EStreamer devem ser projetados para detectar e eliminar duplicatas resultantes.
Gerenciar solicitações duplicadas de dados
Se você solicitar várias versões dos mesmos dados, por vários flags ou várias solicitações estendidas, será usada a versão mais alta. Por exemplo, se o eStreamer receber solicitações de sinalizador para eventos de descoberta das versões 1 e 6 e uma solicitação estendida para a versão 3, ele enviará a versão 6.
O cliente mostra o SID (ID de regra de rastreamento) incorreto
Isso geralmente acontece devido a um conflito de SID quando uma regra é importada para o sistema, o SID é mapeado novamente internamente.
Para usar o SID inserido, em vez do SID remapeado, é necessário habilitar o cabeçalho estendido. O bit 23 solicita cabeçalhos de eventos estendidos. Se este campo estiver definido como 0, os eventos serão enviados com um cabeçalho de evento padrão que inclui apenas o tipo de registro e o comprimento do registro.

Figura: O diagrama ilustra o formato de mensagem usado para solicitar dados do eStreamer. Os campos específicos ao formato de mensagem de solicitação estão destacados em cinza.

Figura: O diagrama ilustra o formato das informações de mensagem de regra para um evento que é transmitido em um registro de Mensagem de regra. Ele mostra o RuleID (que você está usando agora) e o ID de assinatura renderizada (que é o número esperado).
Tip: Para encontrar a descrição detalhada de cada bit e mensagem, leia o eStreamer Integration Guide.
Coletar e analisar dados adicionais de solução de problemas
Teste usando o script ssl_test.pl
Utilize o script ssl_test.pl fornecido no Event Streamer Software Development Kit (SDK) para identificar o problema. O SDK está disponível em um arquivo zip no site de suporte. As instruções para o script estão disponíveis no README.txt, que está incluído nesse arquivo zip.
Capture Packet (PCAP)
Capture pacotes na interface de gerenciamento do servidor eStreamer e analise-o. Verifique se o tráfego não está bloqueado ou negado em algum lugar da rede.
Gerar arquivo de solução de problemas
Se você concluiu as etapas de solução de problemas acima e ainda não puder determinar o problema, gere um arquivo de solução de problemas do FireSIGHT Management Center. Forneça todos os dados adicionais de solução de problemas ao Suporte Técnico da Cisco para análise posterior.