• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    해결됨

rollover 설정 질문

23.06.23 15:46 작성 조회수 229

0

안녕하세요 선생님,

질문 하나 드려도 될까요??

 

다음과 같이 2개 조건이 만족하고싶습니다.

  • hot 영역에 보관되면서도 primary shard size가 30기가 이상일 때 인덱스가 새로 생성

  • 인덱스가 hot 상태일 때는 만들어지고 30일 이후에 warm 영역으로 이동

     

ex) 오늘이 6.23일이면

logs-2023.06.23-000028 프라이머리샤드 30기가 이상 -> logs-2023.06.23-000029 생성(000028 도 여전히 hot 영역 왜냐면 생성되고 30일 이하)

logs-2023.05.20-000001 샤드는 warm으로 이동 - 왜냐하면 30일 이후

 

그래서 아래와 같이 설정했는데,

"hot" : {
          "min_age" : "0ms",
          "actions" : {
            "set_priority" : {
              "priority" : 100
            },
            "rollover" : {
              "max_primary_shard_size" : "30gb",
              "max_age" : "30d"
            }
          }
        },

 

책에 rollover에서 둘중 하나 조건만 만족하면 된다라고 적혀있더라구요.

그러면 위에와 같이 설정하면 primary 샤드가 30기가가 넘어갈때 인덱스가 새로 생성되면서 hot 상태가 아닌 warm 상태로 넘어가게 되는것같습니다.

저는 새로운 인덱스 생성 rollover는 프라이머리 샤드 30기가 이상, hot에서 warm으로 넘어가는 rollover는 30일 이렇게 설정하고 싶은데 어떻게 설정하면 되는걸까요??

답변 1

답변을 작성해보세요.

1

두 개의 조건을 다르게 ILM을 생성 하셔야 합니다.

첫번째 ILM은 용량에 따른 롤오버가 되도록 아래와 같이 설정할 수 있습니다.

PUT /_ilm/policy/rollover_by_size
{
  "policy":{
    "phases":{
      "hot":{
        "actions":{
          "rollover":{
            "max_primary_shard_size":"30gb"
          }
        }
      }
    }
  }
}

두번째 ILM은 생성일을 기반으로 롤오버가 되도록 아래와 같이 설정할 수 있습니다.

PUT _ilm/policy/rollover_by_days
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_age":"30d"
          },
          "set_priority": {
            "priority": 50
          }
        }
      },
      "warm": {
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "shrink": {
            "number_of_shards": 1
          },
          "allocate": {
            "require": {
              "data": "warm"
            }
          },
          "set_priority": {
            "priority": 25
          }
        }
      }
    }
  }
}

이렇게 ILM을 두 개로 분리해서 해보시면 원하시는 방법으로 동작할 것 같습니다.

김수민님의 프로필

김수민

질문자

2023.06.26

감사합니다 2개로 적용해보겠습니다.

김수민님의 프로필

김수민

질문자

2023.06.28

선생님 2개의 ILM이 하나의 인덱스 템플릿에 적용이 안되는듯 하네요. 하나만 적용이 됩니다..

아 그렇군요. 그럼 이건은 제가 좀 더 확인해 봐야 할 것 같습니다. 확인해 보고 답글 드릴게요.

김수민님의 프로필

김수민

질문자

2023.06.30

To. 선생님

인덱스 수명 주기 관리를 통해 Elasticsearch에서 Hot-Warm-Cold 아키텍처 구현 | Elastic Blog

해당 링크를 참고하면 actions.rollover에는 primary 30기가를 넣고,

"min_age": "30d" 이렇게 설정하면 hot단계에서 롤오버 이후 30일 이후에 다음단계로 넘어가는것같습니다.

같이 고민해주셔서 감사합니다~!

 

직접 해결하셨다니 멋지십니다~!