Skip to main content

GERAL

Conforme explicado em ACCINFRA-A-9, existe um serviço (logger_centralizer) que roda no servidor diacetyl que faz a centralização de logs de erros de todos os servidores.

Todos os servidores possuem um agent (iongrade_log_aggregator.service) que, ao detectar alteração de arquivos de log enviam via MQTT para o diacetyl os logs que foram criados.

Esses logs são salvos no path /root/docker/logger_centralizer/logs/logs.json. Esse arquivo pode ser consultado pra ver "todos os logs que foram gerados em todos os servidores".

Quando um novo log é recebido pelo logger_centralizer:

  • o log é salvo no arquivo logs.json;
  • é disparada uma mensagem através de um bot Telegram para o grupo LOG Notifications. Devs Accelero devem "assinar" esse grupo.

É essencial acompanhar esse bot e, de vez em quando, analisar o arquivo logs.json pra avaliar estatísticas.

BOT TELEGRAM - EXCEÇÕES

Alguns logs de erro são conhecidos e "não dá pra fazer nada a respeito".

Por exemplo, em algumas versões antigas do Accelero é gerado um log de erro quando há timeout na API Livo. Esse problema já foi corrigido em versões mais recentes, mas certos clientes podem "não querer atualizar", e esse log fica aparecendo no bot diversas vezes.

Esses "falsos positivos" incomodam e geram ruído, mas podem ser ignorados.

Pra ignorar certos padrões de logs, é possível listar regexp no arquivo /root/docker/logger_centralizer/regex_ignore do diacetyl.

Por exemplo:

#IGNORA TODOS OS LOGS QUE TENHAM O TEXTO 'cliente01.accelerobr.com.br'
(.*)cliente01\.accelerobr\.com\.br(.*)

#IGNORA TODOS OS LOGS QUE TENHAM O TEXTO 'connection was lost'
(.*)connection was lost(.*)

#IGNORA TODOS OS LOGS QUE TENHAM O TEXTO 'dictionary.log', DEPOIS 'area.areContactID' E DEPOIS '2.16.0'
(.*)dictionary\.log(.*)area\.areContactID(.*)2\.16\.0(.*)

Muito cuidado ao fazer isso! Só ignore padrões que realmente "não dá pra fazer nada", e mesmo assim pense duas vezes: às vezes é melhor ficar batendo log de erro no Telegram pra nos deixar bastante incomodados, o suficiente pra forçar uma atualização no cliente.

Pra aprender mais sobre RegExp: https://regexlearn.com/