본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


엘라스틱서치(Elasticsearch)

윈도우 엘라스틱서치 + MongoDB 연동(window elasticsearch Mongodb monstache)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2021. 5. 28.

* 간단하게 정리한 내용 입니다!

 

#1. 엘라스틱 설치

1. 엘라스틱 서치 윈도우 버전(zip)을 받습니다.

2. 압축을 풉니다.
3. 압축을 푼 디렉토레에서 bin 디렉토리를 찾은 뒤에 elasticsearch.bat를 실행 합니다.
  * 외부접속을 허용 하려면 config 디렉토레에서 elasticsearch.yml 파일에 아래와 같이 내용을 추가 합니다.

cluster.name: 원하는클러스터이름
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1", "[::1]"]

 

#2. 몽고 DB설치

4. 몽고DB 윈도우 버전을 받습니다.
5. 압축을 풉니다.
6. bin 디렉토리로 이동하여 리플리카셋(replica set)  설정을 합니다. 몬스태쉬(Monstache)는 리플리카셋에서만 동작하도록 되어 있습니다.

   * 2개의 프로세스가 동작 해야 하므로 일반 커맨드 콘솔(CMD)은 2개를 실행하여 명령어를 각각 입력 하도록 합니다.

   * 명령어 실행 환경 : 일반 커맨드 콘솔(CMD) 2개에서 각각 입력

#마스터 포트는 27017 입니다.
mongod.exe --bind_ip=0.0.0.0 --dbpath=저장경로1 --replSet rs0 --port 27017

#슬레이브 포트는 27018 입니다.
mongod.exe --bind_ip=0.0.0.0 --dbpath=저장경로2 --replSet rs0 --port 27018

mongod.exe파일은 다운받은 몽고DB 윈도우버전 파일을 압축을 풀면 bin 디렉토리에 존재 합니다.

위 명령어에서 유의해야 되는 점은 저장경로는 서로 달라야 하며 반드시 존재해야 된다는 점 입니다.

 * bind_ip를 0.0.0.0으로 하는 경우 외부접속이 가능합니다.(내부로 하려면 127.0.0.1)

 

7. bin 디렉토리에서 마스터 역할을 할 포트번호와 함께 몽고 클라이언트(CLI)를 실행 합니다.

   * 명령어 실행 환경 : 몽고 클라이언트(CLI)

mongo.exe --port 27017

 

8. 몽고 클라이언트(CLI, 검은색 콘솔창)가 실행되면 아래 명령어를 입력합니다.

   * 명령어 실행 환경 : 몽고 클라이언트(CLI)

rsconf = { _id : "rs0", members : [ {_id:0, host:"127.0.0.1:27017", priority:2}, {_id:1, host:"127.0.0.1:27018", priority:1} ] };

members의 내용을 보면 고유 아이디(_id)와 함께 priority를 부여한 것을 볼 수 있습니다.

해당 아이디(_id) 값은 mongo.exe 파일을 실행 할 때 --replSet 옵션에 부여한 이름과 같은점에 유의 하여야 합니다.

마스터로 쓸 몽고DB는 포트가 27017입니다.

가장 높은순위로 부여하려면 27018보다 priority 값을 높게 주면 됩니다.

 

*** 레플리카 멤버 호스트 변경 방법 ***

// 레플리카셋 설정정보 받아오기
cfg = rs.conf()

// 설정변경
cfg.members[0].host = "호스트명:새 포트번호"

// ... 레플리카셋 멤버수만큼 전부 수정
// reconfig 실행. 붕뜬 상태이므로 force 옵션을 줘야 함.
> rs.reconfig(cfg, {force: true})

 

9. 설정된 내용을 이제 각 DB에 적용 하도록 합니다.

   * 명령어 실행 환경 : 몽고 클라이언트(CLI)

rs.initiate(rsconf);

 

10. 30초 정도 지난 후에 아래 명령어를 입력 합니다.

   * 명령어 실행 환경 : 몽고 클라이언트(CLI)

rs.status();

 

#3. 몬스테쉬(Monstache)설치 ─

11. 몬스테쉬 윈도우 버전을 받습니다.
12. 압축을 풉니다.
13. config.toml 파일을 만들어 줍니다.
14. 아래 내용을 채워 줍니다.

mongo-url = "mongodb://127.0.0.1:27017/대상DB"
elasticsearch-urls = ["http://127.0.0.1:9200"]
elasticsearch-max-conns = 4
elasticsearch-max-seconds = 5
elasticsearch-max-bytes = 8000000
dropped-collections = false
dropped-databases = false

namespace-regex = "^대상DB" #포함 할 패턴
#namespace-exclude-regex = '^대상DB.포함하지않을컬렉션패턴*'
direct-read-dynamic-exclude-regex = '^대상DB.포함하지않을컬렉션패턴*'
direct-read-namespaces = ["대상DB.컬렉션"]

[logs]
info = "로그위치/info.log"
trace = "로그위치/trace.log"
error = "로그위치/error.log"
warn = "로그위치/warn.log"

 

15. 압축을 푼 몬스테쉬 디렉토리에서 monstache.exe 파일이 있는 곳 까지 이동한 후에 아래 명령어를 입력하여 줍니다.

   * 명령어 실행 환경 : 일반 커맨드 콘솔(CMD)

monstache.exe -f 파일이 있는곳/config.toml

 

간단하게 알아본 윈도우 엘라스틱서치 + 몽고DB 연동 방법 이였습니다.

궁금한점이나 틀린부분은 언제든 연락주세요!

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글