티스토리 뷰

Server

[ELK] 엘라스틱 서치의 인덱스 라이프사이클 정책(Index Lifecycle Policy) 설정하기

망나니개발자 2022. 1. 27. 00:11
반응형

이번에는 Docker-Compose로 ELK(Elastic, Logstash, Kibana) 스택을 기반으로 하는 모니터링 서버를 구축한 후에 Kibana를 활용해 ElasticSearch의 Index Lifecycle Policy를 설정해주는 방법에 대해 알아보도록 하자.

개인적으로 참고하려고 정리한 내용이므로 간단히 절차만 정리하도록 하겠습니다.

 

 

 

 

1. 엘라스틱서치 Index Lifecycle Policy 설정


[ Index LifeCycle Policy 생성 ]

데이터가 계속 쌓이는데, 주기적으로 지워주지 않는다면 검색 속도가 느려지는 등의 문제가 발생한다. 그러므로 쌓인 인덱스(데이터)를 일정 간격으로 제거해주는 Index Lifecycle 정책을 올바르게 설정해주어야한다. Index LifeCycle 관리는 Index Lifecycle Policies 화면에서 가능하다.

 

 

 

해당 화면에 들어가서 Create Policy 버튼을 클릭하면 정책을 입력할 수 있는 화면이 나온다. Lifecycle Phase는 크게 Hot, Warm, Cold Delet가 존재하는데, 우리는 이번에 심플하게 Hot과 Delete 단계만 설정해보도록 하자.

정책 이름은 my-ilm로 해주고, HotPhase의 Rollover는 Shard가 50GB가 찼거나 만들어진지 8일이 지났으면 새로운 Shard를 만들어주도록 설정해주자.

 

 

 

 

그리고 위의 그림에서 Keep data in this phase forever의 휴지통 버튼을 누르면 Delete Phase를 설정할 수 있는데, 우리는 다음과 같이 8일 뒤에 데이터가 삭제되도록 설정해주자. 그리고 해당 정책을 저장해주면 생성이 완료된다.

 

 

 

[ Index Template 생성 ]

우리가 만든 정책을 인덱스에 적용하기 위해서는 IndexTemplate를 통해 적용할 인덱스 패턴과 정책 등을 설정해주어야 한다. Index Template은 Index Management 화면에 접근해서 만들 수 있다.

 

 

 

 

Index Templates 화면에 접근하면 Create Template 버튼이 있는데, 이 버튼을 눌러주도록 하자.

 

 

 

 

그러면 다음과 같은 입력 화면이 나오는데, Template 이름과 적용할 Index patterns을 설정해주어야 한다. 다음과 같이 설정을 해주고 다음 화면으로 넘어가도록 하자.

 

 

 

그 다음에는 Index settings 단계로 가서 적용할 lifecycle과 rollover_alias, 복제되는 샤드 수, refresh_interval 등을 설정하고 next를 계속 눌러서 마무리해주도록 하자.

 

{
  "index": {
    "lifecycle": {
      "name": "my-ilm",
      "rollover_alias": "logstash"
    },
    "number_of_shards": "1",
    "refresh_interval": "5s"
  }
}

 

 

 

 

[ Logstash 설정 변경 및 재시작 ]

마지막으로 이제 logstash 설정에서 로그를 엘라스틱 서치로 전송할 때 ilm 관련 설정을 다음과 같이 활성화해주어야 한다. ilm의 pattern은 00001처럼 increasement가 가능한 패턴이여야 한다.

output {
       # 처리한 로그를 Elastic 서버로 전송
       elasticsearch {
               # TODO 각자의 서버에 맞게 IP 변경
               hosts => "서버IP:9200"
               user => "elastic"
               password => "changeme"
               ilm_enabled => true
               ilm_rollover_alias => "logstash"
               ilm_pattern => "000001"
               ilm_policy => "my-ilm"
       }
}

 

 

 

위와 같이 설정하고 logstash를 재시작하면 이제 logstash-000001과 같은 패턴으로 인덱스가 만들어지며, Lifecycle Policy가 정상적으로 설정되어 있는 것을 확인할 수 있다.

 

 

 

 

 

 

 

관련 포스팅

  1. ELK(Elasticsearch, Logstash, Kibana)에 대한 간단한 소개 및 구성 예시
  2. Docker Compose로 ELK 모니터링 서버 구축 및 Filebeat로 로그 전송
  3. 엘라스틱 서치의 인덱스 라이프사이클 정책(Index Lifecycle Policy) 설정하기



반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함