엘라스틱 서치 ?
- 엘라스틱 서치는 검색만 하는가 ? 그러면 어디에 있는 데이터를 검색해 ? rdb에서 가져와서 하는가 ?
- 엘라스틱서치안에서 데이터가 저장 된다면 rdb를 대체 할 수 있는건가 ?
Elasticsearch는 Apache Lucene(아파치 루씬) 기반의 java 오픈소스 분산 검색 엔진이다.
"데이터 저장소"가 아니라 MySQL같은 데이터베이스를 대체할 수 없습니다.
방대한 양의 데이터를 신속하고 거의 실시간으로 저장,검색,분석할 수 있다.
RDB를 베이스로 하고 검색에 필요한 부분만 엘라스틱서치로 진행한다.
대체 할 수 없는 이유엔 이러한 이유가 있다.
- 트랜잭션 지원 X
- 스키마리스(schemaless) : 이미 생성된 데이터의 타입을 변경하는것은 어렵다.
- 데이터 일관성 : 데이터의 일관성을 보장하지 않는다. 이것은 데이터의 손실 또는 중복의 가능성을 의미한다.
- 많은 리소스 사용량
이러한 이유로
- 로그 데이터 분석
- 이벤트 데이터 분석
- 풀 텍스트 검색
- 대규모 데이터 세트에 대한 복잡한 검색
등에 사용 된다.
Elasticsearch 어떻게 사용 하면 좋을까 ?
ELK( Elasticsearch / Logstatsh / Kibana ) 스택
분석 및 저장 기능을 담당하는 ElasticSearch, 수집 기능을 하는 Logstash, 이를 시각화하는 도구인 Kibana
ⓐ Logstatsh
: 다양한 소스(DB, csv파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch 로 전달
Data처리 파이프라인 / 수집로그 선정하고 인덱싱하여 전송
ⓑ Elasticsearch
: Logstatsh로 부터 받은 데이터를 검색 및 집계를 하여 필요한 관심 있는 정보를 획득
Data저장소 / RESTful검색엔진 (JSON 기반)
ⓒ Kibana
: Elasticsearch의 빠른 검색을 통해 데이터를 시각화 및 모니터링을 담당
ⓓ Beats
: 서버에 에이전트로 설치하여 다양한 유형의 데이터를 Elasticsearch 또는 Logstatsh 에 데이터를 전송
사용자의 요청에 따라 디비에 저장되고(RDBMS or NON-RDBMS) 검색 혹은 분석이 필요한 부분만을
데이터를 추출하여 엘라스틱 서치에 자동 저장시켜서 방대한 양의 데이터를 빠르고 다양하게 검색될 수 있도록 처리하게 된다.
그렇다면 누가 디비에서 필요한 데이터를 추출하여 자동으로 엘라스틱서치에 데이터를 넣는가 ?
여기 있는 rdb 뿐만 아니라 PostgreSQL 등 다양한 언어를 지원 한다.
ⓐ Logstatsh 는
JDBC입력 플러그인을 사용하여 데이터베이스에 연결하고 쿼리를 실행하여 데이터베이스에서 데이터를 가져옵니다.
.yml
input {
jdbc {
jdbc_driver_library => "/path/to/postgresql-jdbc.jar"
jdbc_driver_class => "org.postgresql.Driver"
jdbc_connection_string => "jdbc:postgresql://localhost:5432/mydatabase"
jdbc_user => "myuser"
jdbc_password => "mypassword"
statement => "SELECT * FROM mytable"
}
}
위 설정은 PostgreSQL의 'mydatabase'의 'mytable'테이블에서 모든 데이터를 가져오도록 설정한다.
ⓓ Beats 종류
Filebeat : 보안장치 , 클라우드, 컨테이너 , 호스트 또는 OT에서 수집하는 로그와 파일을 경량화된 방식으로 전달
Metricbeat : 시스템과 서비스에서 메트릭을 수집 ( CPU, 메모리, Redis , NGINX 등 다양한 시스템 서비스 통계를 전달 )
Packetbeat : 호스트와 컨테이너의 데이터를 전송하는 경량화된 네트워크 패킷 분석기
Winlogbeat : windows 이벤트로그를 스트리밍
Auditbeat : Linux 감사 프레임워크 데이터를 수집하고 파일 무결성 모니터링 이벤트를 스트리밍
Heartbeat : 활성상태를 감지 모니터링
Functionbeat : 클라우드 서비스 제공자의 데이터를 수집 / 전송 모니터링
출처
https://www.youtube.com/watch?v=bH0tw5aKxK8
'개-발 > Infra' 카테고리의 다른 글
[Docker] 도커 이미지 그룹화 ( label , network ) (0) | 2023.05.29 |
---|---|
[Elastic] Docker + Filebeat 설치 (0) | 2023.05.24 |
[Elastic] Docker Kibana 토큰 생성 및 설정 (2) | 2023.05.24 |
[Elastic] Elastic Stack(ELK Stack) 설치 (0) | 2023.05.19 |
[H2] h2 db연결방법 (H2 웹 콘솔) (0) | 2022.12.07 |