Elasticsearch는 http 프로토콜 접근이 가능한 REST API를 지원한다.
자원별로 고유 URL로 접근이 가능하며 http 메서드 PUT, POST, GET, DELETE를 이용해서 자원을 처리한다.
즉 RESTful 한 시스템이라고 한다.
https://esbook.kimjmin.net/04-data/4.1-rest-api
굉장히 정리가 잘 되어있음..
1. 유닉스 curl
Mac OS, 리눅스와 같은 유닉스 기반의 운영체제에서 curl 명령어로 간편하게 REST API 사용이 가능하다.
Elasticsearch를 실행한 뒤 curl 명령을 이용해서 elasticsearch 클러스터의 상태를 json 형식으로 리턴된다.
$ curl -XGET "http://localhost:9200" { "name" : "Jongminui-MacBook-Pro.local", "cluster_name" : "elasticsearch", "cluster_uuid" : "hpmT8TPiR1Kk69YNao9V3w", "version" : { "number" : "7.3.0", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "de777fa", "build_date" : "2019-07-24T18:30:11.767338Z", "build_snapshot" : false, "lucene_version" : "8.1.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
리턴된 결과는 노드명, 클러스터명, Elasticsearch 버전, 루씬 버전 등의 정보들을 담고 있다.
(본인은 local로 구동시키는 것이 아니라 docker 컨테이너에 elk를 설치하고 실행중이기 때문에 ip는 docker 내부 ip인 172.17.0.1을 사용한다)
2. REST API
Elasticsearch는 클러스터와 상호작용하는데 사용할 수 있는 매우 포괄적이고 강력한 REST API를 제공한다.
1) API 로 수행할 수 있는 작업
- 클러스터, 노드 및 색인 사앹, 상태 및 통계 확인
- 클러스터, 노드 및 색인 데이터 및 메타 데이터 관리
- CRUD(Create, Read, Update, Delete) 및 인덱스에 대한 검색 작업 수행
- 패이징, 정렬, 필터링, 스크립팅, 집계 및 기타 여러 고급 검색 작업 실행
2) 구성 요소 3가지 < 리소스, 메서드, 메시지 >
3. Kibana Dev Tools
Rest API를 쉽게 사용하기 위해서는 포스트맨 같은 도구를 사용할 수 있습니다. Kibana에는 elasticsearch 에서 REST API를 간편하게 실행할 수 있는 Dev Tools 라는 도구를 제공한다.
먼저 Kibana를 실행하기 위해서는 Elastic 홈페이지 (https://www.elastic.co)에서 운영체제별로 맞는 Kibana 버전을 내려받아 압축을 풀고 bin/kibana 또는 bin/kibana.bat (윈도우즈) 를 실행시키면 디폴트로 같은 호스트의 localhost:9200 에서 실행중인 elasticsearch와 통신하며 실행이 된다.
Elasticsearch와 Kibana가 서로 다른 호스트에서 실행되고 있거나 통신 포트가 9200이 아니면 Kibana 홈 config 디렉토리 아래에 있는 kibana.yml 파일에서 elasticsearch.url: "http://localhost:9200" 옵션을 설정하면 됩니다.
기본적으로 Kibana는 5601 포트에서 실행이 되며 변경하고 싶으면 server.port: 5601을 변경하고 싶은 포트 값으로 설정합니다.
본인은 docker로 kibana를 실행한 뒤 웹 브라우저를 열고 http://localhost:5601 ( ip:5601 )로 접속하면 kibana를 바로 사용할 수 있다. Kibana Dev Tools를 통해서 CRUD를 실행할 수 있다.
'데이터베이스 > ELK' 카테고리의 다른 글
[Elasticsearch] 다른 서버에서 클러스터 구성 (노드 연동) with. docker-compose (0) | 2022.08.18 |
---|---|
[ElasticSearch] 엘라스틱서치의 내부 구조 및 cluster, index, replica, shard (0) | 2022.08.12 |
[ElasticSearch] 인덱스 수명 주기 관리 (Hot, Warm, Cold) (0) | 2022.08.11 |
[ELK] GCP환경에서 Docker로 ELK 설치 및 실행하기 (0) | 2022.05.13 |
[ELK] ELK Stack 이해하기 (0) | 2022.05.12 |