엘라스틱서치 실무가이드 책 바탕으로 공부를 진행중. 공부하면서 삽질하거나 자세하게 나오지 않은 내용을 구현한 부분에 대해서 글을 쓸 계획입니다.

  1. 개발 환경

    • CentOS 7
  1. 설치 : 책에 설치에 대해 자세하게 나와 있진 않아 엘라스틱서치 공홈 참조.

    1) 링크 : https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

    2) 링크대로 진행 후 방화벽 해제 작업

firewall-cmd —permanent —zone=public —add-port=9200/tcp
firewall-cmd —reload
firewall-cmd —list-ports
  1. 설정 : 책에 나온 설정
cluster.name: javacafe-cluster
node.name: javacafe-node1
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
node.master: true
node.data: true
path.repo: [“/es/book_backup/search_example”, “/es/book_backup/agg_example”]
=> 책 대로 했으나, network.host 설정 시 문제 발생
~
  1. 설정 문제 해결

    1) /etc/elasticsearch/elasticsearch.yml 파일 설정 추가

    bootstrap.memory_lock: true

    2) /etc/security/limits.conf 파일 설정 추가

    elasticsearch soft memlock unlimited
    elasticsearch hard memlock unlimited

    3) /usr/lib/systemd/system/elasticsearch.service 파일 설정 추가

    [Service]
    LimitMEMLOCK=infinity

    4) 설정 후 데몬 리로드

    systemctl daemon-reload
  2. 책에 나온대로 PUT 했으나 에러 발생

    1) es 폴더 소유주는 elasticsearch 여야 함.

    2) Content-Type 표기 필요 : 참조 (https://kkyunstory.tistory.com/136)

    curl -XPUT 'http://localhost:9200/_snapshot/javacafe' -d '{"type":"fs","settings":{"location":"/es/book_backup/search_example","compress":true}}' -H 'Content-Type:application/json’