키바나는 기본적으로 포그라운드 실행으로 되어있다... 찾아보니 node와 pm2를 이용하여 백그라운드 실행하는 방법이 있어 진행했다.

 

노드를 이용하여 진행하므로 노드와 관련되어 세팅이 먼저 진행되어야한다.

1. nvm 설치

참고: https://github.com/nvm-sh/nvm 

위의 참고 사이트로 들어가면 nvm를 설치하는 방법이 쓰여있다.
curl 또는 wget으로 받으면 된다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

nvm 실행

 . ~/.nvm/nvm.sh

 

2. Kibana에서 사용하는 node의 버전 세팅

다른 버전의 node는 실행되지 않는다고 한다.

위치 : kibana폴더/package.json

현재 확인한 버전은 16.16.0이다.

다운로드

nvm install 16.16.0

 

돌아가는지 확인하는 방법은 다음과 같다.

cd kibana폴더
nvm run 16.16.0 ./src/cli/cli.js

위 명령어가 오류 없이 돌아가면 된다.

위 명령어에서 확인할 수 있듯이 실행하는 파일은 cli.js라는 파일이다.

 

+. 오류

모듈이 없다는 내용의 node메시지가 나오면서 실행이 안되는 경우가 있다.

해당경우에는 압축파일이 제대로 안풀렸거나 하는 경우라 키바나를 지워서 다시 설치하거나 압축파일을 다시 해제하여 덮어쓰기하는 것을 제안한다.

 

3. pm2 설치

npm install -g pm2

 

4. 백그라운드로 실행하기

pm2 start ./src/cli/cli.js --name kibana

이제 위와 같은 명령으로 실행하면 백그라운드로 실행된다.

결과 화면은 다음과 같다.

 

5. 실행 파일 만들기

배시 명령어로 실행을 자동 세팅하기 위해 해당 파일을 만들었다.

sh start.sh
===내용===
#!/bin/bash

pm2 delete kibana
pm2 start ./src/cli/cli.js --name kibana

혹시 이전에 돌아가는 kibana 가 있을 수도 있기에 삭제후 생성으로 제작하였다.

'Open Source > Elasticsearch' 카테고리의 다른 글

Elasticsearch 오류 정리  (0) 2022.08.19
Kibana AWS 설치 및 초기 세팅  (0) 2022.08.18
AWS EC2에 Elasticsearch 설치하기  (0) 2022.08.18

1. vm.max_map_count 에러

참고: https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html 

sudo sysctl -w vm.max_map_count=262144

문서 추가 수정

 vi /etc/sysctl.conf
 아래 내용 추가
 vm.max_map_count=262144

시스템 적용

sudo sysctl -p

 

2. Elasticsearch 접근이 되지 않는 오류

https://(ip주소):9200

1. http가 아닌 https로 접근해야한다.

2. 키바나를 제외하고 접근이 안되는 오류에 대해 검색했을 때 가장 많이 뜨는 이유는 elasticsearch폴더/config/elasticsearch.yml 파일에 기본세팅에서 xpack.security.enabled관련된 부분이 true로 되어 있기 때문이라고한다. 하지만 해당 값을 false로 바꾸면 키바나에서 접근이 되지 않는다. 때문에 다른 해결방식을 찾아보았다.

discovery.seed_hosts: ["127.0.0.1", "[::1]", "localhost", "0.0.0.0"]

elasticsearch.yml파일에 접근 호스트에 관련된 값들을 모두 넣었더니 아래와 같이 접근이 되기 시작하였다.

여기에서도 계정정보를 입력하면 확인할 수 있다.(elastic 계정 등)

3. elasticsearch 터미널에서 로컬로 접근하기

보안처리 때문에 password를 입력하여야 한다.

curl --cacert ./elasticsearch-8.3.3/config/certs/http_ca.crt -u "elastic:<비밀번호>" -X GET https://localhost:9200/

'Open Source > Elasticsearch' 카테고리의 다른 글

Kibana, PM2로 백그라운드 실행  (0) 2022.08.20
Kibana AWS 설치 및 초기 세팅  (0) 2022.08.18
AWS EC2에 Elasticsearch 설치하기  (0) 2022.08.18

1. 설치

설치한 버전은 작성일(22.8.18)기준으로 가장 최신버전인 8.3.3 이다.

설치 참고(https://www.elastic.co/guide/en/kibana/8.3/targz.html)

curl -O https://artifacts.elastic.co/downloads/kibana/kibana-8.3.3-linux-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/kibana/kibana-8.3.3-linux-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf kibana-8.3.3-linux-x86_64.tar.gz

설치 방식은 Elasticsearch와 유사 하다.

압축을 푼 후 생성되는 폴더는 kibana-8.3.3으로 해당 디렉토리는 $KIBANA_HOME이 된다.

구성은 아래와 같다.

 

bin  config  data  LICENSE.txt  logs  node  node_modules  NOTICE.txt  package.json  plugins  README.txt  src  x-pack

 

2. 기본 설정 및 파일 수정

외부 접근을 허용해 주기 위해 다음과 같이 진행하였다.

cd kibana-8.3.3
vi config/kibana.yml

kibana.yml 파일 수정

server.port: 5601
server.host: "0.0.0.0"

server.host의 값이 기본 세팅이 localhost로 되어 있는데 해당 값을 "0.0.0.0"으로 수정되어야 한다.

 

3. 키바나 실행

초반 키바나 설치 삭제만 여러번하고 나서 오류들을 찾아보던 중 ELK가 생각보다 높은 사양으로 돌아가고 현재 사용하던 AWS서버의 사양에 돌아가지 않는다는 것을 깨달았다....

권장 사양 참조 : https://www.google.com/search?q=elasticsearch+%EA%B6%8C%EC%9E%A5+%EC%82%AC%EC%96%91

 

또한 OS별로 지원되는 ES와 Kibana 사양이 다르니 참고 해야한다. (https://www.elastic.co/kr/support/matrix)

 

위에 내용대로 새로운 AWS 서버에 설치하고 나니 Elasticsearch와 키바나가 실행되었다.

 

실행하고 아래 주소 접근하면 된다.

1. http://(ip주소):5601

2. 또는 키바나는 실행했을 때 뜨는 링크(http://(ip주소):5601/?code=(랜덤6자리))로 접속해도 된다.

키바나를 처음 실행 했을 때, 설정 안내문

위의 링크로 접근이 되지 않으면 먼저 방화벽을 확인해보아야한다. 해당 포트인 5601포트가 열려 있어야한다. 포트여는 내용은 생략한다.

 

접속하면 토큰값을 입력하라는 안내문구를 볼 수 있다. 해당 토큰은 Elasticsearch를 처음 실행했을 때 뜨는 토큰을 넣어주면 된다.

ℹ️  Configure Kibana to use this cluster:
• Run Kibana and click the configuration link in the terminal when Kibana starts.
• Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
<kibana token>

1번으로 접근했을 때는 6자리 숫자를 입력해주는 단계를 한번 더 거친다. 해당값은 키바나 창에서 볼 수 있다.

키바나 실행한 곳에서 확인할 수 있다.

위의 토큰 문구에서 확인할 수 있듯 토큰값을 입력하는 제한시간이 30분이므로 주의하자.

 

필자는 키바나 설치하고 다른 테스트 중에 다시 압축을 풀어서 config 폴더의 kibana.yml 파일을 덮어씌워버리는 실수를 해버렸다.. 복사를 해두던가 했어야 했는데 그대로 날려서 토큰을 재발급 받았어야했다.... 관련내용은 다음 글에 작성하려한다.

 

위에 과정 후 로그인이 뜨는데 처음에 생성된 사용자 값은 Elasticsearch에서 복사해두었던 토큰값과 같이 있다.

ℹ️  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):
<암호>

위내용은 id(user name): elastic pw:<암호> 가 된다.

해당값으로 접근하면 아래와 같이 확인할 수 있다.

'Open Source > Elasticsearch' 카테고리의 다른 글

Kibana, PM2로 백그라운드 실행  (0) 2022.08.20
Elasticsearch 오류 정리  (0) 2022.08.19
AWS EC2에 Elasticsearch 설치하기  (0) 2022.08.18

검색엔진 시스템을 구축하기 위해 사용한 Elasticsearch의 설치 과정을 기록한다.

 

Elasticsearch 공식 홈페이지에서 한글판 가이드를 보았는데, 버전이 5.4 였다..

해당 버전 가이드를 보면서 JDK 부터 설치해야 한다고 하길래 검색하던 중 Elasticsearch 7.0 버전부터는 필요한 open-jdk가 포함되어있어 설치를 먼저 진행하지 않아도 된다고 한다. (권장 JDK 버전 정보 : https://www.elastic.co/kr/support/matrix#matrix_jvm )

가이드를 찾아보니 최신 버전의 가이드는 영어로 버전 8.3까지 나와있다. [ 링크 https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html ]

해당 글을 작성할 때 v8.3.2로 나와있어 해당 버전으로 작업하였다.

추가적으로 Elastic 가이드북( https://esbook.kimjmin.net/02-install/2.2/2.2.1-download-install )을 참고하여 실행파일을 만들어 사용하였다.

1. 설치

압축파일 설치

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.2-linux-x86_64.tar.gz

2. 해시 검증

- 해당 과정은 파일이 제대로 받아졌는지 확인하는 기능이라고 보면 된다.

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.2-linux-x86_64.tar.gz.sha512
$ shasum -a 512 -c elasticsearch-8.3.2-linux-x86_64.tar.gz.sha512
-- 결과
elasticsearch-8.3.2-linux-x86_64.tar.gz: OK

3. 압축 풀기

tar -xzf elasticsearch-8.3.2-linux-x86_64.tar.gz

4. 실행

cd elasticsearch-8.3.2/
./bin/elasticsearch

여기서 elasticsearch-8.3.2 폴더는 $ES_HOME이다.

실행 종료는 Ctrl+C

 

4.1. 백그라운드 실행

-- 실행
$ ./bin/elasticsearch -d

-- 백그라운드로 실행중인 Elaticsearch 프로세스 검색
$ ps -ef | grep elasticsearch

-- 로그
$ head logs/elasticsearch.log

-- 종료
$ kill {프로세스ID}

종료 시 사용하는 프로세스 ID는 프로세스를 검색했을 때 확인할 수 있다.

 

-p {파일명} 을 사용하면 실행한 프로세스 ID를 특정 파일에 저장할 수 있다. 이를 이용하여 실행파일, 종료 파일을 만들 수 있다.

-- 백그라운드 실행 후 프로세스 ID 저장
$ ./bin/elasticsearch -d -p es.pid
-- 파일 내용확인
$ cat es.pid

실행 파일 start.sh

./bin/elasticsearch -d -p es.pid

종료 파일 stop.sh

kill `cat es.pid`

위 두 파일의 권한은 실행할 수 있도록 755로 변경해둔다.

$ echo './bin/elasticsearch -d -p es.pid' > start.sh
$ echo 'kill `cat es.pid`' > stop.sh
$ chmod 755 start.sh stop.sh

 

주의!!

Elasticsearch를 처음 실행했을 때 토큰값이 여러가지 뜬다. 해당 값을 복사해두자. 없으면 나중에 새로 발급받고 수정해야해서 복잡해진다..!

'Open Source > Elasticsearch' 카테고리의 다른 글

Kibana, PM2로 백그라운드 실행  (0) 2022.08.20
Elasticsearch 오류 정리  (0) 2022.08.19
Kibana AWS 설치 및 초기 세팅  (0) 2022.08.18

+ Recent posts