개요
- 엘라스틱서치에서 발행하는 많은 에러는
많은 경우 지정된 노드 수보다 더 많은 양의 문서를 생성해서 생긴 것이었다. - 따라서 사용을 많이 하지 않는 문서는 주기적으로 지워주는 것이 필수적이다.
- ILM을 사용하면 조건을 지정하여, 해당 조건 충족 시 자동으로 인덱스를 삭제해준다.
- 여기서는 키바나를 사용한 방법을 기록한다.
ILM에서 정책 생성
- 키바나 접속 > (좌상단) 햄버거 메뉴 클릭 > (Management 하위의) Stack Management 클릭 > Index Lifecycle Policies 클릭
- Create policy 클릭
- Create policy
인덱스 템플릿에 생성한 ILM 정책 등록
- 개요
- 인덱스 템플릿을 생성할때 생성한 ILM을 등록해주면된다.
- 여기서 등록한 템플릿은 기존에 생성된 인덱스가 아닌 새로 생성될 인덱스들에 적용된다.
- 방법
- 키바나 접속 > (좌상단) 햄버거 메뉴 클릭 > (Management 하위의) Stack Management 클릭 > Index Management 클릭
- (제목 밑 서브 메뉴에서) Index Templates 클릭
- Create template 버튼 클릭
- Create template
- Logistics
- Component templates
- 넘긴다
- Index settings
- 위에서 생성한 ILM 정책을 등록해준다.
1 2 3 4 5 6 7
{ "index": { "lifecycle": { "name": "test-my-policy" } } }
- 위에서 생성한 ILM 정책을 등록해준다.
- Mappings
- 인덱스의 필드 타입을 지정
- 모든 필드의 기본 타입은 text이다.
- text는 fulltext search하는 필드이기 때문에
연산 비용이 비싼 필드이다. - 따라서 numeric이나 keyword를 상황에 맞게 설정해준다면
더 효율적으로 검색할 수 있게 된다. - 지금은 ILM 정책을 등록할 것이기에 넘긴다.
- 인덱스의 필드 타입을 지정
- Aliases
- 넘긴다
- 확인
덧붙이는 말
- 현재는 키바나에서 설정하는 방법만 적었지만
elasticsearch에서 인덱스 생성 시 붙이는 방법,
logstash에서 인덱스 템플릿 설정 시 붙여지도록 하는 방법,
직접 elasticsearch에 명령을 내려서 설정하는 방법 등
여러 방법이 존재한다. - 아래 참고 문서를 보면 다양한 방법도 함께 기재되어 있으니 참고하면 좋다.