[엘라스틱서치] ILM을 이용한 롤오버 시퀀셜 인덱스 생성 - forewalk/elastic GitHub Wiki
Elasticsearch
ILM
ES 7.9? 7.10? 이정도 부터 _data_stream이라는 API가 관련내용을 대체하는 듯 하면서 분리가 된 듯한 느낌인데, current 버전에서도 이게 되는지는 테스트를 한번 더 해볼 필요는 있을 듯하다. 시나리오는 다음과 같다. ilm 정책을 생성한 후 > ilm정책을 셋팅한 template를 생성한다 > 템플릿 패턴에 맞는 인덱스를 생성한 후(알리아스를 함께 생성) > 데이터를 색인 > 데이터를 확인한다
- ilm 정책 생성
PUT _ilm/policy/testilm
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "10m",
"max_docs": 100
}
}
}
}
}
}
- 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는 구문시작날짜를 인덱스이름으로 가져오는 설정이다
- 인덱스 생성
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
- 데이터 색인
POST testilm/_doc
{
"a":1
}
- 상태확인 & 수동롤오버
GET testilm-2020.12.28-000001/_ilm/explain
POST testilm/_rollover
참조