ELK stack(6)
-
[검색엔진 라이브서치 개발과정 정리] Logstash JDBC 활용 및 ES plugin 설치
Logstash는 기존 RDBMS의 데이터를 편하게 ES에 입력하기 위해 JDBC 플러그인을 지원한다. 플러그인의 설치는 아래의 명령어를 따르면 손쉽게 설치가 가능하다. ./bin/logstash-plugin install logstash-input-jdbc # logstash-input-jdbc 플러그인 설치 Jdbc 플러그인이 설치되면 자신이 사용하는 RDBMS의 커넥터 jar 라이브러리가 있어야 한다. mySQL의 경우 mySQL-connector 5.1.4 라이브러리를 사용하면 특별한 문제 없이 사용가능하다. 라이브러리를 받아서 압축을 풀고 logstash의 lib 폴더에 jar파일을 복사해주면 된다. 이렇게 하면 logstash.conf 에서 JDBC 플러그인을 통해 직접 RDBMS의 데이터에 ..
2019.05.27 -
[검색엔진 라이브서치 개발과정 정리]Curl 을 통한 기본적인 확인
앞서 말했듯이 ES는 REST 통신을 지원한다. 따라서 curl 커맨드 기능을 통해 기본적인 명령어를 수행하고 결과를 확인할 수 있다. 우선 REST API의 명령어는 다음과 같다. GET : 조회 POST : 저장 PUT : 수정 DELETE: 삭제 ES의 REST API URL 포맷은 다음과 같다. http://{Node:PortNumber}/{Index}/{Type} Index는 소문자여야 한다. Type은 Index와 마찬가지로 소문자를 권장한다. 이러한 문법 뒤에 JSON이나 명령어를 통해 인덱스를 생성, 매핑하거나 검색을 할 수 있다. Curl –XPUT http://localhost:9200/myindex -d ‘{ “settings”: { “index”:{ “number_of_shards”..
2019.05.22 -
[검색엔진 라이브서치 개발과정 정리]ELK stack의 설정 - Elasticsearch
ES, logstash, kibana는 각각 yml 파일을 통해 설정을 각자의 필요에 맞게 바꿀 수 있으며, 각각 jvmoption.yml 을 통해 jvm 관련 환경설정 까지 바꿀 수 있다. 또한 linux의 경우 루트계정을 이용하여 ES에 할당할 파일크기, 권한, 메모리크기 등을 바꿔줘야 하는 부분도 있다. 이러한 부분을 살펴보고자 한다. 먼저 ES와 관련된 설정이다. · max file descriptors 늘려주기 o 설명 Mac OS 및 Linux만 해당 (Windows는 불필요) Elasticsearch를 구동중인 사용자의 open files descriptors를 65536까지 올려야 함 RPM and Debian 패키지의 경우 default로 65536으로 설정되어 있으므로 이 설정이 불필요..
2019.05.20 -
[검색엔진 라이브서치 개발과정 정리]ELK stack의 설치
ES는 독립적으로 활용되기 보다는, 보조 툴과 함께 사용된다. 대표적으로 ELK stack으로 불리는데, Elasticsearch와 logstash, Kibana 라는 세 가지 툴의 조합이다. Logstash는 로그수집툴이라고 볼 수 있다. 필요한 데이터를 ES에 넣는 역할이다. Kibana는 웹에서 ES를 관리하는 모니터링 툴이다. 둘 다 ES를 필요로 하는 서비스이며, 특히 logstash의 경우 JSON파일이나 JDBC 플러그인을 통해 직접 ES와 RDBMS를 연동할 수 있다는 장점이 있다. Kibana의 경우 mySQL의 TODO 처럼 ES에 적용할 명령어에 대한 dev console을 지원하며, 저장된 데이터를 시각적으로 표현하고, ES의 node 상태에 대한 모니터링을 지원한다. 두 가지 다 ..
2019.05.17 -
[검색엔진 라이브서치 개발과정 정리]ElasticSearch 와 기존 RDBMS 와의 비교
ES는 기본적으로 No-Sql과 비슷한 구조를 지니고 있다. 따라서 데이터 무결성에 대한 보장이 되지 않는다. 실제로 ES를 활용하는 곳들은 데이터의 성격에 따라서 원본 데이터를 RDBMS에 따로 보관하며 주기적으로 ES의 데이터를 동기화하는 방식을 활용하기도 하는데, 이는 원 데이터에 대한 무결성이 중요한 경우에 그렇다. 그렇다고 해서 ES가 항상 데이터 손실이 일어나는 것은 아니다. 다만 RDBMS의 데이터간 관계를 통해 무결성을 확보하는 구조가 아닐 뿐이다. ES SQL(RDBMS) MongoDB(no-sql) 색인(index) 데이터베이스 데이터베이스 샤드(shard) 샤드(shard) 샤드(shard) 매핑/타입(mapping/type) 테이블 컬렉션 문서(document) row documen..
2019.05.16 -
[검색엔진 라이브서치 개발과정 정리]ElasticSearch의 개요
1. Elasticsearch 의 개요 Elasticsearch(이하 ES)는 아파치 루쉰 기반의 검색엔진으로 2010년에 개발되었다. Full-text에 대해 실시간 분산 검색/분석 기능을 제공하며, RESTful 인터페이스를 제공한다. 그러나 실제로는 Near Realtime으로 문서를 색인화 하는 시점부터 검색이 가능해지는 시점은 약간의 대기시간(대개 1초)이 있다. Java로 개발되었으며, 내부적으로 main()메소드를 통해 구동이 된다. 따라서 JVM위에서 작동하기 때문에 jdk1.8 이상의 환경을 필요로 한다. 이러한 부분 때문에 다양한 플랫폼에서도 구동하기가 수월하다. ES의 기본적인 기능은 이러하다. 1. ES는 정형, 비정형 데이터에 대하여 페타 바이트급까지 스케일 업이 가능하다. 2. ..
2019.05.16