В Elasticsearch есть шарды без копии, часть данных недоступна
Статус red в Elasticsearch под Directum RX: часть основных шардов не размещена, поиск отвечает неполно или ошибками. Как узнать причину через allocation explain и что делать.
Что это значит
Статус кластера red означает, что хотя бы один основной шард не размещён ни на одном узле. Данные этого шарда сейчас недоступны: поиск в Directum RX возвращает неполные результаты или ошибку «all shards failed», индексация в этот индекс падает. Статус yellow мягче: основные шарды на месте, не хватает реплик.
Частые причины: узел с шардом выпал, диск переполнен и Elasticsearch не может разместить шард, шард повреждён.
Как проверить
- Какие индексы красные:
GET _cat/indices?v&health=red
GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason
- Почему шард не размещается:
GET _cluster/allocation/explain
Ответ прямо называет причину: нет узла, порог диска, ограничения размещения.
3. Все ли узлы в кластере: GET _cat/nodes?v
Что сделать
- Узел выпал: вернуть его, шарды поднимутся сами.
- Порог диска: освободить место или добавить диск, затем
POST _cluster/reroute?retry_failed=true. - Шард повреждён и копии нет: индекс придётся пересоздать и переиндексировать. Для индексов RX это штатная операция, документы в системе не теряются.
- Держать у индексов хотя бы одну реплику, если узлов больше одного.
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать