- 인쇄
- PDF
Kibana/OpenSearch 활용
- 인쇄
- PDF
VPC 환경에서 이용 가능합니다.
Kibana 및 OpenSearch Dashboards는 Elasticsearch 및 OpenSearch 클러스터에 저장된 데이터를 시각화하고 탐색하는 오픈소스 인터페이스입니다. 데이터를 활용하여 다양한 차트를 생성하고 클러스터를 관리할 수 있습니다. Search Engine Service는 Elasticsearch 클러스터에 대해 버전 7.7.0의 Kibana를, OpenSearch 클러스터에 대해 버전 1.3.3의 OpenSearch Dasbhaords를 지원합니다. 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 Dashbords에 관한 자세한 내용은 OpenSearch Dashbords를 참조해 주십시오.
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에 접속하는 방법은 다음과 같습니다.
- 웹 브라우저에서 '로드 밸런서 IP 주소:80'에 접속해 주십시오.
- 80번 포트로 포워딩된 5601번 포트에 접속합니다.
- 다음과 같은 창이 나타나면 Kibana 접속 정보를 입력한 후 [로그인] 버튼을 클릭해 주십시오.
- 사용자 이름: Kibana 접속 ID 입력
- 암호: Kibana 접속 패스워드 입력
- 로그인 후 처음 나타나는 화면에서 [Try our sample data] 버튼을 클릭하면 샘플 데이터를 사용할 수 있습니다.
Kibana 화면
Kibana 화면의 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① Home, 메뉴명 | |
② Kibana 메뉴 | |
③ Kibana 정보 |
OpenSearch Dashboards 시작
OpenSearch Dashboards 이용을 위해서 먼저 OpenSearch Dashboards에 접속해야 합니다. 로그인 후 OpenSearch Dashboards의 다양한 메뉴를 확인할 수 있습니다.
OpenSearch Dashboards 접속
OpenSearch 클러스터를 생성하면 자동으로 매니저 노드에 OpenSearch Dashboards가 설치되고 실행됩니다.
외부에서 Kibana에 접속하기 전 다음 사항을 확인해 주십시오.
- 매니저 노드 접속을 설정해야 합니다. 매니저 노드에 SSH 접속의 1. Target Group 생성 ~ 4. 매니저 노드의 ACG 설정을 진행해 주십시오.
- 매니저 노드에 연결된 로드 밸런서 IP 주소를 확인해 주십시오.
- 콘솔의 Services > Networking > Load Balancer > Load Balancer 메뉴에서 해당 로드 밸런서의 접속 정보를 확인해 주십시오.
- Kibana 접속 ID와 패스워드를 확인해 주십시오.
- Cluster > 클러스터 관리 > 접속 패스워드 초기화 메뉴에서 ID 확인 및 패스워드 설정할 수 있습니다.
외부에서 OpenSearch Dashboards에 접속하는 방법은 다음과 같습니다.
- 웹 브라우저에서 '로드 밸런서 IP 주소:80'에 접속해 주십시오.
- 80번 포트로 포워딩된 5601번 포트에 접속합니다.
- 다음과 같은 창이 나타나면 OpenSearch Dashboards 접속 정보를 입력한 후 [Log In] 버튼을 클릭해 주십시오.
- Username: OpenSearch Dashboards 접속 ID 입력
- Password: OpenSearch Dashboards 접속 패스워드 입력
- 로그인 후 처음 나타나는 화면에서 [Add data] 버튼을 클릭하면 샘플 데이터를 사용할 수 있습니다.
OpenSearch Dashboards 화면
OpenSearch Dashboards 화면의 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① 기본 메뉴 | |
② OpenSearch Dashboards | |
③ OpenSearch Plugins | |
④ Management |
Dev Tools
Dev Tools 메뉴의 Console을 이용하여 간편하게 API를 활용하고 요청에 대한 결과를 얻을 수 있습니다. Dev Tools 화면의 기본적인 설명은 다음과 같습니다.
영역 | 설명 |
---|---|
① Console 기능 | |
② 입력 영역 | 명령어 입력 영역
|
③ 결과 영역 | 명령어를 실행한 결과 표시 |
데이터 관리
Kibana 및 OpenSearch Dashboards를 이용하여 데이터를 관리할 수 있습니다. Dev Tools 메뉴의 Console에서 API를 통해 데이터를 저장 및 조회할 수 있습니다. 또한 인덱스 패턴을 생성하고 클러스터에 저장된 데이터를 검색할 수 있습니다.
데이터 저장
API를 통해 데이터를 저장하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
- 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를 통해 클러스터에 저장된 데이터를 조회하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
- Console에서 API를 호출하여 데이터를 조회해 주십시오.
- 우측 화면에 검색 결과가 나타납니다.
- <예시> 인덱스 test에 있는 데이터 조회
GET test/_search { "query" : { "match_all" : {} } }
인덱스 패턴 생성
Kibana 및 OpenSearch Dashboards에서 인덱스를 사용하기 위해서는 먼저 인덱스 패턴을 생성해야 합니다. 인덱스 패턴을 통해 여러 인덱스의 데이터를 한 번에 조회하고 관리할 수 있습니다.
인덱스 패턴을 생성하려면 클러스터에 데이터가 저장되어 있어야 합니다.
인덱스 패턴을 생성하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Management 또는 Stack Management 메뉴를 클릭해 주십시오.
- Index Patterns 메뉴를 클릭해 주십시오.
- [Create index pattern] 버튼을 클릭해 주십시오.
- Kibana 및 OpenSearch Dashboards에서 확인하기 위한 인덱스 패턴을 입력해 주십시오.
- 입력한 인덱스 패턴에 해당하는 인덱스가 나타납니다.
- [Next step] 버튼을 클릭해 주십시오.
- Configure settings 내용을 확인하고 [Create index pattern] 버튼을 클릭해 주십시오.
- 날짜/시간 데이터가 있을 경우 Time Filter field name 또는 Time field에서 해당 필드를 선택해 주십시오.
- 생성한 인덱스 패턴에 대한 정보가 표시됩니다.
데이터 검색
Kibana 및 OpenSearch Dashboards의 Discover 메뉴에서 클러스터에 저장된 데이터를 검색할 수 있습니다.
데이터를 검색하려면 먼저 인덱스 패턴을 생성해야 합니다.
클러스터의 데이터를 검색하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Discover 메뉴를 클릭해 주십시오.
- 드롭다운 메뉴에서 조회할 인덱스 패턴을 선택해 주십시오.
- 선택한 인덱스 패턴에 포함된 인덱스의 데이터가 나타납니다.
- 선택한 인덱스 패턴에 포함된 인덱스의 데이터가 나타납니다.
- 검색창에 검색어(<예시>
name:asd
)를 입력하고 [Enter] 키를 눌러 검색 결과를 확인해 주십시오.- 필드를 선택하여 원하는 필드의 정보만 확인할 수 있습니다.
스냅샷 관리
Kibana 및 OpenSearch Dashboards의 Dev Tools 메뉴의 Console을 이용하여 스냅샷을 생성하고 삭제할 수 있습니다. 스냅샷 생성 실패 시 실패 원인을 파악하거나, 생성한 스냅샷을 이용하여 데이터를 복원할 수 있습니다.
- 일본 리전에서는 스냅샷 관련 기능을 지원하지 않습니다.
- Object Storage에 스냅샷을 생성하고 관리하려면 API 인증키를 설정해야 합니다.
Elasticsearch 및 OpenSearch API를 통해 스냅샷 생성
스냅샷을 저장하는 폴더명을 변경하고 싶은 경우 또는 콘솔에서 타임아웃 등의 이유로 스냅샷 생성이 실패하는 경우, Kibana 및 OpenSearch Dashboards에서 Elasticsearch 및 OpenSearch API를 통해 직접 스냅샷을 생성할 수 있습니다.
- 단, Elasticsearch 및 OpenSearch API를 통해 스냅샷을 직접 생성하는 경우 콘솔에서 스냅샷 생성 내역을 확인할 수 없습니다.
Elasticsearch 및 OpenSearch API를 통해 직접 스냅샷을 생성하는 방법은 다음과 같습니다.
Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
Console에서 다음 명령어를 실행하여 repository를 생성해 주십시오.
PUT _snapshot/my-own-snapshot-repository { "type" : "s3", "settings": { "region" : "kr", "endpoint" : "https://kr.object.private.ncloudstorage.com", "bucket": "estest", "compress": true, "base_path": "my-folder", "path_style_access": true } }
my-own-snapshot-repository
: 원하는 repository 이름 입력base_path
: 원하는 폴더명 입력- 다른 클러스터가 사용 중인 폴더명을 입력할 경우, 스냅샷 파일이 정상 작동하지 않을 수 있습니다.
region
- 한국 리전인 경우:
kr
- 싱가포르 리전인 경우:
sgn
- 한국 리전인 경우:
endpoint
- 한국 리전인 경우:
https://kr.object.private.ncloudstorage.com
- 싱가포르 리전인 경우:
https://sg.object.private.ncloudstorage.com
- 한국 리전인 경우:
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에서 스냅샷 생성 실패 원인을 확인하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
- Console에서
GET _snapshot
명령어를 실행한 후 생성 실패한 스냅샷의 repository를 확인해 주십시오.- 우측 화면에 repository 목록이 나타납니다.
- 다음 명령어를 실행하여 해당 스냅샷의 자세한 상태를 확인해 주십시오.
GET _snapshot/"스냅샷의 repository"/"스냅샷 이름"
스냅샷 복원
스냅샷을 이용하여 클러스터의 데이터를 복구하거나 한 클러스터에서 다른 클러스터로 데이터를 이동시킬 수 있습니다.
스냅샷 복원을 하려면 먼저 복원할 스냅샷이 생성되어 있어야 합니다. (스냅샷 생성 또는 Elasticsearch 및 OpenSearch API를 통해 스냅샷 생성 참조)
스냅샷 복원을 하는 방법은 다음과 같습니다.
- Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
- Console에서 다음 명령어를 실행하여 복원할 repository를 생성해 주십시오.
PUT _snapshot/restore-repository { "type" : "s3", "settings": { "region" : "kr", "endpoint" : "https://kr.object.private.ncloudstorage.com", "bucket": "estest", "compress": true, "base_path": "estest-1722213", "path_style_access": true } }
region
- 한국 리전인 경우:
kr
- 싱가포르 리전인 경우:
sgn
- 한국 리전인 경우:
endpoint
- 한국 리전인 경우:
https://kr.object.private.ncloudstorage.com
- 싱가포르 리전인 경우:
https://sg.object.private.ncloudstorage.com
- 한국 리전인 경우:
bucket
: 복원할 스냅샷이 존재하는 버킷명base_path
: 복원할 스냅샷이 위치하는 폴더 이름(클러스터 이름-클러스터 번호)다음 명령어를 실행하여 repository가 정상적으로 생성되었는지 확인할 수 있습니다.
GET _snapshot
다음 명령어를 실행하여 repository에 존재하는 스냅샷 목록을 확인할 수 있습니다.
GET _cat/snapshots/restore-repository
- 다음 명령어를 실행하여 스냅샷에 존재하는 복원 가능한 인덱스 목록을 확인해 주십시오.
GET _snapshot/restore-repository/"스냅샷 이름"
- 다음 명령어를 실행하여 현재 클러스터에 존재하는 인덱스 목록을 확인해 주십시오.
- 복원할 인덱스와 이름이 동일한 인덱스가 현재 클러스터에 존재하는 경우, 해당 인덱스는 복원할 수 없습니다.
GET _cat/indices
- 명령어를 실행하여 원하는 인덱스에 대해 복원해 주십시오.
- 특정 인덱스에 대해 복원
- <예시>
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": "*"
로 설정할 경우, 모든 인덱스에 대해 복원을 시도하며 중복되는 인덱스가 존재할 경우 복원에 실패합니다.
- 특정 인덱스에 대해 복원
- 다음 명령어를 실행하여 인덱스가 정상적으로 복원되었는지 확인해 주십시오.
- 복원 직후에는 일시적으로 인덱스의 상태가 yellow, 클러스터의 상태가 경고 상태가 될 수 있습니다.
GET _cat/indices
스냅샷 삭제
- Kibana 및 OpenSearch Dashboards에서 Dev Tools 메뉴를 클릭해 주십시오.
- Console에서 다음 명령어를 실행하여 스냅샷을 삭제해 주십시오.
DELETE _snapshot/restore-repository/test4
- 다음 명령어를 실행하여 스냅샷이 삭제되었는지 확인할 수 있습니다.
GET _cat/snapshots/restore-repository
- 다음 명령어를 실행하여 스냅샷이 삭제되었는지 확인할 수 있습니다.
내용량이 큰 스냅샷을 삭제할 경우, 타임아웃 응답이 발생할 수 있습니다. 소요 시간이 30초가 초과되어 발생하는 현상으로, 스냅샷 삭제는 background에서 정상적으로 이루어집니다.