Я запускаю несколько автономных серверов Logstash, чтобы можно было просматривать файлы журналов с серверов веб-приложений.
Один из них недавно сообщил о желтом состоянии кластера из-за неназначенных сегментов. Это достаточно частое явление, с которым я обычно справляюсь, удаляя самый последний индекс и перезапуска Elasticsearch.
В данном случае это не сработало. Когда я удаляю индексы (либо через API, либо просто удаляя файлы из файловой системы) и перезапускаю Elasticsearch, состояние кластера изначально становится зеленым, но как только первый индекс создается, он становится желтым с ровно 5 неназначенными шардами. .
Этот сервер несколько недель работал нормально и совсем не загружался. Я также проверил, что в CIDR нет других серверов Elasticsearch (в любом случае, он находится в VPC в Amazon AWS).
Я включил отладку в логах, но для меня это двойная голландка. Нет никаких ссылок на шарды, которые нельзя назначить.
Самый простой способ исправить это - настроить elasticsearch так, чтобы он не использовал реплики:
index.number_of_replicas: 0
Если elasticsearch не пытается распространять сегменты на другие узлы, у него не будет неназначенных сегментов.
Я не уверен, почему конфигурация по умолчанию в elasticsearch должна иметь
index.number_of_replicas: 1
Должны люди, которые впервые с ним обманываются, запустят его на одном сервере, а затем потратят дни, пытаясь выяснить, почему здоровье становится желтым из-за неназначенных осколков.