ALL 40

비트(beat)

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 7장을 정리하여 쓴 글입니다. 비트 가볍고 사용하기 쉬운 데이터 수집기이다. 고 프로그래밍 언어로 작성된 경량 프로그램이기 때문에 시스템에 큰 부담을 주지 않으며 로그스태시, 엘라스틱서치와 연계해 다양한 시스템의 이벤트를 수집할 수 있게 도와준다. 비트는 수집한 데이터를 엘라스틱으로 실어 나르기 위한 최전방에 위치한 소프트웨어이다. 비트와 로그스태시와 유사해 보일 수 있으나 차이점이 있다. 로그스태시는 다양한 플러그인을 포함해 범용성이 높은 만큼 무겁게 움직인다. 비트는 범용성을 포기하고 특정 목적만 수행하도록 가볍게 구성되어 애플리케이션의 성능에 영향을 미치지 않고 필요한 이벤트를 수집할 수 있다. 하지만, 비트와 로그스태시를 따로 사용하지는 않는다..

Logstash config directory 위치(brew 설치 시)

엘라스틱 스택 개발부터 운영까지에 대한 책에서 Logstash에 대한 실습은 윈도우 환경에서 하게 된다. 맥 사용자는 혼동이 일어날 수가 있다. 저 같은 경우에는 brew로 Logstash를 설치하는 바람에, config directory 위치를 못찾아서 헤맸습니다. brew로 설치 된 Logstash 위치 logstash --help를 통하여 logstash 설치 위치를 알 수 있다. 이 위치에 대해서 차근차근 들어가면 libexec 안에 config 폴더가 있다. 하지만 이 config 폴더는 /usr/local/etc/logstash에 적용되어 있다. 정확한 위치를 알았으니 다음에는 /usr/local/etc/logstash을 통하여 config directory를 수정하면 된다.

로그스태시(LogStash)

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 6장을 정리하여 쓴 글입니다. 로그스태시란? 일단 로그는 성능, 오류, 도작 과정 등의 중요한 정보를 담고 있다. 이러한 로그는 일반적으로 시스템 동작의 모든 행위나 이벤트를 기록해야 한다. 그리고 이 로그는 빅데이터에서는 로그 정보를 데이터 분석에 활용하기도 한다. 많은 어플리케이션에 대한 로그를 하나로 모은다고 했을때 로그는 반정형데이터라서 어플리케이션마다 설정하지 않으면 다르게 찍히게 된다. 로그 스태시는 1) 이러한 로그들을 수집, 정제하여 한눈에 보기 좋도록 만들어준다. 추가로 장애 대응 로직이나 성능 저하 요인을 쉽게 파악할 수 있는 모니터링 API, 간단한 조정으로 성능을 튜닝할 수 있는 파라미터들도 제공한다. 2) 로그스태시는 비츠, 로..

살려줘!! HyperLogLog

엘라스틱서치 스터디를 하던 중 HyperLogLog에 대한 이야기가 나왔다. HyperLogLog에 대해 이야기하기 전에 일단 왜 HyperLogLog가 나왔는지에 대해서부터 알아야 한다. 엘라스틱서치에서는 집계 쿼리를 이용하여 통계 데이터를 만든다. 이러한 통계 데이터를 만드는 종류 중에 필드의 유니크한 수를 만들기 위한 데이터를 만들 수가 있다. 그런데, 내가 써놓고서도 필드의 유니크한 수가 뭔지 모르겠다. 필드의 유니크한 수....??? 필드의 유니크한 수.. 필드의 유니크한 수는 바로 중복된 값을 제외한 데이터의 수를 말한다. 예를 들어, 필드에 월/화/수/목/금/월/화/수/목/금/토/일 데이터가 있다면 여기서 중복된 값을 제외하면 월/화/수/목/금/토/일이 나오게 된다. 원래 12개의 필드가 중..

엘라스틱서치(elasticsearch) 집계

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 5장을 정리하여 쓴 글입니다. 엘라스틱서치도 데이터를 날짜별로 묶거나 특정 카테고리별로 묶어 그룹별 통계를 내는 집계 개념(aggregation)이 있다. 집계? 데이터를 그룹핑하고 통계값을 얻는 기능이다. 집계 기능은 강력한 검색 성능과 맞물려 엘라스틱서치를 고성능 집계 엔진으로 사용할 수 있도록 한다. 대표적인 예로 키바나가 있다. 집계의 종류는 메트릭 집계, 버킷 집계, 파이프라인 집계가 있다. 집계의 Request와 Response Request 집계의 Requset는 aggs로 시작을 한다. aggs는 집계 요청을 하겠다는 의미, my_aggs는 사용자가 지정하는 집계 이름이다. agg_type은 집계 타입을 의미한다. 집계 타입에 대해서는 ..

엘라스틱서치(elasticSearch) 검색 - 2부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 4장을 정리하여 쓴 글입니다. 1부에 이어서 2부에서는 전문 쿼리, 매치 쿼리, 용어 쿼리, 멀티 매치 쿼리, 범위 쿼리, 논리 쿼리, 패턴 쿼리에 대해서 알아보려고 한다. 엘라스틱서치는 검색 쿼리로써 리프 쿼리, 복합 쿼리로 나눌 수 있다. 리프 쿼리 ? 특정 필드에서 용어를 찾는 쿼리로 match, term, range 등이 있다. 복합 쿼리 ? bool 쿼리 등이 있다. 전문 쿼리 (Full Text Query)와 용어 수준 쿼리 (Term level Query)를 자세히 보고 복합 쿼리인 논리 쿼리로 개념을 확장하려고 한다. 전문 쿼리와 용어 수준 쿼리 전문 쿼리 ? 전문 검색을 하기 위해 사용되며, 전문 검색을 할 필드는 인덱스 매핑 시 텍스..

엘라스틱서치(elasticSearch) 검색 - 1부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 4장을 정리하여 쓴 글입니다. 엘라스틱서치는 전문 검색 기능을 시작으로 꾸준히 성장했으며, 다양한 검색 쿼리를 지원하고 있다. 1부에서는 쿼리 컨텍스트와 필터 컨텍스트의 차이, 쿼리 스트링과 쿼리 DSL의 차이점 그리고 유사 스코어를 계산법에 대해서 알아본 후 2부에서 전문 쿼리, 매치 쿼리, 용어 쿼리, 멀티 매치 쿼리, 범위 쿼리, 논리 쿼리, 패턴 쿼리에 대해서 알아보려고 한다. 쿼리 컨텍스트와 필터 컨텍스트 쿼리 컨텍스트 ? 질의에 대한 유사도를 계산해 이를 기준으로 정확한 결과를 먼저 보여줌. 필터 컨텍스트 ? 유사도를 계산하지 않고 일치 여부에 따른 결과만을 반환한다. 질의에 대한 유사도의 결과 반환에 따라 다르다고 나와있다. 쿼리 컨텍스트..

OOP와 FP의 조화 : 자바 스칼라 비교(Scala란?)

* 해당 글은 모던 자바 인 액션 Chapter 20을 요약한 글입니다. 해당 챕터에서는 함수형 프로그래밍을 더욱 자극하기 위하여 자바와 스칼라를 비교하여 함수형 프로그래밍에 대한 호기심을 만족시켜주기 위하여 작성되었다. 하지만 나는 스칼라에 대해 정리하려고 한다. Scala란? 함수형 프로그래밍 언어로 자바의 복잡함을 단순화 시키기 위하여 만들어진 언어이다. 자바와 같이 JVM 위에서 돌아간다. Scala의 자료구조는 리스트, 집합, 맵, 스트림, 튜플, 옵션 등을 제공한다. Scala는 Java interface 대신에 트레이트를 사용한다. 스칼라 구조 Class Hello { val Hello = "Thanks for reading our book") def sayThankyou() { printl..

Scala 2022.02.26

엘라스틱서치(elasticSearch) 기본 - 2부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 3장을 정리하여 쓴 글입니다. 벌크 데이터 POST _bulk {"index":{"_index":"test", "_id":"1"}} {"field":"value one"} {"index":{"_index":"test", "_id":"2"}} {"field":"value two"} {"delete":{"_index":"test", "_id":"2"}} {"create":{"_index":"test", "_id":"3"}} {"field":"value three"} {"update":{"_index":"test", "_id":"1"}} {"doc":{"field":"value two"}} 여러개의 Document를 각각 API를 불러서 요청하는 것보다 B..

엘라스틱서치(elasticSearch) 기본 - 1부

해당 글은 엘라스틱 스택 개발부터 운영까지라는 책 중 3장을 정리하여 쓴 글입니다. ElasticSearch Request / Response ElasitcSearch의 Request와 Response는 모두 REST API 형태로 제공한다. REST API란? Representational State Transfer 약자로써 웹상의 모든 리소스에 URL를 부여하고 활용하는 아키텍처이다. 시스템 상태 확인 - cat (compact and aligned text) cat를 통해 제공하는 기능들은 시스템의 상태를 확인하는 용도이다. cat API를 통해서 Node / Shard / Templat 등의 상태 정보를 확인 할 수 있다. 현재 클러스터 상태를 빠르게 확인할 수 있다. 즉, 시스템 운영할 때 클러..