es 실행해보기

LEE_DEV_LOG·2022년 2월 5일
0

es 7 버전에서는 jdk 를 별도로 제공하여 자바를 다운로드 할 필요가 없다.

실제 es 서버를 실행시키는 것은 bin 폴더 내의 elasticsearch 파일이다.
아래와 같이 es 실행 시 cluster와 node 이름을 지정하면서 실행이 가능하다.
이렇게 실행하면 yml 보다 우선한다.
bin/elasticsearch -E cluster.name=my-cluster -E node.name="node-1"

엘라스틱 서치에 data 라는 폴더에 데이터를 보관하게 된다. 초기 설치할 때에는 해당 폴더가 없지만 서버를 띄우면 해당 폴더가 생성된다.

포트는 9200번 포트와 9300번 포트를 점유하게 된다.
엘라스틱 서치는 항상 클러스터로 구성이된다.
노드 1개를 실행하더라도 하나의 클러스터가 만들어지고 노드는 클러스터 내에서 구성된다.
9200 http 를 사용하여 클라이언트와 통신
9300 tcp 를 사용하여 다른 노드와 통신한다.

서버 실행중인 것 확인

sudo lsof -i:5601 : 특정 포트 번호가 실행 중인지 확인한다
curl 명령어를 사용하여 확인한다.
curl: 리눅스 커맨드창에서 http 통신 요청을 했을 때 리턴되는 값을 확인 할 수 있다.
curl -X GET localhost:9200

elasticsearch.yml 파일

node: 디폴트는 host 주소
cluster: 디폴트는 elasticsearch
node.name: "node-1"
cluster.name: "cluster-1"
path.data: 데이터를 저장할 경로
path.data 의 디폴트 경로는 홈경로 밑에 es 설치된 폴더에 저장이 됨
network.host: 이 옵션을 설정해서 외부에서 접속이 되도록 해야함
discovery.seed_host: 클러스터링 구성을 위해 바인딩할 다른 호스트를 찾을 때 찾을 네트워크 주소
cluster.initial_master_nodes: 마스터 노드를 찾을 때 여기에 있는 노드 들을 마스터 후보로 찾음
transport.port
Elasticsearch 노드들 끼리 서로 통신하기 위한 tcp 포트를 설정한다. 디폴트는 9300이며, 포트가 이미 사용중인 경우 9300~9399 사이의 값을 차례대로 사용한다.

로그 파일

/home/jongwook/es-711/logs 해당 경로에 로그 파일 저장됨

서버 실행/중지 자동화 하기

-d
엘라스틱 서치를 데몬으로 띄운다.(백그라운드 실행)
그래서 아무것도 나오지 않는데
logs/es-cluster-1.log 보면 서버 실행 로그가 보이게 된다.
tail 이라는 명령어에 -f 옵션을 주면 실시간 로그를 계속 붙이면서 보여준다.

ps -ef | grep elasticsearch
kill 1504 (해당 프로세스 죽이기)

bin/elasticsearch -d -p es.pid
이렇게 실행하게 되면 es.pid 파일이 생성되고 여기에 PID 가 기록 되게 된다.
kill cat es.pid
vi start.sh, vi stop.sh 를 생성한다.

chmod 755 *.sh 로 권한 주기
./start.sh es 서버 실행하기
./stop.sh es 서버 종료하기

환경설정하기

jvm.options
es 가 사용할 자바의 힙메모리를 설정한다.
자바의 오브젝트 포인터에 한계 값이 있기 때문에 30기가 이상 설정하지 않는 것이 좋다.
./config/jvm.options 파일에 해당 내용 추가한다.
-Xms1024mb
-Xmx1024mb

network.host: local, site, global 과 같은 예약어를 설정하는 것이 좋다.
local : 로컬 호스트(127.0.0.1) 과 같다. 디폴트 값
site: 로컬 네트웤 ㅡ주소로 설정된다. 실제로 클러스터링 구성 시 주로 사용하는 설정
global: 네트워크 외부에서 바라보는 주소로 설정한다.

참조한 링크 : https://ela.st/es-resource-kr

curl 명령어 날려보기

curl -XPOST 'localhost:9200/focs-application/application/_search' -H 'Content-Type: application/json' -d '{
  "query": {
    "match_all": {}
  },
  "size": 20
}'
profile
LEE_DEV_LOG

0개의 댓글