[엘라스틱서치] ILM을 이용한 롤오버 시퀀셜 인덱스 생성 - forewalk/elastic GitHub Wiki

Elasticsearch

ILM


ES 7.9? 7.10? 이정도 부터 _data_stream이라는 API가 관련내용을 대체하는 듯 하면서 분리가 된 듯한 느낌인데, current 버전에서도 이게 되는지는 테스트를 한번 더 해볼 필요는 있을 듯하다. 시나리오는 다음과 같다. ilm 정책을 생성한 후 > ilm정책을 셋팅한 template를 생성한다 > 템플릿 패턴에 맞는 인덱스를 생성한 후(알리아스를 함께 생성) > 데이터를 색인 > 데이터를 확인한다

  1. ilm 정책 생성
PUT _ilm/policy/testilm
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_age": "10m",
            "max_docs": 100
          }
        }
      }
    }
  }
}
  1. template 생성
PUT _template/testilm
{
  "index_patterns": [
    "testilm-*"
  ],
  "settings": {
    "index": {
      "lifecycle": {
        "name": "testilm",
        "rollover_alias": "testilm",
        "parse_origination_date": true
      },
      "number_of_shards": "1",
      "number_of_replicas": "0"
    }
  },
  "mappings": {
    "properties": {
      "@timestamp": {
        "type": "date"
      }
    }
  }
}

여기서 parse_origination_date는 구문시작날짜를 인덱스이름으로 가져오는 설정이다

  1. 인덱스 생성
PUT %3Ctestilm-%7Bnow%2Fd%7D-000001%3E
{
  "aliases": {
    "testilm": {
      "is_write_index":true
    }
  }
}

여기서 인덱스 생성시, 원하는 형태는 PUT <testilm-{now/d}-000001> 형태이나 url코드로 변환할 필요가 있기때문에, 다음과 같이 입력한다. PUT %3Ctestilm-%7Bnow%2Fd%7D-000001%3E

  1. 데이터 색인
POST testilm/_doc
{
  "a":1
}
  1. 상태확인 & 수동롤오버

GET testilm-2020.12.28-000001/_ilm/explain

POST testilm/_rollover


참조

ES 듀토리얼

blog