2년만에 올리게 되는 elasticsearch 가이드입니다.
지난 번 올렸던 것은 윈도우 환경에서 직접 설치를 하고, 한국어형태소 분석기도 elastcsearch에 탑재가 되어 있지 않았기 때문에 별도로 설치해야 했습니다.
하지만, 최신 버전의 elasticsearch 에는 자체적으로 nori 라는 한국어형태소 분석기를 탑재하고 있기 때문에, 기존처럼 번거롭게 설치하지 않아도 쉽고 빠르게 설치가 가능합니다.
그리고 docker 라는 소프트웨어를 이용하게 되면 가상으로 서버를 올려 설치가 가능하기에 더욱 쉬워집니다.
혹시 이전에 작성한 글을 보고 찾아오시는 분들이 계시면 이 게시글을 참고하시면 조금더 쉽게 구축 하실 수 있을 것 같습니다.
현재는 기존에 글 작성할 때와는 다르게 사용환경이 mac 인 관계로 mac 에서 작성하지만,
윈도우에서도 윈도우용 docker를 설치하고 동일하게 진행하면 쉽고 빠르게 설치가 가능합니다.
윈도우에서도 윈도우용 docker를 설치하고 동일하게 진행하면 쉽고 빠르게 설치가 가능합니다.
간략하게 elasticsearch를 설치하고 구동하는 것까지 테스트를 해보겠습니다.
elasticsearch 외에도 kibana, logstash 가 같이 설치되는 버전으로 설명드리도록 하겠습니다.
# 준비사항
Docker 설치
Docker-compose 설치
Git 설치
* docker / docker-compose / git 설치는 다른 상세 블로그를 참고하여 진행해주세요.
# 설치 및 테스트
- Git Clone
Git clone 할 폴더를 만들고 명령어 수행합니다.
git clone https://github.com/deviantony/docker-elk
Git clone 한 폴더 내용을 조회해보면 docker-elk 폴더가 생겨 있음
- Docker를 통하여 elasticsearch 이미지 다운로드&빌드&실행
docker-elk 폴더에 접속하여 조회해보면 아래와 같이 여러 파일이 있습니다.
docker-compose.yml 파일이 있으므로 docker-compse 를 통해 실행 가능합니다.
docker-compose up --build 명령어 수행
아래의 이미지 같이 무언가를 마구 다운받기 시작합니다. (다운로드를 꽤나 많이 받을 것임)
전부다 다운로드 받고 나면 실행이 되고, 대충 아래 같이 복잡하게 화면이 표시되면 실행 됐다고 볼 수 있습니다.
Kibana 접속 http://localhost:5601
Elasticsearch 접속 http://localhost:9200
* 초기 ID/PW는 "elastic" / "changeme"
Ctrl + c 를 통하여 docker 실행 중지합니다.
(했는데 정상적으로 중지가 되지 않을 경우 아래 명령어 사용하여 docker 종료합니다.)
docker-compose down -v
- 비밀번호제거, nori 플러그인 설치, 인덱스 폴더 및 log 폴더 host 서버와 sync
우선 귀찮기도 하고 유료니까 비밀번호 제거부터 진행하겠습니다.
docker-elk/elasticsearch/config/elasticsearch.yml 을 열어서 xpack 관련하여 주석 처리하면 됩니다.
Nori 플러그인 설치관련 설정을 추가합니다.
docker-elk/elasticsearch/Dockerfile 아래와 같이 수정합니다.
RUN bin/elasticsearch-plugin install analysis-nori 추가
data폴더와 log폴더 host 와 동기화를 위한 설정을 합니다.
root 에 elasticsearch 라고 폴더 생성 및 docker 클라이언트에서 파일쉐어링으로 해당 폴더 추가합니다.
docker-compose.yml 파일에서 아래와 같이 volumes 부분을 수정합니다.
- /elasticsearch/data:/usr/share/elasticsearch/data
- /elasticsearch/logs:/usr/share/elasticsearch/logs
- /elasticsearch/data:/usr/share/elasticsearch/data
- /elasticsearch/logs:/usr/share/elasticsearch/logs
다시 docker-compose up --build 명령어로 docker 실행하면 아래와 같이 nori 플러그인을 내려 받는 것을 확인할 수 있습니다.
Elasticsearch 접속 http://localhost:9200
Kibana 접속 http://localhost:5601
둘다 접속해보면 비밀번호를 물어보지 않음.
Host root에 elasticsearch 폴더를 확인해보면 아래와 같이 data 와 logs 가 생겨 있는 것을 확인할 수 있습니다.
- 간단하게 Index 생성 후 nori 플러그인 동작 확인
Kibana 접속하여 (http://localhost:5601) 아래에서 세번째 있는 몽키스패너 모양 아이콘 클릭하면 테스트 쿼리 날릴 수 있는 창이 열립니다.
아래와 같이 명령어를 날려서 index 생성이 가능합니다.
PUT test
{
"settings": {
"analysis": {
"analyzer": {
"korean_analyzer": {
"tokenizer": "nori_tokenizer"
}
}
}
}
}
아래와 같이 명령어 날려서 형태소 분석기 동작을 확인할 수 있습니다.
POST test/_analyze
{
"analyzer":"korean_analyzer",
"text":"아버지가방에들어가십니다"
}
다음 게시글에서 nori + 사용자사전/유의어사전 설정 방법과 filter에 대해서 간단하게 정리하겠습니다.
사용자사전/유의어사전은 짧게 작성되나 filter 에 대한 설명 때문에 따로 게시글을 작성합니다.
아래 글을 참고해주세요.
아래 글을 참고해주세요.
댓글 없음:
댓글 쓰기