curator
elasticsearch의 인덱스 삭제/생성, 스냅샷 삭제/생성 shard routing allocation 변경 등의 작업을 반복적인 작업을 yaml파일 형태로 정의하여 관리할 수 있다. (참고)
curator 설치 (linux ubuntu 기준)
먼저 pip가 설치되어야 한다.
sudo apt update sudo apt install python3-pip
위 명령어를 통해 pip가 설치 되면 다음 명령어를 통해 설치가 되었는지 확인
pip --version
설치가 되었다면 다음 명령어를 통해 curator를 설치할 수 있다.
pip install elasticsearch-curator
curator 설정
먼저 curator의 환경 설정을 하는 파일을 만든다.
# curator.yml
client:
hosts:
- 127.0.0.1
port: 9200
url_prefix:
use_ssl: False
certificate:
client_cert:
client_key:
ssl_no_validate: False
http_auth:
timeout: 30
master_only: False
logging:
loglevel: INFO
logfile:
logformat: default
blacklist: ['elasticsearch', 'urllib3']
기본 설정 그대로 써도 무방하다.
curator 는 대표적인 삭제 방식으로 두 가지가 있다.
1. 날짜 기반 삭제
# time_base_delete
actions:
1:
action: delete_indices
options:
ignore_empty_list: True
continue_if_exception: False
disable_action: False
filters:
- filtertype: pattern
kind: prefix
value: equipment-search-log-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 0
equipment-search-log- 로 시작하는 인덱스를 0일이 지났으면 삭제하도록 설정하였다. (인덱스가 당일 날짜밖에 없는 관계로)
원하는 초과 일 수가 있으면 unit-count의 숫자만 바꿔주면 된다.
그리고 위 action 파일을 실행시켜준다.
/home/ubuntu/.local/bin/curator --config /home/ubuntu/config-files/curator.yml --dry-run curator-file/delete-indices.yml
[curator 위치] --config [curator 설정 파일 위치] [action 파일 위치]
* dry-run 은 테스트 실행 옵션
실행하면 위와같이 12월 3일에 생성된 인덱스가 삭제 되었다 로그가 출력된다.
dry-run 을 빼고 실행하면
위와 같이 삭제 로그가 출력되고 kibana를 통해 인덱스를 확인해보면 삭제된것을 확인할 수 있다.
2. 용량 기반 삭제
#size base delete
actions:
1:
action: delete_indices
options:
ignore_empty_list: True
timeout_override: 300
continue_if_exception: False
disable_action: False
filters:
- filtertype: pattern
kind: prefix
value: equpment-seach-logs-
- filtertype: space
disc_space: 10
use_age: True
source: creation_date
equipment-search-log- 로 시작하는 인덱스가 10GB를 초과하면 오래된 순서로 삭제하도록 설정하였다.
기준 용량을 바꾸려면 disc_space 의 숫자를 바꿔주면 된다.
(필터 참고)
curator cron
마지막으로 curator를 자동적으로 특정 주기마다 삭제를 진행할 수 있도록 cron에 등록해준다.
#curator_cron
SHELL=/bin/bash
PATH=/sbin:/bin:/urs/sbin:/usr/bin
HOME=/
0 0 * * * root /home/ubuntu/.local/bin/curator --config /home/ubuntu/config-files/curator.yml /home/ubuntu/curator-file/delete-indices.yml > /home/ubuntu/log/curator/curator.log 2>&1
위 cron 은 매일 00시에 해당 curator를 실행하게되며 특정 날짜 또는 용량에 따라 인덱스 정리를 하게되고,
마지막 코드에 의해 /home/ubuntu/log/curator 디렉토리에 curator.log 파일로 curator 동작에 대한 로그 내역이 남게된다.
'ELK' 카테고리의 다른 글
[ELK] SpringBoot Logback 과 ELK Stack 연동 (2) | 2022.12.30 |
---|---|
[ELK] Elasitcsearch 란, Elasticsearch 를 사용하는 이유 (0) | 2021.11.25 |
[ELK] Filebeat 설치 및 시작 for Mac (Elasticsearch, Kibana 연동) (0) | 2021.11.15 |
[ELK] Logstash 와 Filebeat의 차이 (0) | 2021.11.15 |