4.3.2. 로그 보존 시간 구성
기본 Elastic검색 로그 저장소가 인프라 로그, 응용 프로그램 로그 및 감사 로그의 세 가지 로그 원본 각각에 대한 인덱스를 보관하는 기간을 지정하는 보존 정책을 구성할 수 있습니다.
보존 정책을 구성하려면 ClusterLogging
사용자 정의 리소스(CR)에서 각 로그 소스에 대해 maxAge
매개변수를 설정합니다. CR은 Elasticsearch 롤오버 스케줄에 이러한 값을 적용하여 Elasticsearch가 롤오버된 인덱스를 삭제하는 시기를 결정합니다.
인덱스가 다음 조건 중 하나와 일치하면 Elasticsearch는 현재 인덱스를 이동하고 새 인덱스를 생성하여 인덱스를 롤오버합니다.
-
인덱스가
Elasticsearch
h CR의rollover.maxAge
값보다 오래되었습니다. - 인덱스 크기가 40GB × 기본 shard 수보다 큽니다.
- 인덱스 문서 수가 40960KB × 기본 shard 수보다 큽니다.
Elasticsearch는 구성한 보존 정책에 따라 롤오버된 인덱스를 삭제합니다. 로그 소스에 대한 보존 정책을 생성하지 않으면 기본적으로 7일 후에 로그가 삭제됩니다.
사전 요구 사항
- OpenShift Logging 및 OpenShift Elasticsearch Operator가 설치되어 있어야 합니다.
절차
로그 보존 시간을 구성하려면 다음을 수행합니다.
retentionPolicy
매개변수를 추가하거나 수정하려면ClusterLogging
CR을 편집합니다.apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" ... spec: managementState: "Managed" logStore: type: "elasticsearch" retentionPolicy: 1 application: maxAge: 1d infra: maxAge: 7d audit: maxAge: 7d elasticsearch: nodeCount: 3 ...
- 1
- Elasticsearch가 각 로그 소스를 유지해야 하는 시간을 지정합니다. 정수 및 시간 지정을 입력합니다(주(w), 시간(h/H), 분(m) 및 초(s)). 예를 들어 1일은
1d
입니다.maxAge
보다 오래된 로그는 삭제됩니다. 기본적으로 로그는 7일 동안 유지됩니다.
Elasticsearch
사용자 정의 리소스(CR)에서 설정을 확인할 수 있습니다.예를 들어 Red Hat OpenShift Logging Operator가 8시간마다 인프라 로그의 활성 인덱스를 롤오버하는 설정이 포함된 보존 정책을 구성하기 위해 다음
Elasticsearch
CR을 업데이트했고, 롤오버된 인덱스는 롤오버 후 7일이 지나면 삭제됩니다. OpenShift Container Platform은 15분마다 인덱스를 롤오버해야 하는지 확인합니다.apiVersion: "logging.openshift.io/v1" kind: "Elasticsearch" metadata: name: "elasticsearch" spec: ... indexManagement: policies: 1 - name: infra-policy phases: delete: minAge: 7d 2 hot: actions: rollover: maxAge: 8h 3 pollInterval: 15m 4 ...
- 1
- 보존 정책은 각 로그 소스에 대해 해당 소스의 로그를 삭제하고 롤오버할 시기를 나타냅니다.
- 2
- OpenShift Container Platform이 롤오버된 인덱스를 삭제하는 경우 이 설정은
ClusterLogging
CR에서 설정한maxAge
입니다. - 3
- 인덱스를 롤오버할 때 고려해야 할 OpenShift Container Platform의 인덱스 수명입니다. 이 값은
ClusterLogging
CR에서 설정한maxAge
에서 결정됩니다. - 4
- OpenShift Container Platform에서 인덱스를 롤오버해야 하는지 확인하는 경우 이 설정은 기본값이며 변경할 수 없습니다.
참고Elasticsearch
CR 수정은 지원되지 않습니다. 보존 정책에 대한 모든 변경은ClusterLogging
CR에서 수행해야 합니다.OpenShift Elasticsearch Operator는 Cron 작업을 배포하고
pollInterval
로 예약한 정의된 정책에 따라 각 매핑의 인덱스를 갱신합니다.$ oc get cronjob
출력 예
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE AGE elasticsearch-im-app */15 * * * * False 0 <none> 4s elasticsearch-im-audit */15 * * * * False 0 <none> 4s elasticsearch-im-infra */15 * * * * False 0 <none> 4s