Curator?
Curator는 elasticsearch 의 관리를 위하여 반복적인 작업을 ymal파일 형태로 저장 하여 실행하는 기능을 수행 한다.
인덱스의 삭제/생성, 스냅샷의 생성/삭제, shard routing allocation 변경 등을 진행 한다.
Curator 설치
내부망 환경에서 설치 되어 있기때문에 외부 인터넷 망에서 virtualenv로 설치 후, 해당 폴더를 그래도 이동 하여 사용 중임
pip을 이용 하여 elasticsearch-curator 설치(elasticsearch-curator5 버전으로 elasticsearch5,6 사용 가능)
이외에도 rpm파일 설치나, 소스로 설치 가능하다. (https://www.elastic.co/guide/en/elasticsearch/client/curator/5.5/installation.html)
# source /opt/virtualenv/bin/activate
(virtualenv) [root@openstack_test virtualenv]# pip install elasticsearch-curator
Curator 설정
먼저, 기본적으로 대상이 되는 elasticsearch의 정보가 있는 파일을 설정 해야 한다.
/monitoring/elk_work_dir/curator/curator-config.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']
action 을 수행하는 action.yml파일을 추가한다.
해당 파일은 특정 기간이 지난 index에 대하여 삭제 하는 설정으로 unit을 days로 설정 하고 , unit_count가 11로 설정 하여 11일이 지난 index에 대하여 삭제 된다.
(/monitoring/elk_work_dir/curator/delete_indices.yml)
---
actions:
1:
action: delete_indices
options:
ignore_empty_list: True
disable_action: False
filters:
- filtertype: pattern
kind: prefix
value: logstash-
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 11
해당 action을 실행하기전 기존의 index의 상태를 확인 한다. 실행 하는 날짜 기준(2018년 10월 21일) 으로 11일을 설정 하였기 때문에 logstash-2018.10.10이 삭제 되어야 한다.
x
아래와 같이 dry-run을 통하여 수행 예정인 job을 미리 확인 할 수 있다.
dry-run을 통하여 테스트시 삭제 예정인 logstash-2018.10.10 인덱스가 삭제 될 것이라는것을 확인 할 수 있다.
# /opt/virtualenv/bin/curator --config curator-config.yml --dry-run delete_indices.yml
2018-10-21 13:54:00,809 INFO Preparing Action ID: 1, "delete_indices"
2018-10-21 13:54:00,819 INFO Trying Action ID: 1, "delete_indices": No description given
2018-10-21 13:54:00,878 INFO DRY-RUN MODE. No changes will be made.
2018-10-21 13:54:00,878 INFO (CLOSED) indices may be shown that may not be acted on by action "delete_indices".
2018-10-21 13:54:00,878 INFO DRY-RUN: delete_indices: logstash-2018.10.10 with arguments: {}
2018-10-21 13:54:00,878 INFO Action ID: 1, "delete_indices" completed.
2018-10-21 13:54:00,878 INFO Job completed.
이제 실제로 삭제 되는지 --dry-run 옵션을 빼고 진행 하면 job이 완료 된것을 확인 할 수 있다.
# /opt/virtualenv/bin/curator --config curator-config.yml delete_indices.yml
2018-10-21 13:54:48,876 INFO Preparing Action ID: 1, "delete_indices"
2018-10-21 13:54:48,886 INFO Trying Action ID: 1, "delete_indices": No description given
2018-10-21 13:54:48,946 INFO Deleting selected indices: [u'logstash-2018.10.10']
2018-10-21 13:54:48,946 INFO ---deleting index logstash-2018.10.10
2018-10-21 13:54:49,110 INFO Action ID: 1, "delete_indices" completed.
2018-10-21 13:54:49,110 INFO Job completed.
인덱스를 확인 하면 삭제 하려는 인덱스가 삭제 된것을 확인 한다.
Curator cron 등록
미리 설정한 action을 cron에 등록 하여 반복적으로 action을 수행 할 수 있도록 한다.
아래 cron설정은 매일 오전 5시에 해당 curator action이 수행 되어, 특정기간이 지난 인덱스에 대하여 삭제를 진행 한다.
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
## Delete older index of Elasticsearch (By ycy)
0 5 * * * root /opt/virtualenv/bin/curator --config /monitoring/elk_work_dir/curator/curator-config.yml /monitoring/elk_work_dir/curator/delete_indices.yml
반응형
'System > Elastic Stack' 카테고리의 다른 글
Elasticsearch Hot Warm Architecture (0) | 2018.09.09 |
---|---|
Elasticsearch Cluster (0) | 2018.07.25 |
Logstash Drop filter (1) | 2018.07.22 |
Logging every shell command to elastic stack (0) | 2018.05.20 |
Elasticsearch5, Logstash5, Kibana5 and Redis (ELKR5 Stack) install CentOS 7 (0) | 2016.12.24 |