Elasticsearch ( 엘라스틱서치 ) 소개
및 설치하기 , Clustering(ES 5.x)
이번에 소개해드릴 것은 바로
엘라스틱 서치! 입니다.
공식홈페이지 : https://www.elastic.co/kr/products/elasticsearch
위키백과에서는 일래스틱서치를 아래와 같이 설명하고 있습니다.
일래스틱서치(Elasticsearch)
는 루씬 기반의 검색 엔진이다. HTTP 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테넌트 지원 전문 검색 엔진을 제공한다. 일래스틱서치는 자바로 개발되어 있으며 아파치 라이선스 조항에 의거하여 오픈 소스로 출시되어 있다. 공식 클라이언트들은 자바, 닷넷(C#), PHP, 파이썬, 그루비 등 수많은 언어로 이용이 가능하다.[2] 일래스틱서치는 가장 대중적인 엔터프라이즈 검색 엔진으로 그 뒤를 루씬 기반의 Apache Solr가 잇는다.[3]
일래스틱서치는 로그스태시(Logstash)라는 이름의 데이터 수집 및 로그 파싱 엔진, 그리고 키바나(Kibana)라는 이름의 분석 및 시각화 플랫폼과 함께 개발되어 있다. 이 3개의 제품들은 연동 솔루션으로 사용할 목적으로 설계되어 있으며 이를 "일래스틱 스택"(Elastic Stack, 과거 이름: ELK 스택)으로 부른다.
그럼 설치를 시작해보자
1. Elasticsearch 설치
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.tar.gz
원하는 버전의 ES를 다운 받습니다.
이후 압축해제를 해줍시다.
tar xvfz elasticsearch-x.x.x.tar.gz
이후 필요한 노드 수 만큼 복사를 합니다.
cp -r elasticsearch-x.x.x elasticsearch-...
2. Elastic HQ (plugin) 설치 (안해도 됩니다)
yum install pcre pcre-devel
yum install zlib*
yum install openssl openssl-devel
이후 공식 홈페이지에서 nginx을 설치해 줍시다.
HQ를 실행하기 위해서
http://nginx.org/en/download.html > 원하는 버전 다운로드.
또는
wget http://nginx.org/download/nginx-x.x.x.tar.gz
wget https://github.com/royrusso/elasticsearch-HQ/tarball/master
(hq 다운로드)
다운로드를 마쳤다면 압축해제를 진행하자
1.4.4 기준으로 작성
tar xzf nginx-1.4.4.tar.gz -> 압축해제
cd nginx-1.4.4 -> 해당 폴더로 이동
./configure
make
make install
다운받은 hq 압축해제 후 nginx 설정 파일 수정(기본경로/conf/nginx.conf)
location / {
root /usr/share/elastichq/;
index index.html;
}
위 코드 추가 후 nginx 실행
$ /usr/local/nginx/sbin/nginx ( 설치경로)
3. 설정파일 수정
원하는 툴로 열어줍시다.
vi elasticsearch-5.x.x/config/elasticsearch.yml
아래와 같이 수정하여 줍니다.
cluster.name: cluster-test // 클러스터 네임은 각 노드가 같아야 합니다.
node.name: master // 마스터 설정 (true/false)
node.name: data-1 // 노드 설정 (true/false)
node.name: data-2 // 클러스터 별로 각 용도에 맞게 설정합니다.
network.host: 0.0.0.0 // 서버 환경에 따라 binding 할 ip를 넣어줍니다.
http.port: 9200~2 // http 포트 지정
http.enabled: true
http.cors.enabled: true // 5.x 버전의 경우에는 웹플러그인 기능이 막혀
http.cors.allow-origin: // 있으므로 별도의 웹서버를 통해 플러그인을
// 따로 동작시켜야함 이때를 위해 cors 설정
transport.tcp.port: 9300 // 클러스터를 연결할때의 포트를 지정
discovery.zen.ping.unicast.hosts: // 각 연결한 노드의 주소를 지정
["xxx.xxx.xxx.2:9300", xx.xxx.xxx.3:9300"] // 5.x 버전의 경우에는 malticast
// 설정 필요 없음
*추가적으로
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0
transport.host: localhost
# Set a custom port for HTTP:
#
http.port: 9400
# 위 방법으로 설정시 외부 접속을 허용합니다.
환경 설정까지 마치셨다면 이젠 끝났습니다.
실행만 하면 됩니다!
4. 실행
Elasticsearch의 보안정책으로 root로는 실행할 수 없다고 합니다.
또한 Jvm 설정은 config/ 안에 jvm.options 에서 수정할 수 있습니다.
해당 경로로 이동 후
$ cd elasticsearch-5.x.x/bin/
실행을 합니다.
데몬으로 실행!
$ ./elasticsearch -d
실행화면
실행이 되었다면 사용 방법도 알아봐야 겠죠?
사용방법은
깃허브 위키북 에서 엘라스틱 서치를 참고 하시길 바랍니다.
https://github.com/wikibook/elasticsearch
이상으로
[Elasticsearch/엘라스틱서치] Elasticsearch Clustering 버전 5.5 소개 및 설치하기
포스팅을 마치겠습니다.