프로그래밍/ELK

Elastic Search 기본정리

장경훈 2022. 9. 7. 15:02

1. 엘라스틱서치 요청과 응답

기본적으로 elastic search는 REST API를 사용한다  REST API는 http의 장점을 이용해서 리소스를 주고받는 형태이고 다음과 같은 메소드를 사용해 CRUD 작업을 진행한다

POST 리소스 추가 GET  리소스 조회
PUT 리소스 수정 DELETE 리소스 삭제

2. 시스템 상태 확인 하는법

kibana콘솔 실행 결과

위와 같이 시스템의 상태를 확인하는 방법으로는 cat API를 사용하면 되며 GET _cat을 사용해서 호출할 수 있다. 만약 내부 인덱스의 목록을 확인해보고 싶다면 GET _cat/indices?v를 요청하면 된다.

 

인덱스와 도큐먼트

  • 도큐먼트란 엘라스틱에서 데이터가 저장되는 기본 단위로 JSON형태이다. 
{
	"name": "Jang",
	"age": 23,
   	"gender": male
}

위와 같이 작성될 수 있으며 name, age, gender은 필드라고 하며 jang,23, male은 값이라고 한다. 엘라스틱 서치는 매핑을 명시하지 않으면 자동으로 매핑이 된다. 

  • 인덱스란 sql의 테이블과 비슷한 개념이라고 생각하면 되는데 동일한 인덱스에 있는 도큐먼트는 동일한 스키마를 가지고  모든 도큐먼트는 하나의 인덱스에 포함되어야 하며 인덱스 이름은 255자를 넘길 수 없다.
PUT index1 #인덱스 생성

PUT index/_doc/1 #도큐먼트 생성
{
    "name": "Jang",
    "age": 23,
    "gender": "male"
}

위의 코드가 인덱스를 생성하고 그 안에 도큐먼트를 생성하는 코드이며 조회, 삭제 등은 위에 있는 메소드를 이용하여 실행할 수 있다.

 

3.REST API 응답 코드

코드를 실행하게 되면 응답 코드를 돌려받게 되는데 코드에 따른 내용을 정리했다.

코드번호 상태 해결 방법
200,201 성공적으로 동작  
4xx 클라이언트 에러 클라이언트에서 문제점 찾고 해결
404 요청한 리소스 없음 인덱스, 도큐먼트의 존재 유무 체크
405 요청 메소드를 지원하지 않음 문법오류를 체크해보기
429 요청과부화 재전송 , 노드 추가 조치
5xx 서버 오류 엘라스틱 로그 확인 

4.매핑 

PUT index2
{
  "mappings": {
    "properties": {
      "age":{"type": "short"}
    }
  }
}

매핑은 위의 코드와 같이 mappings, properties 안에 필드명과 필드 타입을 지정해주면 되고 일라스틱 서치의 데이터 타입은 다음 표와 같다.

텍스트 text, keyword
날짜 date
정수 byte, short, integer, long
실수 scaled_float, half_float, double, float
불린 boolean
IP 주소 ip
위치 정보 geo-point, geo-shape

 

일라스틱 서치의 기초적인 부분을 일단 정리해 보았다 일라스틱 서치를 처음 접하기도 하고 SQL과는 다른 문법을 사용하기 때문에 익숙해지기 위해서 많은 실습을 하면서 지식을 얻을 수 있도록 노력해봐야겠다. 

'프로그래밍 > ELK' 카테고리의 다른 글

Elastic search 쿼리문  (0) 2022.09.23
[DOCKER] ELK Stack 환경 구축하기  (0) 2022.09.06