kibana 설치 및 사용법 : wsl ubuntu 22.04

Photo of author

By mimoofdm@naver.com

kibana 설치 방법과 사용법에 대해서 자세하게 설명을 드립니다. kibana 는 elasticsearch dashboard 기능을 제공하며 elastic search 검색을 할 때 UI 로서 활용됩니다. kinaba docker image 를 WSL Ubuntu 22.04에서 container 로 동작시키는 방법을 자세하게 설명드립니다.

kibana docker

kibana 설치 방법

kibana download 파일을 Elastic 회사의 Repository에서 받을 수 있습니다. 가장 먼저 받아야 하는 파일은 elastic search 검색 엔진의 PGP 키 입니다.

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.13.2-amd64.deb
shasum -a 512 kibana-8.13.2-amd64.deb 
sudo dpkg -i kibana-8.13.2-amd64.deb

두번째 shaum 구문은 kibana download 받은 deb 설치 파일이 해킹으로 인하여 변조되지 않았는지 검증하기 위해서 해쉬값을 생성해서 화면에 보여줍니다. 이 시퀀스 값과 아래의 오리지널 sha 파일을 비교하여 두 개의 시퀀스가 일치하면 해킹되지 않은 정상적인 deb 설치 파일을 다운로드 받은 것입니다.

kibana 동작 확인 툴 net-tools 설치

sudo apt-get install net-tools

apt-transport-https 설치

kibana 를 설치하기 전에 apt-transport-https debian package 를 설치합니다.

sudo apt-get install apt-transport-https

kibana download 및 설치 방법

WSL Ubuntu 22.04 환경에 직접 설치하려면 아래 명령어를 터미널에서 실행하면 됩니다.

sudo apt-get update && sudo apt-get install kibana

elasticsearch 실행하는 방법

elasticsearch 서비스를 Windows 10 WSL Ubuntu 22.04 를 시작한 후에 아래와 같이 서비스를 실행합니다.

sudo service elasticsearch start

kibana.yaml 설정하는 방법

kibana deb 패키지 설치 파일을 설치하더라도 바로 실행할 수 없습니다. kibana 는 elasticsearch 엔진과 통신을 하면서 검색을 요청하거나 검색된 결과를 받아오는 역할을 합니다. 따라서, elasticsearch 엔진이 동작하고 있는 서버의 ip 주소와 포트 번호를 kibana.yml 설정 파일에 추가해 주어야 합니다.

kibana 서버가 동작할 때 사용할 ip주소와 포트번호도 지정해야 합니다.

nano /etc/kibana/kibana.yml

elasticsearch 검색 엔진은 localhost 주소에서 포트번호 9200 번으로 동작을 하고 kibana 는 localhost 주소에서 포트번호 5601 번으로 동작을 합니다. 위 두 가지 내용은 kibana.yml 의 설정으로 추가되어야 합니다.

kibana 서비스 등록 방법

kibanan 를 Windows 10 WSL Ubuntu 22.04가 부팅된 후에 자동으로 kibana 서비스가 실행되도록 하려면 아래 명령어를 터미널에서 실행합니다.

sudo systemctl enable kibana.service

kibana 정상 동작 여부 확인 방법

kibans 프로세스는 포트번호 5601 번으로 동작합니다. netstats 를 통해서 현재 kibana 가 사용하고 있는 포트번호를 확인합니다.

netstat -na | grep 5601

kibana 를 systemd 에 등록하여 서비스로 등록하는 방법

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
sudo systemctl start kibana.service
sudo systemctl stop kibana.service

kibana docker 실행하는 방법

docker hub에서 kibana docker v8.13.2 image 를 다운로드 받습니다.

docker pull docker.elastic.co/kibana/kibana:8.13.2

아래와 같이 kibana docker 를 실행하려면 아래 명령어를 WSL Ubuntu 22.04 터미널에서 실행합니다.

kibana docker 실행방법

kibana docker 를 Windows 10 WSL Ubuntu 22.04 에서 실행하려면 kibana 8.13.2 docker image 를 docker hub 서버에서 가져와야 합니다. 아래의 명령어들을 순차적으로 실행하면 자동으로 kibana 8.13.2 docker image를 WSL 안에서 동작하는 docker image로 실행시킬 수 있습니다.

docker run --name kib01 --net elastic -p 5601:5601 -d docker.elastic.co/kibana/kibana:8.13.2

kibana docker image가 실행되면 kib01 이라는 컨테이너로 호칭됩니다. kibana docker 버전은 8.13.2 이며 elasticsearch 버전도 8.13.2 로 일치 시켜야 원활한 정상 동작이 가능합니다.

kibana docker run 실행 에러 발생 시 해결 방법

kib01 이라는 docker container가 이미 존재하는 경우에는 아래와 같은 에러가 발생합니다.

docker: Error response from daemon: Conflict. The container name “/kib01” is already in use by container “b20677bb03bf6eb960fbdec2b3376b526dd2d4939b758f8f9df3ae416f77832a”. You have to remove (or rename) that container to be able to reuse that name.

컨테이너 id가 “b20677bb03bf6eb960fbdec2b3376b526dd2d4939b758f8f9df3ae416f77832a” 인 kibana docker image가 이미 생성되었으므로 에러라는 의미입니다. 기존의 kib01을 아래 명령어를 실행하여 삭제합니다.

sudo docker rm <container_id>

kib01을 삭제하고 다시 위의 docker를 run하여 kib01을 새로 생성합니다.

sudo docker run --name kib01 --net elastic -p 5601:5601 -d docker.elastic.co/kibana/kibana:8.13.2

kibana docker container 에서 토큰 생성하는 방법

kibana docker image인 kib01 내부에 존재하는 elastic-create-enrollment-token 을 실행하여 kibana 의 토큰을 새로 생성합니다. 이때 주의해야 할 점이 있습니다. docker exec -it kib01 이 아니라 docker exec -it es01 로 docker image 이름을 es01 로 지정해야 한다는 점입니다. elasticsearch-create-enrollent-token 이라는 실행 파일은 elasticsearch 엔진에서 제공하는 기능이기 때문입니다.

docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

kibana token 이 생성되면 브라우저에 입력합니다. 입력하고 나면 kibana-verification-code 를 입력하라는 메세지가 보여집니다. 아래 코드를 WSL Ubuntu 22.04 터미널에서 실행하여 6자리 숫자로 이루어진 kibana-verification-code를 브라우저의 입력창에 입력합니다.

sudo docker exec -it kib01 /usr/share/kibana/bin/kibana-verification-code

브라우저에서 http://localhost:5601 로 접속한후에 kibana token을 입력하고 나면 아래의 verification 코드 6자리를 입력하라는 창이 나옵니다.

아래와 같이 kibana docker가 동작 중인 container kib01 내부의 kibana-verification-code 를 실행하여 6자리 kibana-verification-code를 생성합니다.

kibana-verification-code 가 일치하면 아래와 같이 브라우저가 셋팅 작업을 스스로 설정하기 시작합니다.

kibana 설정

로그인을 할 수 있는 페이지가 등작하면 user name에는 “elastic” (큰따옴표를 제외함 ) 을 입력합니다. 패스워드에는 위에서 생성했던 ELASTIC_PASSWORD 를 큰따옴표를 제외하고 입력합니다. 한번 입력하면 에러가 나는 경우가 있으나 반복해서 동일하게 입력하면 인증이 완료되고 다음 순서로 진행됩니다.

kibana 로그인

kibana 로그인에 성공하여 최초에 실행하면 아래와 같은 화면이 등장합니다. 최초에 데이터베이스로 활용하고자 하는 파일을 선정하기 위하여 “Add Integration” 버튼을 눌러줍니다.

kibana 초기 화면

kibana 에 정상적으로 로그인 화면에서 데이터베이스를 검색하고자 하는 아이템을 찾아서 서비스를 선택하면 검색을 할 수 있습니다.

kibana 실행

마무리

kibana docker 를 Windows 10 WSL Ubuntu 22.04 에서 실행하는 방법을 알아보았습니다. kibana 는 elasticsearch 를 docker로 동작시킨 후에 kibana 가 동작하는 브라우저의 디버깅 툴을 이용해서 elasticsearch 검색 엔진에게 POST, GET, DELETE 등의 메세지를 전송하여 검색 결과를 받아볼 수 있습니다. elasticsearch query 에 대한 자세한 내용은 다음 포스팅에서 상세하게 다루겠습니다.

kibana 설치 및 실행 시 자주 하는 질문

elasticsearch 실행이 안되는데요?

Windows 10 WSL Ubuntu 22.04 에서 kibana 를 실행할 때 동작하지 않는 경우가 있습니다. kibana 가 실행되려면 먼저 elasticsearch 가 먼저 정상적으로 실행되어야 합니다. elastic search 가 실행이 안되는 경우에는 sudo dpkg -i elasticsearch 를 실행해서 기존에 설치된 elasticsearch를 삭제해야 합니다.

elasticsearch 8.12.30 에서 7.17.20 으로 다운그레이드 하려면 어떻게 하나요?

elasticsearch 8.12.30 패키지를 삭제한 후에 새로 설치하는 7.17.20 패키지를 위해서 꼭 새로운 keystore 를 생성해주어야 합니다. 아래의 2개의 명령어를 Windows 10 WSL Ubuntu 22.04 터미널에서 실행해 주시면 됩니다.

sudo chmod g+w /etc/elasticsearch
sudo -u elasticsearch -s /usr/share/elasticsearch/bin/elasticsearch-keystore create