Posso executar o elasticsearch em um único servidor?

2

Eu uso o elasticsearch como parte de uma pilha do Logstash, na qual todos os componentes da pilha são instalados no mesmo servidor.

O objetivo é expor os logs de aplicativos aos desenvolvedores para fins de depuração. Eu não preciso manter os índices criados. Eu tenho um cron job que remove índices com mais de 7 dias.

Os logs brutos são preservados em outro lugar, caso precisemos de análise histórica.

O problema que tenho é que elasticsearch continua entrando em um estado de integridade Vermelho devido a shards não designados. Eu pesquisei várias maneiras de recuperar isso, mas, inevitavelmente, acabo excluindo os arquivos de índice brutos e reiniciando o serviço.

Isso é uma dor real, pois é sempre o momento em que os desenvolvedores precisam acessar o elasticsearch.

Parece-me que não há uma maneira mais fácil de recuperar o elasticsearch além de excluir os índices ofensivos. Eu configurei o elasticsearch para usar um único nó, sem réplicas e sem fazer nenhuma descoberta de rede, mas a cada dois dias ele continua caindo.

Estou perdendo meu tempo tentando executar o elasticsearch em um único servidor? É sempre vai continuar caindo devido a fragmentos não atribuídos? Dado o que eu uso, parece um exagero ter que implantar um cluster.

Observação: estou executando esta pilha no Amazon EC2

    
por Garreth McDaid 06.05.2014 / 13:07

2 respostas

3

Descobri, depois de muito sofrimento, que a melhor maneira de executar o elasticsearch em um único servidor é alterar a configuração padrão de:

index.number_of_replicas: 1

para

index.number_of_replicas: 0

Se houver 0 réplicas, o elasticsearch nunca tentará atribuir shards a qualquer outra "réplica", removendo assim o problema de fragmentos não atribuídos e índices corrompidos.

Minha configuração de elasticsearch standalone, não padrão e completa (

) é:

node.max_local_storage_nodes: 1
index.number_of_replicas: 0

Note que esta é uma configuração apenas para a configuração do leitor de logs, não para uma configuração de produção em escala completa.

    
por 29.08.2014 / 19:42
1

Não sei por que você está obtendo shards não atribuídos, especialmente com o Logstash. Eu uso o curador para gerenciar o elasticsearch. Minha pilha ELK é executada em uma única VM (por enquanto), por isso é muito carente de energia, mas ainda funciona. Eu tive que ajustar o elasticsearch em si para otimizá-lo para a VM. Os principais componentes para mim foram ES_HEAP_SIZE & MAX_OPEN_FILES.

    
por 06.05.2014 / 15:29