From f60c2f3cc6a0cd0f88d862cf909b4643248a09e7 Mon Sep 17 00:00:00 2001 From: Eric Menezes Noronha Date: Fri, 6 Jun 2014 13:36:07 -0300 Subject: [PATCH] Update Funcionamento agente.md --- docs/Funcionamento agente.md | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/docs/Funcionamento agente.md b/docs/Funcionamento agente.md index 60aaea1..bbc9969 100644 --- a/docs/Funcionamento agente.md +++ b/docs/Funcionamento agente.md @@ -4,34 +4,40 @@ A principal mudança que vi foi na coleta, pois além do WMI, podemos fazer também pelo registro. Isso reduz a margem de erros durante a coleta. Além disso, a coleta pode ser feita de forma bem mais organizada. - Então, esse agente basicamente virá para melhorar, obviamente. A princípio pensei em algo bem parecido na teoria: + A princípio pensei em algo bem parecido, até porque para maiores modificações o gerente também deve ser modificado, o que não ocorrerá por agora. -#**O início de tudo, Instalador:** - O Instalador para Windows acredito que a melhor maneira seria fazer um MSI. Reduz a chance de conflito com firewall e etc, ficando também mais amigável pro usuário, já que a maioria dos instaladores são parecidos. -Tentei pensar em algo menos trabalhoso, pois quando instalado por meio do netlogon pode complicar pra instalar na rede, como já presenciamos na PGFN, e também atrasar o login do usuário, então pensei nos seguintes procedimentos: - * No windows: Para rodar no netlogon deverá ser passado como parâmetro o servidor para autenticação e o '/silent' pra rodar em segundo plano. Caso não seja netlogon, o usuário irá digitar o servidor em uma das telas de diálogo; - * O instalador realiza o getTest; - * Se positivo, cria a árvore de diretórios e faz download do cacicService, do módulo principal e a biblioteca de comunicação (dll ou so); - * Cria o serviço no windows e o inicia. #**Cacic Service** O cacic service funcionará apenas de sustentação do módulo principal, verificando de tempos em tempos a consistência dos binários e executando o módulo principal. + Como funcionará: + * Durante a instalação do agente, será realizada a instalação do serviço; + * A cada 5 minutos será solicitado ao gerente algumas informações básicas (getTest), caso, dentro dessas informações, o gerente solicitar uma coleta forçada o módulo principal será executado; + * O módulo a cada X horas chamará o módulo principal, sendo X o tempo estabelecido pelo gerente. #**O módulo principal.** - * Após a instalação, o módulo principal seria iniciado, coletando as informações de configuração (getConfig) e baixando as bibliotecas, que seriam as .dll (windows) ou .so(linux), e módulos exigidos pelo gerente; - * Faz a verificação das bibliotecas; + * O módulo principal será chamado pelo serviço do cacic; + * Solicitará informações de configurações do gerente (getConfig); + * Faz a verificação das bibliotecas e dos módulos e, se necessário, realiza o download via ftp; * Inicializa o módulo de coleta (gercols); - * Se for a primeira coleta ou existir diferença entre a coleta atual e a antiga, os dados serão enviados ao gerente a princípio pelo mesmo formato de XML do antigo (mas será modificado em uma nova release para json ou algo parecido); + * É finalizado; ##*A coleta* - A coleta é realizada a cada X horas, onde X é o valor estabelecido pelo gerente. O módulo principal será chamado dentro desse horário, chamando o módulo de coletas que coletará as informações de hardware pelo WMI ou, caso não consiga, pelos registros (regedit) e também de software pelos registros (regedit). - Então, resumidamente, nessa "rotina diária" seria realizado: + A coleta é realizada a cada X horas, onde X é o valor estabelecido pelo gerente. O módulo principal será chamado dentro desse horário, chamando o módulo de coletas que coletará as informações de hardware, pelo WMI ou, caso não consiga, pelos registros (regedit), e também de software pelos registros (regedit). + Então, resumidamente, nessa rotina seria realizado: - * O procedimento de checagem das bibliotecas e etc, pra caso alguma esteja faltando ser realizado o download de novo; - * O getConfig; - * A chamada do módulo de coletas; - * As coletas; - * O envio das informações, se existir diferença entre a coleta atual e a antiga. Os dados serão enviados ao gerente a princípio pelo mesmo formato de XML do antigo (mas será modificado em uma nova release para json ou algo parecido); + * O getConfig (solicitação das informações de configurações); + * A coleta de hardware por WMI, caso não seja possível é realizada a tentativa pelo regedit; + * A coleta de software pelo regedit; + * O envio das coletas é realizado separadamente, um envio pra software, um pra hardware, etc.; + * Se não houver coletas anteriores ou a coleta atual for diferente da anterior, o envio das coletas para o gerente; ##*Força Coleta* Aqui vem minha maior dúvida, estava pensando em algum tipo de sincronia em tempo real. Estou dando uma pesquisada ainda, mas isso demandaria uma atualização também no gerente. Então a princípio ficaria o mesmo, seria realizado por meio de uma solicitação do cacicService de getTest de 5 em 5 minutos. Se houver alguma atualização, é chamado o módulo principal executando o procedimento solicitado pelo gerente, como forçar coleta ou executar o mapa. + +#**O início de tudo, Instalador:** + O Instalador para Windows acredito que a melhor maneira seria fazer um MSI. Reduz a chance de conflito com firewall e etc, ficando também mais amigável pro usuário, já que a maioria dos instaladores são parecidos. +Tentei pensar em algo menos trabalhoso, pois quando instalado por meio do netlogon pode complicar pra instalar na rede, como já presenciamos na PGFN, e também atrasar o login do usuário, então pensei nos seguintes procedimentos: + * No windows: Para rodar no netlogon deverá ser passado como parâmetro o servidor para autenticação e o '/silent' pra rodar em segundo plano. Caso não seja netlogon, o usuário irá digitar o servidor em uma das telas de diálogo; + * O instalador realiza o getTest; + * Se positivo, cria a árvore de diretórios e faz download do cacicService, do módulo principal e a biblioteca de comunicação (dll ou so); + * Cria o serviço no windows e o inicia. -- libgit2 0.21.2