Kibana/Opensearch 활용
    • PDF

    Kibana/Opensearch 활용

    • PDF

    Article Summary

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

    Kibana 및 Opensearch Dashboards는 Elasticsearch 및 OpenSearch 클러스터에 저장된 데이터를 시각화하고 탐색하는 오픈소스 인터페이스입니다. 데이터를 활용하여 다양한 차트를 생성하고 클러스터를 관리할 수 있습니다.

    Search Engine Service는 Elasticsearch 클러스터에 대해 버전 7.7.0의 Kibana를, OpenSearch 클러스터에 대해 1.3.3의 OpenSearch Dashboards를 지원합니다.

    Kibana/Opensearch 활용에서 설명하는 내용은 다음과 같습니다.

    • Kibana 시작: Kibana 접속 방법, 기본 화면 안내
    • Opensearch Dashboards 시작: Opensearch Dashboards 접속 방법, 기본 화면 안내
    • Dev Tools: 간편하게 API를 호출할 수 있는 Dev Tools 메뉴의 Console 안내
    • 데이터 관리: API를 활용한 데이터를 저장 및 조회, 인덱스 패턴 생성, Discover 메뉴에서 데이터 검색 방법 안내
    • 스냅샷 관리: API를 활용한 스냅샷 생성, 스냅샷 생성 실패 원인 확인, 스냅샷을 이용한 데이터 복원, 스냅샷 삭제 방법 안내
    참고

    여기에서는 Kibana 및 Opensearch Dashboards의 기능 중 Search Engine Service를 활용하기 위해 자주 사용하는 일부 기능에 대해서만 설명합니다.
    Kibana에 관한 자세한 내용은 Kibana Guide를 참고해 주십시오.
    OpenSearch Dashboards에 관한 자세한 내용은 OpenSearch Dashboards Guide를 참고해 주십시오.

    Kibana 시작

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

    Kibana 접속

    Elasticsearch 클러스터를 생성하면 자동으로 매니저 노드에 Kibana가 설치되고 실행됩니다.

    참고

    외부에서 Kibana에 접속 전 다음 사항을 확인해 주십시오.

    • 매니저 노드 접속을 설정해야 합니다. 매니저 노드에 SSH 접속의 1. Target Group 생성~4. 매니저 노드의 ACG 설정을 진행해 주십시오.
    • 매니저 노드에 연결된 로드 밸런서 IP 주소를 확인해 주십시오.
      • 콘솔의 Services > Networking > Load Balancer > Load Balancer 메뉴에서 해당 로드 밸런서의 접속 정보 확인
    • Kibana 접속 ID와 패스워드를 확인해 주십시오.
      • Cluster > 클러스터 관리 > 접속 패스워드 초기화 메뉴에서 ID 확인 및 패스워드 설정 가능

    외부에서 Kibana에 접속하는 방법은 다음과 같습니다.

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

    Kibana 화면

    Kibana 화면의 기본적인 설명은 다음과 같습니다.

    ses-use-kibana_screen

    영역설명
    ① Home, 메뉴명
  • i-ses-kibanahome: 클릭하여 Home 화면으로 이동
  • 현재 확인 중인 메뉴 이름
  • ② Kibana 메뉴
  • Recently viewed: 최근에 확인한 데이터 확인 가능
  • Discover: 저장한 데이터 검색(데이터 검색 참고)
  • Visualize: 데이터를 시각화하고 대시보드에 추가
  • Dashboard: 여러 시각화 도구와 검색 결과를 한눈에 확인
  • Dev Tools: API를 활용하여 데이터 관리(Dev Tools 참고)
  • Management: 인덱스 패턴, 저장된 객체, Kibana 세부 설정 관리
  • ③ Kibana 정보
  • i-ses-kibanahelp: 클릭하여 Kibana 버전, Kibana 가이드 및 외부 리소스 링크 확인
  • i-ses-kibananews: 클릭하여 Kibana 관련 소식 확인
  • Opensearch Dashboards 시작

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

    Opensearch Dashboards 접속

    Opensearch 클러스터를 생성하면 자동으로 매니저 노드에 Opensearch Dashboards가 설치되고 실행됩니다.

    참고

    외부에서 Opensearch Dashboards에 접속 전 다음 사항을 확인해 주십시오.

    • 매니저 노드 접속을 설정해야 합니다. 매니저 노드에 SSH 접속의 1. Target Group 생성~4. 매니저 노드의 ACG 설정을 진행해 주십시오.
    • 매니저 노드에 연결된 로드 밸런서 IP 주소를 확인해 주십시오.
      • 콘솔의 Services > Networking > Load Balancer > Load Balancer 메뉴에서 해당 로드 밸런서의 접속 정보 확인
    • Opensearch Dashboards 접속 ID와 패스워드를 확인해 주십시오.
      • Cluster > 클러스터 관리 > 접속 패스워드 초기화 메뉴에서 ID 확인 및 패스워드 설정 가능

    외부에서 Opensearch Dashboards에 접속하는 방법은 다음과 같습니다.

    1. 웹 브라우저에서 로드 밸런서 IP 주소:80에 접속해 주십시오.
      • 80번 포트로 포워딩된 5601번 포트에 접속합니다.
    2. 다음과 같은 창이 나타나면 Opensearch Dashboards 접속 정보를 입력한 후 [Log In] 버튼을 클릭해 주십시오.
      ses-use-opensearch_dashboard_login_ko
      • Username: Opensearch Dashboards 접속 ID 입력
      • Password: Opensearch Dashboards 접속 패스워드 입력
      • 로그인 후 처음 나타나는 화면에서 [Try our sample data] 버튼을 클릭하면 샘플 데이터를 사용할 수 있습니다.

    Opensearch Dashboards 화면

    Opensearch Dashboards 화면의 기본적인 설명은 다음과 같습니다.

    ses-use-opensearch_dashboards_screen

    영역설명
    ① Home, 메뉴명
  • 현재 확인 중인 메뉴 이름
  • ② Opensearch Dashboards
  • Overview: Opensearch Dashboards에 대한 개요
  • Discover: 저장한 데이터 검색(데이터 검색 참고)
  • Dashboard: 여러 시각화 도구와 검색 결과를 한눈에 확인
  • Visualize: 데이터를 시각화하고 대시보드에 추가
  • ③ Opensearch Plugins
  • Query Workbench: SQL Query를 실행
  • Reporting: PDF 또는 PNG 형태의 보고서 작성
  • Alerting: 알람 설정 기능
  • Anomaly Detection: 이상 탐지 기능
  • Observability: PPL(Pipeline Processing Language)를 사용한 데이터 기반 이벤트 시각화
  • Index Management: 인덱스 관리 자동화
  • Security: 인증, 권한 제어 및 계정 관리
  • ④ Management
  • Dev Tools: API를 활용하여 데이터 관리(Dev Tools 참고)
  • Stack Management: 인덱스 패턴, 저장된 객체, Opensearch Dashboards 세부 설정 관리
  • Dev Tools

    Dev Tools 메뉴의 Console을 이용하여 간편하게 API를 활용하고 요청에 대한 결과를 얻을 수 있습니다.

    Dev Tools 화면의 기본적인 설명은 다음과 같습니다.

    ses-use-kibana_console

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

    데이터 관리

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

    데이터 저장

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

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

    인덱스 패턴 생성

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

    참고

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

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

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

    데이터 검색

    참고

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

    Kibana 및 Opensearch Dashboards에서 Elasticsearch 및 Opensearch 클러스터에 저장한 데이터를 검색하는 방법은 다음과 같습니다.

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

    스냅샷 관리

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

    참고

    Kibana 및 Opensearch Dashboards에서 Object Storage에 스냅샷을 생성하고 관리하려면 Object Storage Plugin 설치 및 API 인증키 설정이 필요합니다.

    • Object Storage Plugin(s3-repository)은 클러스터 생성 시 자동으로 설치됩니다.
    • API 인증키 설정에 대한 자세한 내용은 API 인증키 설정하기를 참고해 주십시오.

    Elasticsearch 및 Opensearch API를 통해 스냅샷 생성

    스냅샷을 저장하는 폴더명을 변경하고 싶은 경우 또는 콘솔에서 타임아웃 등의 이유로 스냅샷 생성이 실패하는 경우, Kibana 및 Opensearch Dashboards에서 Elasticsearch 및 Opensearch API를 통해 직접 스냅샷을 생성할 수 있습니다. 단, Elasticsearch 및 Opensearch API를 통해 스냅샷을 직접 생성하는 경우 콘솔에서 스냅샷 생성 내역을 확인할 수 없습니다.

    Elasticsearch 및 Opensearch API를 통해 직접 스냅샷을 생성하는 방법은 다음과 같습니다.

    1. Kibana 및 Opensearch Dashboards에서 Dev Tools 메뉴를 선택해 주십시오.

    2. Console에서 다음 명령어를 실행하여 repository를 생성해 주십시오.

      PUT _snapshot/my-own-snapshot-repository
      {    
          "type" : "s3",
          "settings": {        
                      "region" : "kr",
                      "endpoint" : "https://kr.object.private.gov-ncloudstorage.com", 
                      "bucket": "estest",  
                      "compress": true,
                      "base_path": "my-folder",  
                      "path_style_access": true
          }
      }
      
      • my-own-snapshot-repository: 원하는 repository 이름 입력
      • base_path: 원하는 폴더명 입력
        • 다른 클러스터가 사용 중인 폴더명을 입력할 경우, 스냅샷 파일이 정상 작동하지 않을 수 있습니다.
      • region
        • 수도권 리전인 경우: kr
        • 남부권 리전인 경우: krs
      • endpoint
        • 수도권 리전인 경우: kr.object.private.gov-ncloudstorage.com
        • 남부권 리전인 경우: krs.object.private.gov-ncloudstorage.com
    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 및 Opensearch Dashboards에서 스냅샷 생성 실패 원인을 확인하는 방법은 다음과 같습니다.

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

    스냅샷 복원

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

    참고

    스냅샷 복원을 하려면 먼저 복원할 스냅샷이 생성되어 있어야 합니다.(Snapshot 생성하기 또는 Elasticsearch 및 Opensearch API를 통해 스냅샷 생성 참고)

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

    1. Kibana 및 Opensearch Dashboards에서 Dev Tools 메뉴를 선택해 주십시오.
    2. Console에서 다음 명령어를 실행하여 복원할 repository를 생성해 주십시오.
      PUT _snapshot/restore-repository
      {  
      "type" : "s3",  
      "settings": {    
         "region" : "kr",    
         "endpoint" : "https://kr.object.private.gov-ncloudstorage.com",
         "bucket": "estest",
         "compress": true,
         "base_path": "estest-1722213",
         "path_style_access": true
      }
      }
      
      • region

        • 수도권인 경우: kr
        • 남부권일 경우: krs
      • endpoint

        • 수도권인 경우: kr.object.private.gov-ncloudstorage.com
        • 남부권일 경우: krs.object.private.gov-ncloudstorage.com
      • 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 및 Opensearch Dashboards에서 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.