🔍 elastic search
-
ELK 를 통한 사용자 요청에 대한 로그 수집🔍 elastic search/💡 elk 2022. 11. 23. 14:41
💬 Access Log 이용 이전에는 Elasticsearch를 이용해 access log를 수집 @Controller public class UserController { @GetMapping("/api/v1/users/") public User getUserInfo(@PathVariable("id") String id) { // 블라블라 } } 여기서 정의된 GET /v1/orders/ 라는 API가 사용되었지만 access log에는 다음과 같이 기록된다 127.0.0.1 - "GET /api/v1/users/A0000001 HTTP/1.1" 200 50 "-" "-" "127.0.0.1" 127.0.0.1 - "GET /api/v1/users/A0000002 HTTP/1.1" 200 50 "-" ..
-
ELK 구축 및 Filebeat로 로그 전송🔍 elastic search/💡 elk 2022. 11. 22. 11:23
📌 Docker Compose 로 ELK 구축 ELK 구축 https://github.com/deviantony/docker-elk mkdir ~/workspace cd ~/workspace git clone https://github.com/deviantony/docker-elk.git Logstash 파이프라인 설정 추가 Logstash 파이프라인 설정은 logstash/pipeline/logstash.conf 를 수정해주면 된다. Logstash 파이프라인 설정은 크게 다음의 3단계로 구성된다. Input Filter Output input { # FileBeat를 통해 로그 수집 beats { port => 5000 host => "0.0.0.0" ssl => false } tcp { port =..
-
Elasticsearch + Springboot🔍 elastic search 2022. 9. 27. 15:34
Docker-compose로 Elasticsearch 설치 compose 파일 생성 vi elasticsearch.yml version: '3.7' services: es: image: docker.elastic.co/elasticsearch/elasticsearch:7.15.2 container_name: elasticsearch environment: - node.name=single-node - cluster.name=beomsic - discovery.type=single-node ports: - 9200:9200 - 9300:9300 networks: - es-bridge kibana: container_name: kibana image: docker.elastic.co/kibana/kibana..
-
ES - Aggregations🔍 elastic search 2022. 9. 22. 17:23
Aggregations Elasticsearch는 검색엔진 뿐 아니라 로그 분석 을 비롯한 다양한 목적의 데이터 시스템으로 사용되고 있다. 이렇게 활용이 가능한 이유는 데이터를 단순히 검색할 뿐 아니라 여러가지 연산을 할 수 있는 Aggregation 기능이 있기 때문이다. Kibana 에서 바 차트, 파이 차트 등으로 데이터를 시각화 할 수 있는데 여기서 Aggregation 기능을 사용 aggregation은 번역하면 “집계” 라는 뜻이지만, ES에서는 원문대로 aggregation 혹은 애그리게이션으로 많이 표현. 크게 세 종류 Metrics Aggregations Bucket Aggregations Pipeline Aggregations Metrics Aggregations 필드 값에서 합계 또는..
-
ES - 텍스트 분석🔍 elastic search 2022. 9. 22. 13:53
역색인 구조 Elasticsearch는 역색인 구조를 사용해 데이터를 빠르게 검색할 수 있다. 각 문서의 text를 term으로 분할하고, term 들을 도큐먼트와 매핑 특정 키워드(term)로 포함하고 있는 문서들에 대한 Primary Key를 맵핑하는 인덱스 테이블 생성 인덱스 테이블을 활용하여 빠른 문서 탐색이 가능하다. 주로 BTree, Trie, Hash Table 등의 자료구조를 활용하여 구현 단점 영어의 경우 대소문자를 다른 텍스트로 인지한다. 복수형과 단수형이 동일하게 검색되지 않는다. jump, leap는 같은 의미지만 다른 텍스트로 인지 → 텍스트 분석을 통해 해결 텍스트 분석 Elasticsearch는 문자열 필드가 저장될 때 데이터에서 검색어 토큰을 저장하기 위해 여러 단계의 처리 ..
-
ES - 데이터 검색🔍 elastic search 2022. 9. 21. 19:55
ES는 검색에 사용하기 위한 데이터를 저장할 때 Term 으로 분석 과정을 거쳐 저장하기 때문에 검색 시, 대소문자, 단수나 복수, 원형 여부와 상관없이 검색이 가능하다. 이러한 특징을 Full Text Search ( = 전문 검색) 이라고 한다. Query DSL Elasticsearch는 검색을 위한 쿼리 기능을 제공 이런 데이터 시스템에서 제공하는 쿼리 기능을 Query DSL(Domain Specific Language) 이라고 이야기 한다. Elasticsearch의 Query DSL은 모두 JSON 형식으로 입력 검색 API를 사용해 Elastic search 데이터 스트림 또는 인덱스에 저장된 데이터를 검색하고 집계할 수 있다. API 쿼리 요청 본문 매개 변수는 Query DSL로 작성된..
-
ES - 기본 API🔍 elastic search 2022. 9. 21. 19:42
Index, Type, Document에 대한 CRUD API Index - RDBMS의 database 같은 개념 Type - RDBMS의 table 개념 Document - RDMBS의 ROW 같은 개념 입력 (PUT) 데이터 입력시 PUT 메서드를 이용 조회 (GET) GET 메서드로 가져올 도큐먼트의 URL을 입력시 도큐먼트의 내용을 가져온다. 삭제 (DELETE) DELETE 메서드를 이용해서 도큐먼트 또는 인덱스 단위의 삭제가 가능 수정 (POST) POST 메서드는 PUT 메서드와 유사하게 데이터 입력에 사용 가능 도큐먼트 id 의 자동 생성은 PUT 메서드로는 동작하지 않는다. ES API 구조 💡 http://://_doc/ 인덱스 클러스터에 존재하는 모든 index 조회 curl -XG..
-
Docker로 ES 설치하기🔍 elastic search 2022. 9. 21. 19:34
ES를 설치하는 방법 컴퓨터에 직접 ES 설치 docker를 사용해서 ES 설치 docker를 사용하면 elasticsearch, kibana 를 설치한 이미지를 내려받기만 하면 관련 서버를 손쉽게 구성할 수 있다. docker에 ES 설치하기 ES 이미지 다운로드 docker pull elasticsearch:{version} docker 이미지가 정상적으로 다운되었는지 확인 docker images elasticsearch가 있으면 정상적으로 설치가 된것이다. Docker 실행 ES 이미지를 정상적으로 받으면, docker 명령어를 통해 컨테이너를 실행 docker run -d -p 9200:9200 -p 9300:9300 -e "discover.type=single-node" --name elast..