Elasticsearch
Elasticsearch
DeepFinder 내 Elasticsearch의 역할
Elasticsearch는 PostgreSQL보다 빠른 데이터 검색 및 집계 성능을 활용하기 위해 도입된 NoSQL 데이터베이스입니다. DeepFinder에서는 주로 다음 용도로 사용됩니다.
* 탐지 로그 저장: 빠른 검색을 위한 탐지 로그 저장소
* 대시보드 및 보고서: 대시보드 시각화 및 보고서 생성을 위한 데이터 집계

Elasticsearch 프로세스 중단 원인 및 영향
Elasticsearch 프로세스는 주로 아래 두 가지 원인으로 중지될 수 있습니다.
* 디스크 사용량 임계치 초과: 디스크 사용량이 80% 이상일 경우
* 메모리 부족: 과도한 인덱스(Index) 누적으로 인한 JVM 가용 메모리 부족
따라서 Elasticsearch에는 검색 빈도가 높은 최근 3개월 내외의 데이터만 저장하고, 오래된 데이터는 주기적으로 삭제하는 것을 권장합니다.
Info
주기적인 로그 정리(삭제)는 [환경 관리] > [환경 설정] > [로그 보관 기간] 탭에서 설정할 수 있습니다.
설정한 '삭제일'과 '삭제 시간'에 맞춰 오래된 로그가 자동으로 삭제됩니다.

Elasticsearch는 빠른 검색 및 통계 등 부가 기능을 위해 사용되므로, 프로세스가 중지되더라도 실시간 위협 탐지 및 차단 등 핵심 보안 기능에는 영향이 없습니다.
DeepFinder의 모든 탐지 로그는 Elasticsearch와 PostgreSQL DB에 동시에 저장됩니다. Elasticsearch 장애 시, [탐지 로그] 화면 상단의 검색 대상을 'Elastic'에서 'DB'로 변경하면 PostgreSQL에 저장된 로그를 조회할 수 있습니다.

Elasticsearch 정상화 절차
1) Elasticsearch 재시작
Manager UI에서 Elasticsearch가 다운된 것으로 표시되나 실제 서버에서 프로세스가 실행 중인 경우가 있습니다. 이는 Elasticsearch가 응답하지 않는 'Hanging' 상태일 수 있으므로, 아래 명령어로 서비스를 재시작합니다.
[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) 상태 확인
서비스 재시작 직후에는 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) 인덱스 조회 및 삭제
상태가 red 또는 yellow로 표시되면, 인덱스 누적으로 인한 문제일 수 있습니다. 아래 명령어로 인덱스 목록과 용량을 확인합니다.
과도하게 쌓인 인덱스가 확인되면 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
...
[root@i ~]# curl -XDELETE localhost:9200/pslist-2023-04* {"acknowledged":true}
4) 디스크 공간 확인
인덱스 삭제 후에도 디스크 사용량이 여전히 80% 이상이라면 PostgreSQL DB 로그 등 다른 데이터의 정리가 필요할 수 있습니다.
이 경우, DeepFinder 기술 지원팀으로 문의하여 지원을 받으시기 바랍니다.