Elastic Search 설치하기
ES 7.4 버전 기준입니다.
사전 준비 사항
Elastic Search(ES) 는 Java 로 개발되었으므로 사전에 JDK 를 설치해야 하며 버전별 JVM 지원 매트릭스는 https://www.elastic.co/support/matrix#matrix_jvm 에서 볼수 있습니다.
ES 6.4 이하를 사용할 경우 JDK 1.8를 ES 6.5 이상을 사용할 경우는 JDK 11 을 권장합니다.
설치
apt 나 yum 같은 패키지 매니저를 통한 설치보다는 ES 사의 홈페이지에서 직접 다운받거나 docker 로 설치하는 것을 권장합니다.
ES 홈페이지에서 설치 파일을 다운로드 받습니다. Linux 에 설치할 경우 아래의 명령어로 콘솔에서 다운받으면 됩니다.
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-linux-x86_64.tar.gz
압축을 해제 합니다.
tar zxvf elasticsearch*.tar.gz
ES 디렉터리로 이동한 후에 에디터로 config 폴더 밑에 설정 파일을 연후에 수정합니다.(vi config/elasticsearch.yml)
단일 노드에서 기본 설정으로 사용할 경우는 변경할 필요가 없습니다. ES 가 사용할 포트(기본 9100) 을 변경할 경우 http.port 항목을 수정합니다.
## node 설정. 하나만 사용할 경우 무시 #cluster.name: myES_Cluster #node.name: ESNODE_CYR #node.master: true #node.data: true # 기본 bind 호스트 (transport.host 도 설정할 것) # 기본 localhost # network.host: _local_,_enp5s0f0:ipv4_, _enp5s0f1:ipv4_ http.port: 9100 # node 간 데이타 전송용 포트 # 기본 9300 ~ 9400 # transport.tcp.port: 9300
vi config/jvm.options 를 실행해 ES 를 구동할 때 사용할 Java VM 옵션을 설정합니다. 아래는 최소/최대 Heap Size 를 4G 로 설정하는 예제입니다.
-Xms4g -Xmx4g
설정이 끝났으면 ES 를 시작합니다.
./bin/elasticsearch
프로세스의 정상 구동 여부를 jps 명령어로 확인해 봅니다.
$ jps | grep Elasticsearch 10044 Elasticsearch
Elasticsearch 의 맨 앞자는 대문자여야 합니다.
- ES 가 설치된 서버의 9200 포트로 연결해서 Elastic 정보가 표시되는지 확인합니다.
데몬으로 구동한 ES를 종료할 경우 다음 스크립트를 사용합니다.
jps | grep Elasticsearch | awk '{print "kill -TERM "$1}'|sh -x
설정
Nori 한글 형태소 엔진 설치
노리 플러그인을 설치합니다.
./bin/elasticsearch-plugin install analysis-nori
ES 를 재시작합니다.
jps | grep Elasticsearch | awk '{print "kill -TERM "$1}'|sh -x ./bin/elasticsearch
nori plugin 의 로딩 여부 확인합니다.
$ grep nori logs/elasticsearch.log [2019-10-31T11:33:29,272][INFO ][o.e.p.PluginsService ] [CCG05cR] loaded plugin [analysis-nori]
daemon mode로 구동
ES 는 서비스로 계속 구동시켜야 하므로 데몬 모드로 동작시키는 게 필요합니다.
ES 구동시 -d 옵션을 주면 daemon mode 로 실행할 수 있습니다.
$ ./bin/elasticsearch -d
Windows Service 등록
Windows 에서 사용할 경우 Windows 의 Service 로 등록하려면 다음 명령을 사용하세요.
.\bin\elasticsearch-service.bat install
Windows 서비스로 사용시 JAVA_HOME 환경 변수를 못 찾아서 기동이 안 되는 경우가 있습니다.
.\bin\elasticsearch-service.bat manager
이럴 경우 위 명령어로 서비스 매니저를 띄우고 Java 탭에서 JVM 의 경로를 절대 경로로 설정해 주면 됩니다.
Trouble Shooting
bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
transport.host 와 network.host 가 잘못 설정되었을 경우 발생합니다
See Also
Ref
- https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
- elasticsearch로 로그 검색 시스템 만들기 - Naver D2
- https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html