Таким образом, ваш кластер Elasticsearch имеет состояние кластера желтого цвета.

Если мы уменьшим масштаб, возможны три состояния здоровья кластера, соответствующие цветам: красный, желтый и зеленый.

Ваше базовое понимание в целом правильное: зеленый — это хорошо, и вам не о чем беспокоиться, желтый означает, что вам, возможно, придется что-то проверить, а красный — это плохо.

В частности, состояние кластера желтого цвета означает, что основной сегмент кластера Elasticsearch выделен узлу, а один или несколько сегментов реплики — нет.

Вы можете проверить работоспособность своего кластера напрямую с помощью Elasticsearch API:

http://localhost:9200/_cluster/health

Кроме того, у вас может быть настроен мониторинг с помощью AWS, Grafana, Datadog или других инструментов, которые позволяют узнать, каково состояние работоспособности кластера.

В любом случае, желтый статус не обязательно означает, что что-то не так, и это может быть нормально. Во многих сценариях Elasticsearch сможет самостоятельно восстановить зеленый статус работоспособности. Также стоит отметить, что пользователи по-прежнему смогут выполнять операции поиска и индексирования.

Ниже приведены несколько сценариев, которые могут привести к желтому статусу работоспособности кластера.

Кто-то перезапустил узел

По сути, если кто-то перезапускает узел, то связанные с ним осколки тем временем находятся в постоянном движении. Эти осколки считаются нераспределенными осколками. В идеальном сценарии сегменты будут выделены, и когда они все это сделают, состояние кластера снова станет зеленым.

Узел не работает

Узел Elasticsearch может выйти из строя по разным причинам, например, из-за нехватки памяти (OOM) или даже из-за проблем с оборудованием. Если узел не работает, сегменты не смогут синхронизироваться, и работоспособность кластера может стать желтой.

Не достаточно места на диске

В Elasticsearch указана следующая настройка низкого водяного знака:

cluster.routing.allocation.disk.watermark.low

Это может быть установлено в процентах, например 85%, что уже является значением по умолчанию (примечание, но его также можно установить на абсолютный уровень байтов, например 700mb).

Если использование диска превышает этот процент, у Elasticsearch могут возникнуть проблемы с выделением сегмента узлу.

В этом случае кластер может стать желтым.

Помимо простого увеличения уровня водяного знака, что не рекомендуется, потому что это просто пластырь (временное исправление) поверх того, что, вероятно, является основной проблемой.

Там, где это имеет смысл, администраторы могут увеличить дисковое пространство, добавить новые узлы или удалить индексы, и это лишь некоторые из решений.

Кластер имеет только один узел

Если в вашем кластере Elasticsearch есть только один узел, это означает, что основной сегмент предположительно выделен этому одному узлу.

Вот что нужно знать: Elasticsearch никогда не назначит реплику узлу, у которого есть первичный шард.

В этом случае у нас есть определение того, что вызывает статус желтого кластера; осколок реплики не может быть выделен.

В этом случае вполне ожидаем статус желтого кластера. Затем вы можете увеличить количество узлов (даже всего на один), чтобы исправить это, например. Узел присоединится к кластеру, Elasticsearch автоматически выделит ему осколки реплик, и статус кластера станет зеленым.

Источники

Если вы нашли эту статью полезной или вам просто понравилось ее читать, подумайте о том, чтобы зарегистрироваться, чтобы стать участником Medium.

Это 5 долларов в месяц и дает вам неограниченный доступ к историям на Medium на такие темы, как программное обеспечение, технологии и многое другое.

Если вы зарегистрируетесь по моей ссылке, я получу небольшую комиссию.