Elasticsearch: High Disk Watermark

На кластере Elasticsearch существуют различные пороговые значения " watermark". По мере заполнения диска на узле первым порогом, который будет преодолен, будет " Low disk watermark ". Вторым порогом будет " high disk watermark threshold". Наконец, будет достигнута "стадия переполнения диска". После прохождения этого порога кластер заблокирует запись во ВСЕ индексы, имеющие один шард (основной или реплику) на узле, прошедшем "водяной знак". Чтение (поиск) по-прежнему будет возможно.

Elasticsearch

Как решить эту проблему

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

  • Удалить старые индексы
  • Удалить документы из существующих индексов
  • Уменьшить количество реплик (для старых индексов).
  • "Увеличить дисковое пространство на всех узлах
  • Добавить новые узлы в кластер.

Хотя удаление данных может быть нежелательным, в системе протоколирования часто лучше удалить старые индексы (которые впоследствии можно будет восстановить из моментального снимка, если он будет доступен), чем потерять новые данные. Однако это решение будет зависеть от архитектуры системы и имеющихся механизмов организации очередей.

Проверка дискового пространства на каждом узле

Вы можете посмотреть свободное дисковое пространство на каждом узле, выполнив команду:

Проверьте, выполняется ли ребалансировка кластера

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

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

  • Другие узлы уже находятся выше отметки " low disk watermark".
  • Существуют правила распределения кластера, которые регулируют распределение шардов между узлами и противоречат требованиям ребалансировки. (например, распределение с учетом зон).
  • Уже выполняется слишком много операций ребалансировки
  • Другие узлы уже содержат первичные или реплики шардов, которые могут быть ребалансированы.

Проверьте настройки кластера

Просмотреть примененные настройки можно с помощью этой команды:

Если они не подходят, их можно изменить с помощью команды, приведенной ниже:

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

Как предотвратить

Существуют различные механизмы, позволяющие автоматически удалять устаревшие данные.

Как автоматически удалять устаревшие данные:

  • Применить ILM (Index Lifecycle Management)
    Используя ILM, можно заставить Elasticsearch автоматически удалять индекс, когда текущий индекс достигает заданного возраста.
  • Использование индексов, основанных на дате
    Если в вашем приложении используются индексы, основанные на дате, то старые индексы можно легко удалить с помощью скрипта, ILM или такого инструмента, как Elasticsearch curator.
  • Использование моментальных снимков для автономного хранения данных
    Может оказаться целесообразным хранить моментальные снимки данных в автономном режиме и восстанавливать их в том случае, если архивные данные необходимо просмотреть или изучить.
  • Автоматизация/упрощение процесса добавления новых узлов данных
    Используйте средства автоматизации, такие как terraform, для автоматизации процесса добавления новых узлов в кластер. Если это невозможно, то, по крайней мере, убедитесь, что у вас есть четко документированный процесс создания новых узлов, добавления сертификатов TLS и конфигурации и включения их в кластер Elasticsearch в короткие и предсказуемые сроки.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий