Что это значит

У кластера есть предел: cluster.max_shards_per_node (по умолчанию 1000) на каждый узел данных. Кластер дошёл до предела и отказывается создавать новые индексы. Существующие индексы работают, поэтому сразу этого не видно.

Чаще всего так останавливается сбор журналов: индексы создаются каждый день, и в полночь новый индекс создать не удаётся. Симптом снаружи: графики и поиск по журналам пустеют ровно с начала суток. Диск при этом может быть свободен.

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

GET _cluster/health?filter_path=active_shards,number_of_data_nodes
GET _cluster/settings?include_defaults=true&filter_path=*.cluster.max_shards_per_node
GET _cat/indices?v&s=creation.date&h=index,creation.date.string,pri,rep,docs.count,store.size

Что сделать

  1. Быстро вернуть запись: поднять лимит, например до 1500. Изменение применяется сразу.
PUT _cluster/settings
{"persistent": {"cluster.max_shards_per_node": 1500}}
  1. Убрать причину: удалить старые индексы и настроить политику хранения, чтобы они удалялись сами.
  2. Проверить, что политика привязана и к старым индексам. Шаблон действует только на индексы, созданные после него.
  3. Уменьшить число шардов: один шард на индекс для небольших суточных индексов, укрупнение мелких серий.

Поднимать лимит без уборки нельзя бесконечно: каждый шард занимает память узла. rxdoctor показывает заполнение лимита пунктом ES-02.