Os sistemas geram logs muito volumosos, de difícil análise e administração, tornando complexa a gestão por parte do cliente.
Para contornar limitações de espaço em disco, normalmente o cliente adota uma destas soluções:
Estas soluções levam à perda de informações importantes no momento de análise de um problema.
Cenário comum:
Precisamos de uma forma mais robusta de armazenar e consultar logs recentes sem comprometer a operação e minimizando impactos ao usuário final.
Definir uma configuração para possibilitar gerenciamento ativo dos logs gerados pelo sistema, que possa ser implantado pelo próprio cliente na sua estrutura e utilizado para agilizar análises, consultorias, atendimentos de suporte e situações relacionadas.
Esta documentação cobre um método para gerenciamento dos logs do Progress 12 PASOE que já utilizamos internamente e recomendamos aos clientes.
A mesma tecnologia pode ser utilizada para qualquer outro tipo de log, como Progress Clientlog, Tomcat, Apache, etc.
Reforçamos que esta não é a única solução que existe, e nem a única forma de fazer. Aqui tivemos a intenção de definir uma solução simples e 100% utilizando software livre. O cliente pode ficar à vontade para experimentar outros tipos de ferramentas.
O setup que propomos utiliza 3 ferramentas que fazem parte do Elastic Stack para coletar, armazenar e consultar os logs:
A única alteração prevista para as máquinas já existentes é garantir que o log do PASOE esteja sendo gerado com alto nível de detalhes, e rotacionado dentro de um tempo adequado para impedir risco de estouro de disco.
Já para o Elastic Stack, recomendamos a criação de uma nova Virtual Machine, para concentrar todas as configurações e isolar todos os processos, evitando qualquer risco de desestabilização dos sistemas já existentes.
&&&
Na máquina onde roda o PASOE, garanta que existe uma rotina (exemplos completos mais abaixo) para executar periodicamente o comando de rotacionamento do log, que pode ser:
Para apenas apagar os logs:
/<instalacao_pasoe>/bin/tcman.(sh|bat) clean
Para rotacionar os logs salvando histórico:
/<instalacao_pasoe>/bin/tcman.(sh|bat) clean -A
Abaixo seguem exemplos dos scripts que utilizamos internamente na Totvs, que podem ser customizados conforme a sua necessidade. O que essa versão faz:
Baixar e salvar o arquivo quebrar_log_pasoe_linux.sh na sua estrutura, por exemplo:
/opt/totvs/scripts/quebrar_log_pasoe_linux.sh
Configurar chamada periódica na cron do Linux conforme sua necessidade. Exemplos:
0 * * * * /opt/totvs/scripts/quebrar_log_pasoe_linux.sh # hora em hora
* * * * * /opt/totvs/scripts/quebrar_log_pasoe_linux.sh # minuto em minuto
0,15,30,45 * * * * /opt/totvs/scripts/quebrar_log_pasoe_linux.sh # a cada 15 minutos
Descrevemos aqui a configuração que estamos utilizando internamente para os ambientes de desenvolvimento. Cenários de produção dos clientes podem demandar de configurações diferentes, especialmente no quesito Disco, dependendo do volume de logs e quantidade de tempo que desejar armazená-los.
Recomendamos criar uma nova Virtual Machine exclusiva para este setup, para isolar os processos e garantir que as demais máquinas utilizadas para o sistema não sejam afetadas.
&&& tratar os passos para criar a senha forte do elasticsearch e também os usuários para kibana_admin e filebeat. validar se precisará editar 2x o elasticsearch.yml (primeiro sem segurança para criar os usuários e depois elevar a segurança em outro passo). &&&
Vamos começar pelo banco de dados, que é a parte mais importante de todo o stack. Inicialmente faremos a instalação padrão conforme a documentação da ferramenta:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo yum install elasticsearch
Após instalado, vamos editar as configurações no arquivo /etc/elasticsearch/elasticsearch.yml:
Utilize este arquivo em anexo como modelo: elasticsearch.yml
Atenção especial para estes campos:
A porta default do Elasticsearch é 9200. Se necessário, altere diretamente no arquivo.
Agora vamos instalar a interface gráfica, pois através dela será mais simples realizar as demais configurações do Elasticsearch.
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo yum install kibana
Após instalado, vamos editar as configurações no arquivo /etc/kibana/kibana.yml:
Utilize este arquivo como modelo: kibana.yml
Atenção especial para estes campos: