pbj0812의 코딩 일기

[빅데이터기술] docker 로 ElasticSearch + Kibana 연동 + python 연동을 통한 데이터 삽입 및 확인 본문

빅데이터/빅데이터기술

[빅데이터기술] docker 로 ElasticSearch + Kibana 연동 + python 연동을 통한 데이터 삽입 및 확인

pbj0812 2020. 12. 19. 03:36

0. 목표 

 - docker 로 ElasticSearch + Kibana 연동

1. 도커 설정

 1) elasticsearch docker 이미지 가져오기

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.1

 2) 컨테이너 실행

  - 9200 포트 연결

docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.1

 3) 실행 컨테이너 확인

docker ps

 4) localhost:9200

 5) kibana docker 이미지 가져오기

docker pull docker.elastic.co/kibana/kibana:7.10.1

 6) 컨테이너 실행

  - 3) 에서 elasticsearch 컨테이너를 아이디를 얻어서 입력

docker run -d --link 3f8210767e9f:elasticsearch -p 5601:5601 docker.elastic.co/kibana/kibana:7.10.1

 7) 컨테이너 확인

docker ps

 8) localhost:5601

2. python 을 이용한 데이터 삽입

 1) library 호출

from elasticsearch import Elasticsearch
from elasticsearch import helpers

 2) elasticsearch 연결

es = Elasticsearch('http://127.0.0.1:9200')
es.info()

 3) 인덱스 생성 함수 생성

def make_index(es, index_name):
    if es.indices.exists(index=index_name):
        es.indices.delete(index=index_name)
        es.indices.create(index=index_name)

 4) 데이터 준비

index_name = 'goods'
doc1 = {'goods_name': '삼성 노트북 9',    'price': 1000000}
doc2 = {'goods_name': '엘지 노트북 그램', 'price': 2000000}
doc3 = {'goods_name': '애플 맥북 프로',   'price': 3000000}
doc4 = {'goods_name': '맥북',   'price': 100000}
doc5 = {'goods_name': '맥복',   'price': 100000}

 5) 인덱스 생성

make_index(es, index_name)

 6) 데이터 삽입

es.index(index=index_name, doc_type='string', body=doc1)
es.index(index=index_name, doc_type='string', body=doc2)
es.index(index=index_name, doc_type='string', body=doc3)
es.index(index=index_name, doc_type='string', body=doc4)
es.index(index=index_name, doc_type='string', body=doc5)
es.index(index=index_name, doc_type='string', body=doc4)
es.index(index=index_name, doc_type='string', body=doc4)

 7) 새로고침

es.indices.refresh(index=index_name)

 8) 데이터 확인

es.indices.refresh(index=index_name)

3. kibana 인덱스 생성

 1) Kibana -> Overview

 2) Add your data

 3) Index Patterns -> Create index pattern

 4) 생성된 index 확인 및 index 패턴 생성

  - Next step

 5) Create index pattern

 6) 확인

4. 대쉬보드 생성

 1) Kibana -> Dashboard

 2) Create new dashboard

 3) Create new

 4) Data Table

 5) 데이터 선택

 6) 그리기

  - Metrics 는 통계 방법 같은 것들(count, max 등...)

  - Buckets 은 데이터의 분류 느낌(추가하면 묶음이 생김)

  - Save

 7) 저장

 8) Add an existing

 9) 클릭

 10) 완성

  - 우측 위 Save

5. 참고

 - Install Elasticsearch with Docker

 - Install Kibana with Docker

Comments