Coletando logs de vários servidores de uma maneira tolerante a falhas [closed]

1

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 resto do sistema (principal). Eu não tenho nenhum requisito em tempo real, o processo pode ser assíncrono.

Inicialmente, o syslog parecia ser uma boa opção, mas e se o servidor syslog morrer? No pior dos casos, o usuário do sistema central vê erros, no melhor dos casos, alguns logs são perdidos.

Então comecei a procurar e encontrei o Logstash ( link ). Atualmente minha ideia é:

  • em cada servidor (que está executando os principais componentes do sistema), há um agente do Logstash em execução
  • o agente monitora os arquivos de log e os envia para um cluster do ElasticSearch
  • há outro servidor com a interface do usuário do Logstash

Dessa forma:

  • não há ponto único de falha
  • mesmo se o cluster ES morrer, somente os agentes serão afetados - o aplicativo ainda gravará registros para arquivos
  • depois que o ES voltar, o agente irá (esperançosamente) acompanhar e enviar todos os registros pendentes (o Logstash é inteligente o suficiente para fazer isso?)

Você acha que isso vai funcionar? Ou talvez você possa recomendar outra solução?

    
por adamw 06.11.2012 / 14:13

2 respostas

1

Rsyslog tem algumas das funcionalidades que você está descrevendo e o projeto também tem muita documentação sobre o encaminhamento confiável de mensagens .

Em suma, com o rsyslog você pode usar o protocolo RELP para encaminhamento confiável de mensagens syslog e não precisa se preocupar 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. Quando o controle remoto voltar, seu agente irá recuperar o atraso.

Você também tem a opção de configurar o rsyslog para gravar em um banco de dados relacional e, em seguida, pode tornar o banco de dados tão redundante quanto desejar (eu pessoalmente acho um servidor syslog mais fácil de cluster).

    
por 06.11.2012 / 15:10
0

Esta pergunta provavelmente será encerrada como fora do tópico. Por favor, veja o FAQ.

Independentemente disso, o syslog (ou qualquer sistema baseado em syslog) deve funcionar muito bem, afinal, se você estiver preocupado com a perda de logs, certifique-se de fazer backup do servidor syslog como parte de seu cenário normal de recuperação de desastres. É uma tarefa / solicitação bem simples.

    
por 06.11.2012 / 14:34