티스토리 뷰
목표
- 도커로 elasticsearch, kibana, logstash 설치
- django 설치
환경
- window 10
- vscode
- vscode 터미널
주의사항
이 블로그와 게시글은 기록용에 가깝기 때문에 설명이 정확하지 않으니, 공식 문서를 통해 개념을 정립하시길 바랍니다.
엘라스틱서치(Elasticsearch) docker로 설치하기
docker-elk 레포지토리는 도커로 손쉽게 elasticsearch, logstash, kibana를 설치할 수 있다.
https://github.com/deviantony/docker-elk
위 깃허브를 fork하거나 다운로드하고, readme의 순서대로 진행한다.
(Java Heap 문제가 종종 있으니, elasticsearch 도커의 공식문서 (링크))를 참고하길 바람
- 깃허브의 레포지토리를 복사
1-2. docker desktop을 사용한다면, docker-desktop을 실행 또는 재실행하고 진행해야함 docker-compose build
docker-compose up
- http://localhost:5601 에 접속해 초기 로그인 정보를 입력한다.
- 초기 로그인 정보
id : elastic
pw : changeme
- 초기 로그인 정보
접속하면 kibana 대시보드를 사용할 수 있다. kibana에 대한 설명은 이 글에서 다루지 않기 때문에 공식문서를 참고하길 바람
5. 로그인 후, cmd 또는 powershell 등 터미널 창에서 아래 세 개의 명령어를 순차적으로 입력해 비밀번호를 재설정한다.
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user elastic
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user logstash_internal
docker-compose exec elasticsearch bin/elasticsearch-reset-password --batch --user kibana_system
입력하면, 잠깐의 로딩 후 아래 그림과 같이 비밀번호가 나타난다. 이 작업을 반복한다.
- 세 개의 비밀번호를 .env 파일에 입력한다. 초기 비밀번호는 'changeme'로 설정되어있음
- 그리고, 새 비밀번호로 logstash와 kibana를 다시 시작한다.
docker-compose up -d logstash kibana
http://localhost:5601에 접속해 로그인 할 때 주의할 점은 kibana의 비밀번호가 아니라, elasticsearch의 비밀번호를 입력해야한다!
- elasticsearch 확인을 위해 http://localhost:9200에 접속하고, 팝업 창에 로그인 정보를 입력한다.
아래 그림과 같이 정보가 뜬다면 무사히 설치한 것이다.
장고(django) 설치하기
설치하기전 가상환경 설정하기
vscode 환경을 기준으로 파이썬 가상환경을 설정한다.
python -m venv venv_search
를 터미널에 입력- [ Ctrl + Shift + P ] 키를 눌러 ">select Interpreter"를 검색해서 가상환경 선택
- 그리고 새 터미널 생성하면, 자동으로 가상환경에 진입함
명령어를 입력하면 루트폴더에 가상환경으로 설정한 이름의 폴더가 생성된다. (여기서는 'venv_search')
그리고 필요한 라이브러리를 한번에 설치하기 위해서, 루트 경로에 requirements.txt
를 생성한 뒤 아래 내용을 작성한다.
라이브러리의 버전은 각자 원하는 환경에 맞게 변경하고, 라이브러리를 추가하거나 삭제해도 됨.
아래 예시는 기존에 다른 대시보드를 구축하려고 만들어놨던 것이라 그닥 참고가 되지 않을 수 있음...
특히, elasticsearch가 6, 7, 8버전으로 업데이트 되면서 많이 변했기 때문에 원하는 버전이 있다면 특정하는 것이 좋음.
이 블로그의 글은 최대한 현재(2022-10-25) 기준으로 최신 버전의 엘라스틱서치를 다루고자 함.
Django==3.1.14
pyexcel
pyexcel-io
elasticsearch
elasticsearch-dsl
django-elasticsearch-dsl
djangorestframework
numpy==1.22.3
pandas==1.4.2
asgiref==3.5.0
autopep8==1.5.2
dj-database-url==0.5.0
gunicorn==20.0.4
plotly==4.6.0
psycopg2-binary==2.9.3
pycodestyle==2.5.0
python-dateutil==2.8.1
python-decouple==3.3
pytz==2020.1
retrying==1.3.3
six==1.14.0
sqlparse==0.3.1
Unipath==1.1
whitenoise==5.0.1
sparql_dataframe==0.4
python-dotenv==0.20.0
터미널에 pip install -r requirements.txt
를 입력해 모든 라이브러리를 설치한다.
장고 프로젝트 생성하기
보통 장고 프로젝트를 생성하면, 프로젝트 이름으로 루트폴더가 생기고 그 안에 project와 app이 설치된다.
하지만, 내 경우 그런 구조를 선호하기 않기 때문에 아래와 같이 .
을 붙여서 해당 경로를 루트 폴더로 설정해준다.
#.을 붙이면 해당 디렉토리에 manage.py 생김
django-admin startproject search_project .
django-admin startapp search_app
잘 설치되었는지 확인하기 위해 manage.py가 있는 경로에서
python manage.py runserver
입력- http://127.0.0.1:8000/ 접속해서 아래처럼 나오면 설치 완료!
참고글
- Install Elasticsearch with Docker
- Elasticsearch 설치 시 vm.max_map_count 값 변경하기
[여담]
장고, 엘라스틱서치로 구현한 웹 프레임워크 글들이 존재하지만,
최신버전의 엘라스틱을 반영하지 않고 있어서 뭔가 하나씩 안되더라구요..
이부분을 야매로 고군분투하며 해결한 사람으로써 조금이라도 도움이 되고자 블로그에 기록을 남깁니다!
하지만 블로그 글 쓰는거 호락호락 하지 않군요...그래도 포기하지 않고 끝까지 작성해보겠습니다~~
다음 포스팅은 엘라스틱서치에 json 데이터를 넣는법!😊
'개발일지' 카테고리의 다른 글
[Elasticsearch] 검색 쿼리 단어 중 특정 단어에 가중치 - multi_match, match, should (1) | 2023.05.01 |
---|---|
[NLP] Kiwi 설치와 keyBert 한글 키워드 추출 (0) | 2023.04.28 |
[TextRank] KR-WordRank 한국어 키워드 추출 (0) | 2023.04.27 |
[TextRank] textrankr과 konlpy를 사용한 한국어 요약 (0) | 2023.04.27 |
[TextRank] pytextrank와 spacy 한글 키워드 추출 (0) | 2023.04.27 |
- Total
- Today
- Yesterday
- knowledgegraph
- psycopg
- MongoDB
- python'
- hadoop
- Claude
- Postgis
- p-tuing
- polars
- 지식그래프
- pandas
- rdflib
- difflib
- 3d-force-graph
- knowlegegraph
- 키워드추출
- PEFT
- python
- PostgreSQL
- cursorai
- LLM
- vscode
- 지식그래프임베딩
- Vue3
- TextRank
- Encoding
- writerow
- SPARQL
- vervel
- ChatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |