Elasticsearch
DeepFinder 내 Elasticsearch 용도
Elasticsearch는 Postgres보다 데이터 처리가 빠르다는 장점을 활용하기 위해 도입한 NOSQL이며 탐지로그 저장과 DeepFinder Manager에서 부가적인 기능인 대시보드 데이터 저장 및 보고서 데이터를 집계 하는데 사용합니다.
Elasticsearch Process Down 원인 및 영향도
Elasticsearch는 서버 내 디스크 용량이 80% 를 초과하거나 가용 메모리가 부족한 경우 프로세스가 다운될 수 있습니다.
가용 메모리 부족의 원인은 Elasticsearch 내 Index가 과도하게 누적될 경우 발생하므로 Elasticsearch 데이터는 탐지로그 조회가 잦은 3개월치 내외 데이터만 저장하시는것을 권고드립니다.
주기적인 로그 정리 설정은 [환경관리] - [환경설정] - [로그 보관기간] 탭에서 설정할 수 있습니다.
이 때 삭제일과 삭제시간을 명시해야 입력된 시간에 맞춰 삭제작업을 진행합니다.
Elasticsearch는 빠른 데이터 처리가 필요한 부가적인 정보만을 저장하기 때문에 프로세스가 다운되더라도 보안운영에는 영향이 없습니다.
DeepFinder의 탐지로그는 Postgres 및 Elasticsearch에 동시 저장하도록 구성되었기 때문에 [탐지로그] 왼쪽 Elastic을 DB로 변경하여 Postgres에 저장된 탐지로그를 검색하실 수 있습니다.
Elasticsearch 정상화
1) Elasticsearch 재시작
서버 내에서 Elasticsearch가 동작중임에도 불구하고 Elasticsearch가 다운된 것으로 표시되는 경우가 있습니다. 이는 Elasticsearch에서 응답하지 않는 상태이므로 Elasticsearch 재시작을 진행합니다.
[root@i ~]# service dfserver-elastic restart
useradd: user 'elastic' already exists
Stopping elasticsearch: [ OK ]
Starting elasticsearch: [ OK ]
[root@i ~]# ps -ef |grep elastic
elastic 899 1 99 10:57 ? 00:00:16 /usr/bin/java -Xms3g -Xmx3g -XX:+UseConcMarkSweepGC ...
elastic 896 899 0 10:57 ? 00:00:00 /usr/local/dfserver/elasticsearch/modules/x-pack-ml ...
2) 상태 확인
Elasticsearch의 상태를 확인합니다.
Connection refused는 프로세스가 아직 켜지지 않은 상태이므로 상태정보가 나올때까지 기다립니다.
[root@i ~]# curl localhost:9200/_cat/health
curl: (7) Failed to connect to localhost port 9200: Connection refused
[root@i ~]# curl localhost:9200/_cat/health
1684375627 02:07:07 elasticsearch red 1 1 575 575 0 4 1821 5 144.3ms 24.0%
3) Index 조회 및 삭제
상태정보가 나오면 Index를 조회하여 어느정도의 데이터가 저장되었는지 확인합니다.
인덱스가 조회되면 DELETE 메소드를 통해 데이터를 삭제합니다.
모든 인덱스 삭제를 원하면 curl XDELETE localhost:9200/*를 입력합니다.
[root@i ~]# curl localhost:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open pslist-2023-04-08 Fwl4Db5YTV-vZCKZGwisvw 5 1 4790 0 12.1mb 12.1mb
yellow open pfmdata-2023-04-25 Uui9AviiSyeCg8AhxBpxew 5 1 778 0 579.6kb 579.6kb
yellow open eventlog-2023-04-05 oBLsl6H6QtaitESlvSLbXQ 5 1 1280 0 276.8kb 276.8kb
yellow open pfmdata-2023-05-17 G9ZYWQzqTm2YlGKf-KJYcA 5 1 2984 0 1.9mb 1.9mb
yellow open eventlog-2023-04-18 nzBgA2kDTFS5pNhYKs-5Yg 5 1 1309 0 316kb 316kb
yellow open pslist-2023-04-21 q5A_T4JOSEmQQJ5YhIGKxw 5 1 1857 0 7.6mb 7.6mb
yellow open pslist-2023-05-07 G9rA47SWT6i9_GWfH9RQSg 5 1 7041 0 16.9mb 16.9mb
yellow open pfm_server-2023-05-07 Hf5MIz63QIG1KbocH0txxg 5 1 140 0 440.9kb 440.9kb
........
[root@i ~]# curl -XDELETE localhost:9200/pslist-2023-04*
{"acknowledged":true}
4) 디스크 공간 확인
Elasticsearch 데이터를 삭제하여 디스크 공간을 확보하였음에도 디스크 사용량이 80% 이상인 경우 Postgres 및 기타 데이터 삭제가 필요합니다.
이러한 경우 DeepFinder 기술지원팀으로 연락하여 데이터 정리를 요청하시기 바랍니다.