Elasticsearch를 사용해 비즈니스 시스템의 로그를 저장하면, 매일 날짜에 따라 새로운 인덱스가 생성됩니다. 매일 수백만 개의 문서가 있습니다. 만약 Elasticsearch 인덱스가 제때 정리되지 않으면 디스크 공간이 커지고 디스크에 큰 부담이 가해지며, 검색 속도도 느려질 것입니다. 이전에는 ES의 인덱스를 수동으로 정리하고 셸 스크립트를 사용해 정기적으로 정리했지만, ES는 오래된 과거 인덱스를 삭제하는 데 도움을 주는 인덱스 라이프사이클 정책을 생성할 수 있습니다.
이 문서에서 사용된 Elasticsearch 버전은 7.10.2입니다.
오늘은 2022-03-11이며, 아래 그림에서 볼 수 있듯이 2022년 1월의 인덱스와 문서가 여전히 존재하는 것을 확인할 수 있습니다:
인덱스 템플릿 만들기
Kibana 관리자 패널을 열고 인덱스 관리 -> 인덱스 템플릿 ->을 클릭하여 다음 이름의 인덱스 템플릿을 생성하세요:로거 템플릿인덱스 모듈은 매칭해야 할 인덱스를 채우고, 아래 그림과 같이 다음 단계로 진행합니다:
참고: 새로운 Elasticsearch 인덱스를 만들 때, 템플릿이 자동으로 기본 인덱스 부분을 완성하도록 매칭됩니다. 즉, itsvse-2022-03-13 인덱스를 생성할 때 logger-template 버전과 일치한 후 템플릿이 설정한 규칙을 실행합니다.과거 색인(템플릿과 일치하더라도)은 인덱스 템플릿과 연관되지 않습니다!!! 이 글에서,템플릿을 기반으로 생성되지 않은 인덱스는 자동으로 삭제할 수 없습니다。
인덱스 수명주기 정책 생성
Kibana 관리자 패널을 열고 Index Lifecycle Policy ->을 클릭하여 다음 이미지에 표시된 대로 정책을 생성하세요:
이름 채우기"자동 청소-30일-로거, 체크 해제 롤링 업데이트 활성화 아래 그림에 나타난 것:
삭제 단계를 열어 30일 전까지의 인덱스를 자동으로 정리하세요. 아래 이미지에 나와 있습니다:
마지막으로, 다음 이미지에서 보듯이 인덱스 템플릿에 정책을 추가하세요:
이 시점에서 새로 생성된 인덱스는 자동으로 30일 동안 저장되고, 30일 이상 인덱스는 삭제되며, 과거 인덱스는 수동으로 정리해야 합니다!! 인덱스를 수동으로 삭제하려면 다음을 참고하세요:
방금 만든 인덱스 템플릿을 검토하세요. 이 템플릿은 최종 인덱스와 일치하는 템플릿에 적용될 것입니다. 자세한 내용은 다음과 같습니다:
{ "템플릿": { "설정": { "인덱스": { "생애주기": { "이름": "자동 청소-30-days-logger" } } }, "별칭": {}, "매핑": {} }
}
예를 들어, 정책 설정 인터페이스를 검토하세요:http://192.168.1.182:9200/_ilm/policy/auto-clean-30-days-logger?pretty
{ "자동 청소-30일-로거" : { "버전 : 1," "modified_date" : "2022-03-11T06:26:01.972Z", "정책" : { "위상" : { "뜨거워" : { "min_age" : "0ms", "행동" : { "set_priority" : { "우선순위" : 100 } } }, "삭제" : { "min_age" : "30펜스", "행동" : { "삭제" : { "delete_searchable_snapshot" : 사실입니다 } } } } } }
}
ILM(인덱스 라이프사이클 관리)
우리의 새로운 인덱스 수명주기 정책은 시간 내 폴링을 통해 실행됩니다.
ILM 서비스는 백그라운드에서 실행 정책을 폴링합니다:
ILM은 네 가지 생애 주기 단계를 정의합니다: 핫: 인덱스를 적극적으로 업데이트하고 쿼리하는 중. 웜: 더 이상 인덱스를 업데이트하지 않지만, 여전히 쿼리를 진행합니다. 콜드: 더 이상 인덱스 업데이트가 없고, 쿼리도 적습니다. 정보는 여전히 검색 가능해야 하지만, 쿼리가 느려져도 괜찮습니다. 삭제: 인덱스는 더 이상 필요하지 않으며 안전하게 삭제할 수 있습니다.
ILM 주기 작동 (indices.lifecycle.poll_interval),기본값은 10분입니다지수가 정책 기준을 충족하는지 확인하고 필요한 조치를 취하는 것입니다. 레이스 상황을 피하기 위해 ILM을 여러 번 실행해야 할 수 있습니다. 따라서 indices.lifecycle.poll_interval가 10분으로 설정되어 있고 인덱스가 롤오버 준수 상태라도, 롤오버를 완료하는 데 20분이 걸릴 수 있습니다. 예를 들어, 10개 이상의 문서를 롤오버하도록 설정했지만 이 과정이 즉시 실행되지 않아 11번째와 12번째 문서는 이전 인덱스에 여전히 해당될 수 있고, 새로 생성된 문서들은 롤오버가 성공할 때까지 새 인덱스에 포함되지 않습니다.
Elasticsearch의 인덱스 라이프사이클 관리 설정:하이퍼링크 로그인이 보입니다.
ILM 상태 보기
2022-03-13입니다. 매일 2개의 인덱스가 자동으로 생성됩니다. 이미 생성된 인덱스를 볼 수 있습니다정책은 자동으로 연관됩니다, 아래 그림에서 볼 수 있습니다:
(끝)
|