본문 바로가기

dev/ELK

(14)
ElasticSearch 집계 쿼리 엘라스틱서치는 REST API를 통해 데이터 집계 결과를 조회할 수 있습니다. 위의 집계 쿼리 예제를 설명하면 1라인: GET 메소드를 통해 metro 인덱스 검색, size값을 0으로 설정해 집계된 문서 정보 조회 X 3라인: 집계 수행 4라인: 집계 이름 설정 5~7라인: metro_line 필드 기준으로 그룹화 집계, 버킷 집계 8~14라인: 버킷 집계 결과를 기준으로 total_number 합산 집계, 메트릭 집계 DB 쿼리로 비유하면 select sum(total_number) as total_number from metro group by metro_line 와 비슷하다고 할 수 있습니다. 버킷 집계에 지하철 노선명 기준으로 오름차순 정렬할 수 있습니다. DB 쿼리로 비유하면 select su..
Elastic Search bulk API 엘라스틱서치 bulk API를 사용하면 여러 건 이상의 데이터를 한 번에 추가할 수 있습니다. "test_index"이름의 인덱스를 등록합니다. 인덱스에 저장할 json 파일을 작성합니다. json파일에 대해 간략히 설명하면 {"index": {"_index": "test_index"}}는 저장될 도큐먼트의 인덱스 정보입니다. 1라인: "_index" 필드 옆에 "_id"를 추가해서 도큐먼트에 아이디 속성을 줄 수 있지만 저는 엘라스틱서치가 정해주는 _id로 하고 싶어서 생략했습니다. ex) {"index": {"_index": "test_index", "_id":1}} 2라인: 추가될 도큐먼트의 필드정보입니다. test_id는 1, test_field1는 aaa, test_field2 1 이 인덱스에 ..
Elastic Search 검색 결과 다운로드 엘라스틱서치 검색 결과 다운받는 방법은 간단합니다. 위의 명령어는 curl을 통해 엘라스틱서치 검색 쿼리를 전달하고 리다이렉션을 통해 검색 결과를 json으로 다운받고 있습니다. 해당 json 파일을 조회하면 위와 같이 검색 결과를 확인할 수 있습니다.
Elastic Search 검색 쿼리 엘라스틱서치 검색 쿼리 작성하는 방법입니다. 얼마 전에 추가한 지하철 인덱스를 예시로 하겠습니다. 위의 검색 쿼리 예제를 설명하면 1라인: GET 메소드를 통해 metro 인덱스 검색 3라인: metro 인덱스의 모든 필드 조회 4라인: 검색 결과 시작위치 5라인: 검색 결과 조회 개수 6~10라인: 검색 결과 조회 방법, rgst_date 필드를 내림차순 정렬 DB쿼리로 비유하면 select * from metro order by rgst_date desc limit1 와 비슷하다고 할 수 있습니다. 다음 검색 쿼리 예제는 15라인: metro 인덱스의 metro_name, metro_line, on_number, off_number, total_number 필드 조회 16~20라인: metro_nam..
Kibana Vertical Chart 엘라스틱서치 인덱스에 있는 데이터를 키바나에서 차트로 시각화할 수 있습니다. 공공데이터의 지하철 데이터를 예제로 시각화하는 방법입니다. 키바나에서 Visiualize를 선택합니다. Create visualization을 선택한 뒤 Vertical Bar 선택합니다. 차트로 시각화할 인덱스를 선택하는데 저는 지하철 인덱스인 metro를 선택했습니다. 시각화하기 전에 metro 인덱스의 mapping을 확인합니다. 지하철 노선별 승하차 인원수를 차트로 시각화하기 위해 Data에서 Metrics - Y-axis - Aggregation에서 Sum을 선택하고 Field에서 total_number(승하차 인원수)를 선택합니다. Buckets - X-axis - Aggregation에서 Terms를 선택하고 Fie..
Kibana Map 엘라스틱서치 인덱스에 좌표 정보가 있다면 키바나에서 지도 시각화할 수 있습니다. 예제로 공공데이터의 지하철 데이터를 지도 시각화하겠습니다. 공공데이터의 지하철 데이터를 예제로 지도 시각화하기 전에 metro(지하철) 인덱스 mapping을 확인합니다. Maps 선택합니다. Create map을 선택합니다. Add layer를 선택한 다음에 Documents를 선택합니다. metro(지하철) 인덱스를 선택합니다. 지도 설정 정보(인덱스 패턴, 필드)를 확인하고 Add layer를 선택합니다. metro 인덱스의 데이터가 지도로 표출된 것을 확인할 수 있습니다. 마커를 선택했을 때 표출할 정보를 Tooltip fields에서 추가하면 지도에서 확인할 수 있습니다. 마커 색상을 특정 기준에 따라 다르게 하려면..
Kibana Index Pattern 키바나에서 데이터를 시각화하려면 인덱스 패턴을 등록해야 합니다. Stack mangement 선택합니다. Index Patterns를 선택합니다. Create index pattern을 선택합니다. 인덱스 이름과 매핑되는 패턴명을 입력하고 Next step을 선택합니다. Create index pattern을 선택하면 인덱스 패턴이 등록됩니다. 앞에서 등록한 인덱스 패턴을 조회할 수 있습니다.
Docker ElasticSearch Cluster 구성 도커로 엘라스틱서치 클러스터 구성하려면 docker-compose로 하는 것이 좋습니다. 먼저 엘라스틱서치 도커 이미지가 있는지 확인합니다. 이미지가 확인되면 docker-compose.yml 파일을 작성합니다. 위의 docker-compose.yml에 대해 주요 내용을 설명드리면 1라인: docker-compose 버전을 3 버전으로 했습니다. 4~80라인: 엘라스틱서치를 master-node, data-node, ingest-node로 컨테이너를 각각 구성하고 있습니다. 82~90라인: kibana는 master-node와 연결하여 데이터를 조회할 수 있게 되어있습니다. 4~23라인: master 노드 역할을 하는 elasticsearch-master 컨테이너를 정의하고 25~61라인: data 노드..