Политика индексации или шаблон индекса для Elasticsearh

У меня есть кластер elasticsearch для хранения журналов, и у меня есть такие индексы

      logs-2021.01.01
logs-2021.01.02
logs.2021.01.03 ...etc

поэтому индексы создаются ежедневно, и у меня есть шаблон индекса для этих индексов

      PUT _index_template/template_1
{
  "index_patterns": ["logs*"],
  "template": {
    "settings": {
      "number_of_shards": 6,
      "number_of_replicas": 1
    }

но я хочу убедиться, что индексы старше 1 дня имеют 0 реплик для экономии места на диске, а индексы младше 1 дня остаются с 1 репликой (чтобы в случае потери сервера у меня были данные на сегодня)

как я могу сделать это с помощью метода elasticsearch? Я думаю о сценарии bash, который выполняется cron, который получает все индексы старше 1 дня и создает 0 реплик, но я не хочу использовать для этого внешние сценарии Спасибо за вашу помощь

2 ответа

Вы можете использовать концепцию ILM (управление жизненным циклом индекса) Elasticsearch.

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

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

      PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "warm": {
        "actions": {
          "allocate" : {
            "number_of_replicas" : 0
          }
        }
      }
    }
  }
}

https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index-lifecycle-management.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-allocate.html

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

Возможно, вы можете использовать это: https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-allocate.html

Используйте iml police для назначения реплик для разных фаз.

Другие вопросы по тегам