Commit f60c2f3cc6a0cd0f88d862cf909b4643248a09e7

Authored by Eric Menezes Noronha
1 parent 8b5f2e72
Exists in master

Update Funcionamento agente.md

Showing 1 changed file with 24 additions and 18 deletions   Show diff stats
docs/Funcionamento agente.md
... ... @@ -4,34 +4,40 @@
4 4  
5 5 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.
6 6  
7   - Então, esse agente basicamente virá para melhorar, obviamente. A princípio pensei em algo bem parecido na teoria:
  7 + 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.
8 8  
9   -#**O início de tudo, Instalador:**
10   - 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.
11   -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:
12   - * 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;
13   - * O instalador realiza o getTest;
14   - * 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);
15   - * Cria o serviço no windows e o inicia.
16 9  
17 10 #**Cacic Service**
18 11 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.
  12 + Como funcionará:
  13 + * Durante a instalação do agente, será realizada a instalação do serviço;
  14 + * 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;
  15 + * O módulo a cada X horas chamará o módulo principal, sendo X o tempo estabelecido pelo gerente.
19 16  
20 17 #**O módulo principal.**
21   - * 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;
22   - * Faz a verificação das bibliotecas;
  18 + * O módulo principal será chamado pelo serviço do cacic;
  19 + * Solicitará informações de configurações do gerente (getConfig);
  20 + * Faz a verificação das bibliotecas e dos módulos e, se necessário, realiza o download via ftp;
23 21 * Inicializa o módulo de coleta (gercols);
24   - * 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);
  22 + * É finalizado;
25 23  
26 24 ##*A coleta*
27   - 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).
28   - Então, resumidamente, nessa "rotina diária" seria realizado:
  25 + 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).
  26 + Então, resumidamente, nessa rotina seria realizado:
29 27  
30   - * O procedimento de checagem das bibliotecas e etc, pra caso alguma esteja faltando ser realizado o download de novo;
31   - * O getConfig;
32   - * A chamada do módulo de coletas;
33   - * As coletas;
34   - * 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);
  28 + * O getConfig (solicitação das informações de configurações);
  29 + * A coleta de hardware por WMI, caso não seja possível é realizada a tentativa pelo regedit;
  30 + * A coleta de software pelo regedit;
  31 + * O envio das coletas é realizado separadamente, um envio pra software, um pra hardware, etc.;
  32 + * Se não houver coletas anteriores ou a coleta atual for diferente da anterior, o envio das coletas para o gerente;
35 33  
36 34 ##*Força Coleta*
37 35 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.
  36 +
  37 +#**O início de tudo, Instalador:**
  38 + 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.
  39 +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:
  40 + * 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;
  41 + * O instalador realiza o getTest;
  42 + * 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);
  43 + * Cria o serviço no windows e o inicia.
... ...