
o principal requisito que tenho é poder visualizar e fazer pesquisas simples em logs combinados de várias máquinas. No entanto, gostaria que a solução tivesse um impacto mínimo no restante do sistema (principal). Não tenho nenhum requisito de tempo real, o processo pode ser assíncrono.
Inicialmente o syslog parecia uma boa opção, mas e se o servidor syslog morrer? Na pior das hipóteses, o usuário do sistema principal vê erros; na melhor das hipóteses, alguns logs são perdidos.
Então comecei a procurar e encontrei o Logstash (http://logstash.net/). Atualmente minha ideia é:
- em cada servidor (que executa os componentes principais do sistema), há um agente Logstash em execução
- o agente monitora arquivos de log e os envia para um cluster ElasticSearch
- há outro servidor com a UI do Logstash
Dessa maneira:
- não há um único ponto de falha
- mesmo que o cluster ES morra, apenas os agentes serão afetados - o aplicativo ainda gravará logs em arquivos
- depois que o ES voltar, o agente irá (espero) recuperar o atraso e enviar todos os logs pendentes (o Logstash é inteligente o suficiente para fazer isso?)
Você acha que isso funcionará? Ou talvez você possa recomendar outra solução?
Responder1
Rsyslogtem algumas das funcionalidades que você está descrevendo e o projeto também temmuita documentação sobre encaminhamento confiável de mensagens.
Resumindo, com o rsyslog você pode usar oRELPprotocolo para encaminhamento confiável de mensagens syslog e então você não precisa se preocupar com perda de mensagens. E você também tem a opção de configurar arquivos de spool locais, onde o rsyslog armazenará mensagens em buffer caso o servidor remoto esteja inativo. Assim que o controle remoto voltar a funcionar, seu agente o alcançará.
Você também tem a opção de configurar o rsyslog para gravar em um banco de dados relacional e, em seguida, tornar o banco de dados tão redundante quanto desejar (eu pessoalmente acho um servidor syslog mais fácil de agrupar).
Responder2
Esta questão provavelmente será encerrada como fora do tópico, consulte o FAQ.
Independentemente disso, o syslog (ou qualquer sistema baseado em syslog) deve funcionar bem, afinal, se você estiver preocupado com a perda de logs, certifique-se de fazer backup do servidor syslog como parte do seu cenário normal de DR. É uma tarefa/solicitação bastante simples.