Index State Management
출처: 문서
본문
인덱스 상태 관리
인덱스 상태 관리(ISM)는 인덱스의 나이, 크기 또는 문서 수에 따라 인덱스에 대한 관리 작업을 실행해요. 시계열 데이터가 생성하는 주기적인 작업에 사용해요: 인덱스가 특정 크기에 도달하면 롤오버하고, 나이가 들면 복제본 수를 줄이고, 비수기 시간에 강제 병합하고, 스냅샷을 찍고, 더 이상 필요하지 않으면 삭제하는 작업이에요.
예를 들어, 정책은 30일 후에 인덱스를 read_only 상태로 전환하고, 60일 후에 스냅샷을 찍고, 90일 후에 삭제하며, 상태가 변경될 때마다 알림을 보낼 수 있어요.
정책, 상태, 작업 및 전환
정책은 인덱스가 어떻게 관리되는지 설명하는 JSON 문서예요. 세 부분으로 구성된 상태 머신이에요:
- 상태는 관리되는 인덱스가 있을 수 있는 상태예요. 예를 들어
hot,warm,delete등이 있어요. 인덱스는 한 번에 정확히 하나의 상태에 있어요. - 작업은 인덱스가 상태에 들어갈 때 ISM이 실행하는 작업이에요. 예를 들어
rollover,force_merge,snapshot등이 있어요. 작업은 정의한 순서대로 실행돼요. - 전환은 인덱스를 한 상태에서 다음 상태로 이동시키는 조건이에요. 예를 들어 최소 나이 또는 문서 수에 도달하는 것이에요.
정책은 여러 상태, 각 상태의 여러 작업, 그리고 두 상태 간의 전환(자기 자신으로의 전환 포함)을 정의할 수 있어요. 전체 정책 구조는 정책을 참조하세요.
정책이 인덱스에 연결되면 ISM은 기본적으로 5분마다 실행되는 작업을 생성해요. 각 실행은 현재 상태의 작업을 수행하고, 전환 조건을 평가하며, 인덱스를 다음 상태로 이동시켜요. 간격을 변경하려면 설정을 참조하세요. ISM은 클러스터 상태가 빨간색인 동안에는 작업을 실행하지 않아요.
새 인덱스에 정책 연결
정책에 ism_template 객체를 추가하면 ISM이 이름이 패턴 중 하나와 일치하는 각 새 인덱스에 정책을 연결해요. 다음 정책은 이름이 index_name-으로 시작하는 모든 인덱스에 연결돼요:
PUT _plugins/_ism/policies/example_policy
{
"policy": {
"description": "Example policy.",
"default_state": "hot",
"states": [
{
"name": "hot",
"actions": [],
"transitions": []
}
],
"ism_template": {
"index_patterns": ["index_name-*"],
"priority": 100
}
}
}
{% include copy-curl.html %}
인덱스 패턴에는 다음 문자를 포함할 수 없어요: :, ", +, /, \, |, ?, #, >, <. 둘 이상의 템플릿이 새 인덱스의 이름과 일치하면 ISM은 가장 높은 priority를 가진 템플릿을 적용해요.
전체 예제는 자동 롤오버를 위한 ISM 템플릿 샘플 정책을 참조하세요.
ism_template는 생성된 이후의 인덱스에만 적용돼요. 이미 존재하는 인덱스에 정책을 연결하려면 관리되는 인덱스 또는 정책 적용을 참조하세요.
인덱스 템플릿을 통해 정책을 연결했던 opendistro.index_state_management.policy_id 인덱스 설정은 더 이상 사용되지 않아요. 대신 ism_template를 사용하세요.
{: .note}
이 섹션에서
| 주제 | 설명 |
|---|---|
| 정책 | 정책의 구조, 작업이 수행할 수 있는 작업, 그리고 전체 정책 예제. |
| 관리되는 인덱스 | 인덱스를 관리하는 정책을 변경, 제거 및 재시도. |
| ISM API | 정책 생성, 연결 및 분리, 그리고 관리되는 인덱스의 상태 설명. |
| ISM 오류 방지 | 작업이 실행되기 전에 검증하고 검증 메시지를 해결. |
| 설정 | 작업 간격, 기록 및 검증을 제어하는 클러스터 설정. |