일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 모두를 위한 딥러닝
- jvm
- C/C++
- STL
- 스프링 프레임워크
- 라인플러스
- dfs
- spring
- C++
- 머신러닝
- 라인
- 프로그래밍언어론
- BFS
- 다이나믹프로그래밍
- 백준
- Spring Framework
- binary search
- 알고리즘
- 시애틀
- 딥러닝
- 백트래킹
- 스타벅스
- 릿코드
- 파이썬
- leetcode
- Java
- 프로그래머스
- Python
- DP
- 벤쿠버
- Today
- Total
케이스윔의 개발 블로그
[Django] Elasticsearch, Kibana와 연동하기 본문
요즘 장고로 웹서버를 구축해서 프로젝트를 진행하면서 다양한 것들을 시도해보는 것 같다. 그 중에 하나가 elasticsearch를 연동하는 것이었는데! 정말정말 힘들었다. 일단 설치할 때 버전을 잘못골라서 거의 참고할 수 있는 문서가 영어로도 찾기가 힘들었다. 그래서 처음에 설치를 했다가 다시 지우고 새 버전을 깔고, 장고 프로젝트의 데이터베이스와 연동하는 작업을 했다. 내가 사용하고자 한 목적은 프로젝트에서 저장해야하는 데이터가 너무 많았기때문에 elasticsearch와 kibana를 통해서 좀 더 시각화하여서 데이터를 쉽게 분석해보고 싶었기때문이다. 거의 한글로 된 문서는 없었고, 아니 0%라고 할 수 있을 것 같다! 안그래도 영어를 잘못하는데 열심히 읽어가며 따라서 했는데도 원하는 결과가 안나와서 너무 심난했던 일주일이었다. 비효율적으로 일주일을 사용한 끝에 그래도 연동에 성공하고 원하는 결과를 얻었다!
언젠가 나처럼 장고에 elastic search 를 연동시키고 싶은 사람들에게 조금이나마 도움이 됐으면 하는 바람에 오늘도 글로 남긴다! 막 설치하고 찾아보고 연동을 시도할 때에는 자꾸 에러밖에 안나고 구글링해도 해결방법을 찾을 수 없었는데 해결하고 난 결과는 너무나 간단한 것 같다.
1. Elasticsearch와 Kibana를 설치한다.
나는 Mac os와 리눅스에 둘 다 설치를 했으니까 둘 다 적어둬야겠다. 엘라스틱서치의 경우는 환경에 상관없이 설치하면 되고, kibana는 자기에게 맞는 걸로 설치해주면 된다.
아 맞다! 우선 elasticsearch 환경을 만들고 싶다면 자바가 먼저 설치되어 있어야 한다. java8을 설치하면 된다.
나는 homebrew를 통해서 간단하게 설치했다.
$ brew cask install homebrew/cask-versions/java8
이제 엘라스틱서치와 키바나를 설치할건데 나는 관리하기 편하려고 장고프로젝트 상위디렉토리에 이 두개를 위한 디렉토리를 만들어줬다.
$ mkdir ELK
$ cd ELK
엘라스틱서치를 설치하도록 하겠다! 이 글을 보고 있는 사람은 꼭 나랑 같은 버전을 설치해주면 좋겠다!!!!!!! 이후에 작성할 코드들은 다 5.x 버전으로 작성했기때문에 만약 6.x 버전으로 설치하면 에러들만 뜰..예정이다.
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.1.tar.gz
$ tar -xzvf elasticsearch-5.6.1.tar.gz
이렇게 압축을 풀면 엘라스틱서치 설치가 끝난다!
키바나도 마찬가지로 설치한다.
(Linux 기준)
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.1-linux-x86_64.tar.gz
(Mac OS 기준)
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.1-darwin-x86_64.tar.gz
$ tar -xzvf (다운받은 kibana)
이렇게 설치하면 설치가 끝난다!
엘라스틱서치와 키바나를 실행하는 방법도 되게 쉽다.
$ ./elasticsearch-5.6.1/bin/elasticsearch
$ ./(압축 푼 키바나디렉토리)/bin/kibana
쓰고나니 이렇게 쉬운 것을 나는 3일이나 헤매고 6.x 버전을 깔았다가 후회하고 다시 설치했다.
대부분이 디폴트로 설정된 것때문에 엘라스틱서치와 키바나는 알아서 잘 연동되어 있었던 것 같다. 엘라스틱서치를 먼저 실행하고 키바나를 실행하면 된다.
http://localhost:9200 을 통해서 엘라스틱서치를 확인할 수 있고 http://localhost:5601 을 통해서 키바나를 확인할 수 있다!
2. 관련 라이브러리를 설치한다.
아 연동시키기전에 필요한 몇개의 라이브러리를 설치해줘야한다. 이것도 엄청 헤맸던 건 brew나 pip로 그냥 설치하니까 버전에 안맞아서 분명히 맞는 코드인데도 오류가 날 수밖에 없었고 하루종일 날린 적도 있다! 저렇게 버전정보와 함께해서 설치해야한다. 이건 메모를 완벽히 안해둬서 이 2개말고 다른 설치를 했었나 긴가민가한데 no module이라고 뜨면 설치하면 된다!
$ pip install django_elasticsearch_dsl
$ pip install 'elasticsearch-dsl>=5.0,<6.0'
3. Settings.py 를 수정하여 elasticsearch와 연동시켜준다.
INSTALLED_APPS 에다가 ‘django_elasticsearch_dsl’를 추가해준다.
아래와같은 설정도 추가해준다.
ELASTICSEARCH_DSL = {
'default': {
'host': 'localhost:9200'
},
}
4. 기존의 장고프로젝트에서 사용중인 모델과 연동될 수 있도록 코드를 작성한다.
'Study' 카테고리의 다른 글
[DB] transaction의 Level of isolation (0) | 2018.10.05 |
---|---|
[Jupyter] ipynb 파일 html 로 변환하기 (0) | 2018.08.08 |
[Django] https 설정(openssl, stunnel) (0) | 2018.07.24 |
[암호화] 비공개키 암호화 & 공개키 암호화 (0) | 2018.05.28 |
[네트워크] http와 https 알아보기 (0) | 2018.05.28 |