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.