Kibana 활용
    • PDF

    Kibana 활용

    • PDF

    Article Summary

    Classic 환경에서 이용 가능합니다.

    Kibana는 Elasticsearch 클러스터에 저장된 데이터를 시각화하고 탐색하는 오픈소스 인터페이스입니다. 데이터를 활용하여 다양한 차트를 생성하고 클러스터를 관리할 수 있습니다. Kibana 활용에서 설명하는 내용은 다음과 같습니다.

    • Kibana 시작: Kibana 접속 방법, 메뉴 안내
    • Dev Tools: 간편하게 API를 호출할 수 있는 Dev Tools 메뉴의 Console 안내
    • 데이터 관리: API를 활용한 데이터를 저장 및 조회, 인덱스 패턴 생성, Discover 메뉴에서 데이터 검색하는 방법 안내
    • 스냅샷 관리: API를 활용한 스냅샷 생성, 스냅샷 생성 실패 원인 확인, 스냅샷을 이용한 데이터 복원, 스냅샷 삭제 방법 안내
    참고
    • 여기에서는 Kibana의 기능 중 Search Engine Service를 활용하기 위해 자주 사용하는 일부 기능에 대해서만 설명합니다. Kibana에 관한 자세한 내용은 Kibana Guide를 참조해 주십시오.
    • 이 가이드는 버전 6.6.1의 Kibana를 기준으로 작성했습니다.

    Kibana 시작

    Kibana 이용을 위해서 먼저 Kibana에 접속해야 합니다. 로그인 후 Kibana의 다양한 메뉴를 확인할 수 있습니다.

    Kibana 접속

    Search Engine Service에서 Elasticsearch 클러스터를 생성하면 자동으로 매니저 노드에 Kibana가 설치되고 실행됩니다. 네이버 클라우드 플랫폼 콘솔 또는 웹 브라우저에서 Kibana에 접속할 수 있습니다.

    참고
    • Kibana에 접속하기 전 Kibana 접속 ID와 패스워드를 확인해 주십시오.
      • Cluster > 클러스터 관리 > Kibana 접속 패스워드 초기화 메뉴에서 ID 확인 및 패스워드 설정할 수 있습니다.
    • 네이버 클라우드 플랫폼 콘솔에서 Kibana에 접속하는 방법은 Kibana 접속을 참조해 주십시오.

    웹 브라우저에서 Kibana에 접속하는 방법은 다음과 같습니다.

    1. 웹 브라우저에서 '매니저 노드 공인 IP 주소:80'에 접속해 주십시오.
      • 80번 포트로 포워딩된 5601번 포트에 접속합니다.
    2. 다음과 같은 창이 나타나면 Kibana 접속 정보를 입력한 후 [로그인] 버튼을 클릭해 주십시오.
      ses-kibana-classic_login_ko
      • 사용자 이름: Kibana 접속 ID 입력
      • 암호: Kibana 접속 패스워드 입력
      • 로그인 후 처음 나타나는 화면에서 [Try our sample data] 버튼을 클릭하면 샘플 데이터를 사용할 수 있습니다.

    Kibana 메뉴

    Kibana 메뉴별 기본적인 설명은 다음과 같습니다.

    • Discover: 저장한 데이터 검색(데이터 검색 참조)
    • Visualize: 데이터 시각화 도구
    • Dashboard: 시각화한 데이터와 검색 결과를 한눈에 확인
    • Timelion: 시계열 데이터 시각화 도구
    • Dev Tools: API를 활용하여 데이터 관리(Dev Tools 참조)
    • Management: 인덱스 패턴, 저장된 객체, Kibana 세부 설정 관리

    Dev Tools

    Dev Tools 메뉴의 Console을 이용하여 간편하게 API를 활용하고 요청에 대한 결과를 얻을 수 있습니다. Dev Tools 화면의 기본적인 설명은 다음과 같습니다.
    ses-kibana-classic_console

    영역설명
    ① Console 기능
    • History: 과거에 실행한 명령어 확인, 재실행
    • Settings: Console 환경 설정
    • Help: Console에서 사용 가능한 단축키 안내
    ② 입력 영역명령어 입력 영역
    • i-ses-kibanarunclassic: 클릭하여 입력한 명령어 실행
      • [Ctrl]+[Enter] 키를 눌러 명령어 실행 가능
    • i-ses-kibanaactionclassic: 클릭하여 다음 메뉴 표시
      • Copy as cURL: 입력한 명령어를 curl 명령어 형식으로 변환하여 클립보드에 복사
      • Open documentation: 입력한 명령어에 해당하는 API에 관한 문서 표시
      • Auto indent: 입력한 명령어에 자동으로 공백 추가/삭제
    ③ 결과 영역명령어를 실행한 결과 표시

    데이터 관리

    Kibana를 이용하여 데이터를 관리할 수 있습니다. Dev Tools 메뉴의 Console에서 API를 통해 데이터를 저장 및 조회할 수 있습니다. 또한 인덱스 패턴을 생성하고 클러스터에 저장된 데이터를 검색할 수 있습니다.

    데이터 저장

    API를 통해 데이터를 저장하는 방법은 다음과 같습니다.

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 API를 호출하여 데이터를 저장해 주십시오.
      • 우측 화면에 저장 결과가 나타납니다.
      • <예시1> 인덱스 test에 name, dept 필드를 가진 데이터를 저장
        PUT test/_doc/1
        {
            "name" : "asd",
            "dept" : "Document Management"
        }
        
      • <예시2> 데이터 없이 Priamry Shard가 3개, Replica Shard가 1개인 인덱스 생성
        PUT my_index
        {
        "settings": {
           "index": {
              "number_of_shards": 3,
              "number_of_replicas": 1
           }
        }
        }
        

    데이터 조회

    API를 통해 클러스터에 저장된 데이터를 조회하는 방법은 다음과 같습니다.

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 API를 호출하여 데이터를 조회해 주십시오.
      • 우측 화면에 검색 결과가 나타납니다.
      • <예시> 인덱스 test에 있는 데이터 조회
        GET test/_search
        {
            "query" : {
                "match_all" : {}
            }
        }
        

    인덱스 패턴 생성

    Kibana에서 인덱스를 사용하기 위해서는 먼저 인덱스 패턴을 생성해야 합니다. 인덱스 패턴을 통해 여러 인덱스의 데이터를 한 번에 조회하고 관리할 수 있습니다.

    참고

    인덱스 패턴을 생성하려면 클러스터에 데이터가 저장되어 있어야 합니다.

    인덱스 패턴을 생성하는 방법은 다음과 같습니다.

    1. Kibana에서 Management 메뉴를 클릭해 주십시오.
    2. Index Patterns 메뉴를 클릭해 주십시오.
    3. [Create index pattern] 버튼을 클릭해 주십시오.
    4. Index pattern에 Kibana에서 확인하기 위한 인덱스 패턴을 입력해 주십시오.
      • 입력한 인덱스 패턴에 해당하는 인덱스가 나타납니다.
    5. [Next step] 버튼을 클릭해 주십시오.
    6. Configure settings 내용을 확인하고 [Create index pattern] 버튼을 클릭해 주십시오.
      • 날짜/시간 데이터가 있을 경우 Time Filter field name에서 해당 필드를 선택해 주십시오.
      • 생성한 인덱스 패턴에 대한 정보가 표시됩니다.

    데이터 검색

    Kibana의 Discover 메뉴에서 클러스터에 저장된 데이터를 검색할 수 있습니다.

    참고

    데이터를 검색하려면 먼저 인덱스 패턴을 생성해야 합니다. 인덱스 패턴 생성을 참조해 주십시오.

    클러스터의 데이터를 검색하는 방법은 다음과 같습니다.

    1. Kibana에서 Discover 메뉴를 클릭해 주십시오.
    2. 드롭다운 메뉴에서 조회할 인덱스 패턴을 선택해 주십시오.
      • 선택한 인덱스 패턴에 포함된 인덱스의 데이터가 나타납니다.
        ses-kibana-classic_discover
    3. 검색창에 검색어(<예시> name:asd)를 입력하고 [Enter] 키를 눌러 검색 결과를 확인해 주십시오.
      • 필드를 선택하여 원하는 필드의 정보만 확인할 수 있습니다.

    스냅샷 관리

    Kibana의 Dev Tools 메뉴의 Console을 이용하여 스냅샷을 생성하고 삭제할 수 있습니다. 스냅샷 생성 실패 시 실패 원인을 파악하거나, 생성한 스냅샷을 이용하여 데이터를 복원할 수 있습니다.

    참고

    Object Storage에 스냅샷을 생성하고 관리하려면 클러스터의 모든 노드에 Object Storage Plugin을 설치해야 합니다.(Object Storage Plugin 설치 참조)

    Object Storage Plugin 설치

    클러스터에서 Object Storage에 접근하기 위하여 클러스터의 모든 노드에 Object Storage Plugin을 설치해야 합니다. 다음 절차를 실행하여 플러그인을 설치해 주십시오.

    1. 매니저 노드에 SSH 접속한 후 다음 명령어를 실행해 주십시오.(SSH 접속에 관한 자세한 내용은 매니저 노드에 SSH 접속 참조)
    echo "-Des.allow_insecure_settings=true" | sudo tee -a /etc/elasticsearch/jvm.options
    sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install repository-s3
    
    1. y를 입력하여 Object Storage Plugin을 설치해 주십시오.
    2. 클러스터의 모든 노드에 대해 1~2번 절차를 반복하여 Object Storage Plugin을 설치해 주십시오.
      • 매니저 노드에 접속한 상태에서 'ssh sshuser@데이터 노드의 IP 주소' 명령어를 실행한 후 yes를 입력하여 각 데이터 노드에 SSH 접속할 수 있습니다.
        • 데이터 노드의 IP 주소는 Cluster 메뉴에서 클러스터 상세 정보 중 [상세 보기] 버튼을 클릭하여 확인할 수 있습니다.
      • 데이터 노드에 접속한 상태에서 logout 명령어를 실행하면 매니저 노드로 돌아옵니다.
    3. 설치한 플러그인 적용을 위해 클러스터를 재시작해 주십시오. (클러스터 재시작 참조)

    Elasticsearch API를 통해 스냅샷 생성

    Elasticsearch API를 호출하여 클러스터의 스냅샷을 생성할 수 있습니다.

    참고
    • 먼저 클러스터의 모든 노드에 Object Storage Plugin을 설치해야 합니다. (Object Storage Plugin 설치 참조)
    • 먼저 Object Storage에 스냅샷을 저장할 버킷을 생성해야 합니다. 버킷 생성에 대한 자세한 내용은 버킷 생성을 참조해 주십시오.

    클러스터의 스냅샷을 생성하는 방법은 다음과 같습니다.

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 다음 명령어를 실행하여 repository를 생성해 주십시오.
      PUT _snapshot/my-own-snapshot-repository
      {    
         "type" : "s3",  
         "settings": {        
               "region" : "kr",
               "endpoint" : "https://kr.object.ncloudstorage.com",
               "bucket": "스냅샷을 저장할 버킷 이름",
               "path_style_access": "true",
               "access_key":"Access Key ID 값",
               "secret_key":"Secret Key 값"
            }
      }
      
      • my-own-snapshot-repository: 원하는 repository 이름 입력
      • access_key, secret_key: API 인증키 값. 네이버 클라우드 플랫폼 포털의 마이페이지 > 계정관리 > 인증키 관리 메뉴에서 생성 및 확인 가능
    3. Console에서 다음 명령어를 실행하여 스냅샷 생성 API를 호출해 주십시오.
      POST _snapshot/my-own-snapshot-repository/my-own-snapshot-name
      
      • my-own-snapshot-repository: 2.에서 생성한 repository 이름
      • my-own-snapshot-name: 원하는 스냅샷 이름을 입력
      • 다음과 같이 인덱스를 지정하여 API를 호출할 경우, 원하는 인덱스에 대해서만 스냅샷을 생성할 수 있습니다.
        PUT _snapshot/my-own-snapshot-repository/my-own-snapshot-name
        {
        "indices": "myindex, myindex2"
        }
        
      • 생성한 스냅샷은 Object Storage 내 지정한 경로에서 확인할 수 있습니다.

    스냅샷 생성 실패 원인 확인

    Kibana에서 스냅샷 생성 실패 원인을 확인하는 방법은 다음과 같습니다.

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 GET _snapshot 명령어를 실행한 후 생성 실패한 스냅샷의 repository를 확인해 주십시오.
      • 우측 화면에 repository 목록이 나타납니다.
    3. 다음 명령어를 실행하여 해당 스냅샷의 자세한 상태를 확인해 주십시오.
      GET _snapshot/"스냅샷의 repository"/"스냅샷 이름"
      

    스냅샷 복원

    스냅샷을 이용하여 클러스터의 데이터를 복구하거나 한 클러스터에서 다른 클러스터로 데이터를 이동시킬 수 있습니다.

    참고

    스냅샷 복원을 하려면 먼저 복원할 스냅샷이 생성되어 있어야 합니다. (Elasticsearch API를 통해 스냅샷 생성 참조)

    스냅샷 복원을 하는 방법은 다음과 같습니다.

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 다음 명령어를 실행하여 복원할 repository를 생성해 주십시오.
      PUT _snapshot/restore-repository
      {  
      "type" : "s3",  
      "settings": {    
         "region" : "kr",    
         "endpoint" : "https://kr.object.ncloudstorage.com",
         "bucket": "estest",
         "path_style_access": "true",
         "access_key":"Access Key ID 값",
         "secret_key":"Secret Key 값"
      }
      }
      
      • bucket: 복원할 스냅샷이 존재하는 버킷명

      • base_path: 복원할 스냅샷이 위치하는 폴더 이름(클러스터 이름-클러스터 번호)

      • 다음 명령어를 실행하여 repository가 정상적으로 생성되었는지 확인할 수 있습니다.

        GET _snapshot
        
      • 다음 명령어를 실행하여 repository에 존재하는 스냅샷 목록을 확인할 수 있습니다.

        GET _cat/snapshots/restore-repository
        
    3. 다음 명령어를 실행하여 스냅샷에 존재하는 복원 가능한 인덱스 목록을 확인해 주십시오.
      GET _snapshot/restore-repository/"스냅샷 이름"
      
    4. 다음 명령어를 실행하여 현재 클러스터에 존재하는 인덱스 목록을 확인해 주십시오.
      • 복원할 인덱스와 이름이 동일한 인덱스가 현재 클러스터에 존재하는 경우, 해당 인덱스는 복원할 수 없습니다.
      GET _cat/indices
      
    5. 명령어를 실행하여 원하는 인덱스에 대해 복원해 주십시오.
      • 특정 인덱스에 대해 복원
        • <예시> metricbeat-7.7.0-2021.06.23에 대해 복원
          POST _snapshot/restore-repository/test4/_restore
          {
          "indices": "metricbeat-7.7.0-2021.06.23",
          "ignore_unavailable": true
          }
          
      • 와일드카드(*)를 사용하여 복수의 인덱스에 대해 복원
        • <예시> metricbeat로 시작하는 모든 인덱스에 대해 복원
          POST _snapshot/restore-repository/test4/_restore
          {
          "indices": "metricbeat*",
          "ignore_unavailable": true
          }
          
      • 특정 인덱스를 제외한 모든 인덱스에 대해 복원
        • <예시> kibana를 제외한 모든 인덱스에 대해 복원
          POST _snapshot/restore-repository/test4/_restore
          {
          "indices": "-.kibana*",
          "ignore_unavailable": true
          }
          
      • "indices": "*"로 설정할 경우, 모든 인덱스에 대해 복원을 시도하며 중복되는 인덱스가 존재할 경우 복원에 실패합니다.
    6. 다음 명령어를 실행하여 인덱스가 정상적으로 복원되었는지 확인해 주십시오.
      • 복원 직후에는 일시적으로 인덱스의 상태가 yellow, 클러스터의 상태가 경고 상태가 될 수 있습니다.
      GET _cat/indices
      

    스냅샷 삭제

    1. Kibana에서 Dev Tools 메뉴를 클릭해 주십시오.
    2. Console에서 다음 명령어를 실행하여 스냅샷을 삭제해 주십시오.
      DELETE _snapshot/restore-repository/test4
      
      • 다음 명령어를 실행하여 스냅샷이 삭제되었는지 확인할 수 있습니다.
        GET _cat/snapshots/restore-repository
        
    참고

    내용량이 큰 스냅샷을 삭제할 경우, 타임아웃 응답이 발생할 수 있습니다. 소요 시간이 30초가 초과되어 발생하는 현상으로, 스냅샷 삭제는 background에서 정상적으로 이루어집니다.


    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.