본문 바로가기

ELK스택

(11)
[Elasticsearch] Logstash 설치 및 실행 이번 글에서는 3가지를 정리해 보려고 합니다. Logstash 파이프라인 구조 Logstash 설치 및 실행가능 옵션 Logstash 실행(input - tcp방식, output - elastic방식) Logstash 파이프라인 구조 Logstash는 데이터를 수집을하고 그 데이터를 필요한 모양으로 가공을 하여 Elasticsearch뿐만 아니라 필요한 곳으로 데이터를 보낼 수 있습니다. 그래서 Logstash는 어느정도 규모가 있는 아키텍처 시스템에서 잘 활용이 되기도 합니다. 예를들어 수집한 데이터를 AWS S3에 올리거나 Elasticsearch에 보내거나 혹은 파일로 보내거나 이런식으로 수집한 데이터를 다른곳에 보낼때, Logstash가 유용하게 사용 될 수 있습니다. Logstash는 크게 3단..
[Elasticsearch] 노리(nori) 한글 형태소 분석기 이번 글에서는 2가지를 정리해 보려고 합니다. 노리(nori) 설치 노리(nori) 설정 노리(nori)가 필요한 이유를 간단히 설명드리면, Elasticsearch에서는 한글을 단어단위로 나눌때 복합어, 합성어 등 정확하게 단어를 나누기가 쉽지 않습니다. 그래서 한글을 형태소 분석을 하기위해서는 Elastic사에서 직접 개발한 한글 형태소 분석기인 노리(nori)가 필요합니다. 노리(Nori) 설치 노리(Nori)를 사용하기 위해서는 "bin/elasticsearch-plugin install analysis-nori" 명령어를 통해 설치를 진행해야 합니다. 아래와 같이 진행이 되었다면 설치가 완료된 것입니다. 설치가 완료되면 Elastic서버를 내렷다가 다시 올려줍니다. 이제 노리(Nori)를 사용 ..
[Elasticsearch] 데이터 색인과 텍스트 분석 이번 글에서는 2가지를 정리해 보려고 합니다. 역 인덱스(Inverted index) 텍스트 분석과정(Text Analysis) 참고로 이번에 사용하는 이미지는 https://esbook.kimjmin.net/06-text-analysis/6.1-indexing-data에서 인용하였습니다. 역 인덱스(Inverted index) 역 인덱스를 알아보기 전에 RDBMS에 대해서 먼저 알아보도록 하겠습니다. Oracle이나 MySql같은 관계형데이터베이스는 "fox"라는 단어가 들어 있는 데이터를 검색할 때, Text컬럼을 한줄씩 내려오면서 검색하게 됩니다. 이럴경우 테이블에 데이터가 많으면, 모든 로우를 읽고 판단해야하기 때문에 시간이 오래걸리게 됩니다. Elasticsearch에서는 데이터를 저장할 때, ..
[Elasticsearch] Query DSL : Bool Range 이번 글에서는 2가지를 정리해 보려고 합니다. 복합(Bool) 쿼리 - (must, must_not, should, filter) 범위(Range) 쿼리 - (숫자/날짜값 범위검색) 복합(Bool) 쿼리 - (must, must_not, should, filter) 4가지의 복합쿼리를 알아보기 전에 기본적인 개념을 잡고 가도록하겠습니다. Bool쿼리는 아래와 같은 4개의 인자를 가지고 있으며, 각 인자 안에 각각의 쿼리를 배열 형식으로 넣도록 되어있습니다. must : 쿼리가 참인 도큐먼트를 검색합니다. must_not : 쿼리가 거짓인 도큐먼트를 검색합니다. should : 이 쿼리에 해당하는 도큐먼트의 점수를 올립니다. filter : 쿼리가 참인 도큐먼트들만 검색하지만, 점수를 계산하지 않아 mus..
[Elasticsearch] Query DSL : 풀텍스트(Full Text) 이번 글에서는 2가지를 정리해 보려고 합니다. 풀텍스트 쿼리 (match, match_phrase, query_string) Relevency (연관성/정확도) 풀텍스트 쿼리(match, match_phrase, query_string) 먼저 공부하기위해 사용할 데이터를 넣어줍니다. 5가지의 데이터를 넣고 본격적으로 Elasticsearch에서 사용하는 주요 쿼리를 알아보겠습니다. match 아래의 쿼리는 message필드에서 "dog"가 들어있는 데이터를 조회한 쿼리입니다. match검색과 같은경우는 여러개의 검색어를 넣을경우 기본으로 OR연산을 실행합니다. 그 결과 quick이 들어간 데이터도 찾아서 뿌려주게되는 결과를 얻었습니다. 검색조건이 OR이 아닌 AND로 변경하고 싶을경우에는 operator..
[Elasticsearch] CRUD(입력, 조회, 수정, 삭제, 검색) 이번 글에서는 3가지를 정리해 보려고 합니다. CRUD명령어 벌크 API - (_bulk) 검색 API - (_search) window는 cmd창 mac은 terminal창에서 명령어를 직접 사용하여 데이터를 저장하거나 수정이 가능하지만, 저는 Kibana의 DevTools를 사용하여 학습을 진행하려고 합니다. 이 글은 아래 링크를 참조하여 작성되었습니다. https://esbook.kimjmin.net/04-data/4.2-crud 4.2 CRUD - 입력, 조회, 수정, 삭제 이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민(kimjmin@gmail.com)에게 사용 내용을 알려주시기 바랍 esbook.kim..
[Elasticsearch] Kibana 설정 및 실행 이번 글에서는 3가지를 정리해 보려고 합니다. 전체 클러스터 아키텍쳐 구성(현재(Kibana 미실행) -> 학습(Kibana 설정 및 실행)) Kibana.yml파일 환경설정 Kibana 실행 전체 클러스터 아키텍쳐 구성 지금까지 구성한 아키텍쳐는 3개의 노드를 es-cluster로 구성하였고, 2개의 방화벽을 추가하여 외부 및 내부의 통신을 할 수 있도록 설정해두었습니다. 지금부터 구성하게 될 아키텍쳐는 Kibana서버를 실행하고 방화벽 설정을 통하여 Client(외부)에서 Kibana서버에 접근이 가능하도록 구성을 하려고합니다. 그리고 Kibana는 elastic-3에서 실행하려고 합니다.(현재 이미지는 elastic-4라고 되어있음) 참고로 방화벽 관련 설정은 아래 영상을 참고하였습니다. https..
[Elasticsearch] 클러스터 구성 이번 글에서는 3가지를 정리해 보려고 합니다. 클러스터 아키텍처 구성도(현재(단일) -> 학습(여러개)) 추가 노드를 위한 VM인스턴스 생성 및 방화벽 설정 3개의 노드로 클러스터 구성 참고로 클러스터 아키텍처를 구성하는데 아래 영상을 참고하였습니다. https://www.youtube.com/watch?v=LM5IqDTWN60&list=PLhFRZgJc2afp0gaUnQf68kJHPXLG16YCf&index=8 클러스터 아키텍처 구성도(현재(단일) -> 학습(여러개)) 아래 그림은 클라이언트가 elastic이라는 태그로 9200번 포트를 열고 filter IP를 0.0.0.0/0으로 설정하여 외부 어느곳에서 접근 가능하도록 설정을 한 방화벽을 통해 elastic-1호스트에 접근할 수 있는 클러스터 구성..