Commit f60c2f3cc6a0cd0f88d862cf909b4643248a09e7
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. | ... | ... |