7.2 Apresentac¸˜ao dos resultados
7.2.3 Back-end Servidor e bases de dados
Os dois m´odulos que comp˜oem o back-end (DiscoveryZookeeper - secc¸˜ao 6.1 e Dis- cover Server - secc¸˜ao 6.2) foram testados e avaliados com recurso a tempos de processa- mento e armazenamento.
Os valores utilizados para a construc¸˜ao dos diferentes gr´aficos e para o c´alculo de m´edias e outras informac¸˜oes estat´ısticas tiveram origem nos logs produzidos pelo m´odulo DiscoveryServer desenvolvido (disponibilizados na tua totalidade em anexo na secc¸˜ao A.1). Estes valores foram tratados e organizados numa tabela (em anexo na secc¸˜ao A.1.1), que serviram para produzir os gr´aficos apresentados de seguida.
Os logs anteriormente referidos disponibilizam informac¸˜oes relativamente `as mensa- gens recebidas pelo servidor e provenientes da sonda de rede que alimenta estes testes (re- ferida na secc¸˜ao 7.2). S˜ao apresentados tempos totais de processamento e armazenamento para cada uma das mensagens, assim como as quantidades de n´os, relac¸˜oes e propriedades que cada uma das mensagens proporcionou na base de dados. Os logs incluem tamb´em informac¸˜oes referentes `a instˆancia Apache Zookeeper utilizada por este m´odulo atrav´es da biblioteca Log4j.
Este m´odulo quando executado, realiza um conjunto de procedimentos indispen´aveis antes de poder receber qualquer tipo de mensagens (como confirma os logs apresentados em anexo na secc¸˜ao A.1):
1. ´E lido o ficheiro de configurac¸˜ao do m´odulo para definir um conjunto configurac¸˜oes necess´arias descritas na secc¸˜ao 7.2.2;
2. ´E criado uma ligac¸˜ao com a base de dados Neo4j em modo de alta disponibilidade (ligac¸˜ao `a instancia Apache Zookeeper respetiva);
3. ´E criado, caso ainda n˜ao exista, uma estrutura adicional `a base de dados para a organizac¸˜ao de n´os e relac¸˜oes para que o a biblioteca Neo4j.rb (secc¸˜ao 5.6) mapeie os dados diretamente em classes Ruby, tal como explicado na secc¸˜ao 6.2.3;
4. S˜ao realizadas duas consultas, uma `a base de dados Pulso e outra a ficheiros re- ferentes a dados de aplicac¸˜oes SOX por forma a obter informac¸˜oes atualizadas de aplicac¸˜oes, subsistemas e clusters existentes assim como os ativos que os comp˜oem; 5. S˜ao lanc¸adas duas threads para receber dados provenientes das sondas de rede Pulso/Discovery, uma para dados de an´alise passiva e outra para dados de an´alise ativa do tr´afego de rede.
Cap´ıtulo 7. Avaliac¸˜ao 69 A partir deste ponto, o servidor est´a pronto a receber mensagens. Os dados inseridos na base de dados Neo4j deste m´odulo s˜ao automaticamente sincronizados com o repo- sit´orio do m´odulo DiscoveryPortal, estando desde dispon´ıveis de ser consultados.
Durante o tempo em que os testes se efetuaram, os dados que alimentaram o servidor em termos de metadados tiveram origem numa consulta `a base de dados Pulso e outra consulta a ficheiros de metadados sobre aplicac¸˜oes SOX. No caso da informac¸˜ao proveni- ente das sondas, foram recebidas 4 mensagens pelo servidor ativo (uma referente `a an´alise de ativos SOX, outra referente `a classe de enderec¸os 10.101.68.0/24 e a duas referentes a conjuntos de enderec¸os diversos e conhecidos pela aplicac¸˜ao IP Audit) e 232 mensagens recebidas pelo servidor passivo (onde cada uma conta com aproximadamente 500.000 pacotes de rede capturados).
Em termos pr´aticos, os dados recebidos traduziram-se na descoberta de 923 ativos de rede, 413.214 fluxos de comunicac¸˜ao (aproximadamente 116.000.000 pacotes de rede), 19 aplicac¸˜oes, 55 subsistemas e 87 clusters, caracterizados por um total de 4.134.587 propriedades/atributos.
Resultados obtidos
Na figura 7.1 s˜ao apresentadas as quantidades de relac¸˜oes e propriedades Neo4j inse- ridas ao longo do tempo, assim como a respetiva evoluc¸˜ao da quantidade destes elementos na base de dados. Os picos do gr´afico s˜ao referentes `a recec¸˜ao de novas mensagens, umas com mais conte´udo e informac¸˜ao do que outras. Aqui h´a uma certa correspondˆencia nas duas quantidades inseridas, uma vez que refletem novos fluxos de comunicac¸˜ao e as res- petivas propriedades
Na figura 7.2 s˜ao apresentadas as quantidades de n´os Neo4j inseridos ao longo do tempo, assim como a respetiva evoluc¸˜ao da quantidade destes elementos na base de da- dos. ´E de notar uma certa quebra em termos inserc¸˜ao de n´os na base de dados ao longo do tempo uma vˆes que estes refletem, na grande maioria, ativos de rede. Ativos que se tornam conhecidos logo nas primeiras mensagens recebidas com dados provenientes da an´alise ativa e atrav´es dos primeiros fluxos de rede recolhidos por an´alise passiva. Pos- teriormente s˜ao detetados apenas os ativos que realizem algum tipo de comunicac¸˜ao, e que por estarem inativos aquando da an´alise ativa, n˜ao foram descobertos. Outro tipo de informac¸˜ao modelada atrav´es de n´os s˜ao as aplicac¸˜oes, os subsistemas, os clusters, e os servic¸os detetados e que tal como os ativos, tˆem tendˆencia a estabilizar ao longo do tempo embora existam sempre mudanc¸as.
Na figura 7.3 ´e apresentado um gr´afico de dispers˜ao de tempos de processamento e armazenamento de cada uma das mensagens recebidas pelo servidor quando comparado ao n´umero de n´os, relac¸˜oes e propriedades (informac¸˜ao) Neo4j resultantes. ´E de notar que h´a uma certa linearidade nos tempos de processamento e armazenamento dependendo do volume de informac¸˜ao em cada mensagem. As mensagens recebidas pelo servidor ativo
Cap´ıtulo 7. Avaliac¸˜ao 70
Figura 7.1: Gr´aficos referentes a quantidades de relac¸˜oes e propriedades Neo4j inseridas ao longo do tempo, assim como a respetiva evoluc¸˜ao da quantidade destes elementos na base de dados.
geralmente provocam tempos mais altos de processamento, pois traduzem-se numa maior quantidade de informac¸˜ao a ser processada e num maior n´ıvel de estruturac¸˜ao ao n´ıvel do modelo de dados.
Ainda sobre tempos de processamento, note-se que durante o espac¸o temporal (pouco mais de uma hora) utilizado, precisou de 948,578 segundos (aproximadamente 15,8 minu- tos) para processar, tratar e armazenar os dados de acordo com a modelac¸˜ao apresentada (secc¸˜ao 6.2.3), o que ´e bastante bom tendo em considerac¸˜ao as quantidades de dados capturados pela sonda de alto desempenho em termos de fluxos de comunicac˜ao.