시뻘건 개발 도전기

키바나 설치 본문

Reading/엘라스틱서치 실무 가이드

키바나 설치

시뻘건볼때기 2023. 12. 1. 20:47
반응형

키바나는 엘라스틱에서 제공하는 데이터 시각화 프로그램이다. 키바나를 이용하면 엘라스틱에 갯인된 데이터를 검색하거나 문서를 추가하거나 하는 등의 기능을 손쉽게 구현할 수 있다.

 

Download Kibana Free | Get Started Now

Download Kibana or the complete Elastic Stack (formerly ELK stack) for free and start visualizing, analyzing, and exploring your data with Elastic in minutes.

www.elastic.co

bin 디렉토리에 kibana와 kibana.bat 파일이있다. 환경에 맞게 실행하되, 키바나가 실행하기 전에 elasticsearch가 실행되고 있어야한다. 키바나가 정상적으로 실행되었다면 아래 url로 접근해보자. 키바나의 기본 페이지가 뜰 것이다.

http://localhost:5601/app/home

 

엘라스틱서치가 정상적으로 시작되면 path.repo에서 설정한 물리적인 snapthot 데이터를 엘라스틱서치로 인식시켜야한다. path.repo에 설정한 두 개의 디렉토리 중에서 먼저 search_example 디렉토리의 데이터를 활성화해보자. 아래와 같은 명령어를 실행하면 search_example 데이터가 javacafe라는 이름의 논리적인 snapshot으로 생성된다.

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

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

 

생성된 논리적인 jabacafe snapshot을 확인해보자

http://localhost:9200/_snapshot/javacafe/_all

 

이제 다시 키바나로 돌아오자. [그림 1]과 같이 키바나 홈에서 dev tools를 사용해보자. dev tools는 문서와 맵핑의 추가, 삭제 등의 작업을 json 포맷으로 엘라스틱서치에 요청할 수 있다.

[그림 1] 키바나 dev tools

처음 진입 시에 나타나는 내용을 살펴보자. 친절하게 오른쪽 사이드 바에 보면 설명이 나와있으니 참고하면 좋을 것같다. 아래 코드를 해석해본다면

첫 번째, GET 요청을 한다. GET 말고도 POST, PUT, DELETE를 지정할 수 있다.

두 번째, _search는 검색 쿼리를 의미한다. _search 앞부분에 인덱스를 명시해서 해당 인덱스로만 범위를 한정해서 검색을 수행할 수도 있다.size가 기본 값 10으로 설정되어 있기 때문에 검색 결과로 10개의 문서만 반환하므로 많은 양의 문서가 색인 되어 있더라도 결과는 빠르게 리턴된다.

세 번째, 쿼리 본문으로부터 검색을  시작한다.

GET _search
{
  "query": {
    "match_all": {}
  }
}

 

그렇다면 데이터를 한 번 전송해보자. movie_kibana_execute/_doc/1 인덱스를 생성해서 문서를 색인해보자. 아래와 같이 인덱스를 생성한다.

PUT movie_kibana_execute/_doc/1
{
  "message":"helloworld"
}


# result
{
  "_index": "movie_kibana_execute",
  "_id": "1",
  "_version": 1,
  "result": "created",
  "_shards": {
    "total": 2,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 0,
  "_primary_term": 1
}

 

이번에는 생성된 문서를 검색해보자. 아래와 같이 검색 명령어를 입력하고 실행하면 message가 helloworld인 것을 볼 수 있다.

GET movie_kibana_execute/_search
{
  "query": {
    "match_all": {}
  }
}

# result
{
  "took": 0,
  "timed_out": false,
  "_shards": {
    "total": 1,
    "successful": 1,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 1,
      "relation": "eq"
    },
    "max_score": 1,
    "hits": [
      {
        "_index": "movie_kibana_execute",
        "_id": "1",
        "_score": 1,
        "_source": {
          "message": "helloworld"
        }
      }
    ]
  }
}
반응형

'Reading > 엘라스틱서치 실무 가이드' 카테고리의 다른 글

데이터 모델링: 맵핑 api  (2) 2023.12.05
엘라스틱서치 api  (1) 2023.12.04
엘라스틱서치 용어  (1) 2023.12.01
Elasticsearch 환경 구축  (2) 2023.12.01
검색 시스템 이해하기  (2) 2023.12.01
Comments