DataEngineering/ElasticStack 10

[ElasticSearch] 엘라스틱서치 운영환경 튜닝 (OS 튜닝)

- 엘라스틱서치를 운영하기 위해 어떤 OS 옵션을 변경하거나 튜닝해야 할까요?- 공식 문서를 통해 알아보겠습니다. Swap 메모리 비활성화 https://www.elastic.co/docs/deploy-manage/deploy/self-managed/setup-configuration-memory?utm_source=chatgpt.com Disable swapping | Elastic DocsMost operating systems try to use as much memory as possible for file system caches and eagerly swap out unused application memory. This can result in...www.elastic.co "Elastic..

[Elastic Agent] ElasticAgent 및 Fleet 서버 실습

Elastic Agent서버의 로그(Log), 메트릭(metric), 보안 이벤트(Security Event)를 수집해서 ElasticSearch 및 Logstash로 보내는 통합 수집기입니다. 엘라스틱 에이전트는 호스트당 1개만 설치할 수 있습니다.즉 서버당 한대를 운영한다고 생각하면 좋습니다. Beats, Elastic Agent로그를 수집한다는 점에서 비츠와 비교될 수 있는데 ElasticAgent가 비츠 보다 좀 더 용이한 면이 있습니다.여러대의 서버에서 로그 수집을 위해 여러 비츠가 동작한다고 생각했을 때 동작하는 비츠들을 한 번에 관리하기는 쉽지 않을 것입니다.엘라스틱 에이전트는 플릿 서버를 활용하여 중앙 집중형으로 로그 수집기들을 관리할 수 있습니다.항목BeatsElastic Agent중앙 ..

[ElasticSearch] ILM 실습 (feat. Shrink, Force Merge)

https://saulog.tistory.com/39 [ElasticSearch] ILM(Index Lifecycle Management) + Data StreamILM?- ElasticSearch의 ILM(Index Lifecycle Managemet)은 인덱스의 생명주기를 자동으로 관리하는 기능입니다.- 보통 로그 데이터나 모니터링 데이터처럼 시간이 지나면 가치가 떨어지는 데이터에 많이 사용saulog.tistory.com Shrink 여러 개의 Primary Shard를 더 적은 수의 Primary Shard로 재구성하는 작업이때 HOT 페이즈에서 다른 페이즈로 이동하는 경우 쉬링크를 사용하여 Primary Shard의 개수를 더 적게 재구성할 수 있습니다.일반적으로 Hot Phase에서 색인이 완..

[LogStash] 로그스태시 소개 및 다중 파이프라인 실습

- 로그스태시는 플러그인 기반의 오픈소스 데이터 처리 파이프라인 도구입니다.- 데이터 전처리 과정을 별도의 어플리케이션 작성 없이 비교적 간단한 설정만으로 수행할 수 있습니다. - 로그스태시는 비츠를 포함, 엘라스틱 에이전트 및 여러 소스파일을 입력으로 받을 수 있고 데이터를 수정/삭제/추가해 엘라스틱서치나 다른 시스템으로 데이터를 전송할 수 있습니다. 로그스태시 특징플러그인 기반 로그스태시의 파이프라인을 구성하는 각 요소들은 전부 플러그인 형태로 만들어져 있습니다. 기본으로 제공하는 플로그인 외에도 수많은 플러그인을 찾을 수 있으며, 기본으로 제공하는 플러그인 외에도 수많은 플러그인을 찾을 수 있습니다. 로그스태시에서 활용하는 기능인 , , 은 모두 플러그인의 조합으로 구성됩니다..conf 파일을 ..

[ElasticSearch] ILM(Index Lifecycle Management) + Data Stream

ILM?- ElasticSearch의 ILM(Index Lifecycle Managemet)은 인덱스의 생명주기를 자동으로 관리하는 기능입니다.- 보통 로그 데이터나 모니터링 데이터처럼 시간이 지나면 가치가 떨어지는 데이터에 많이 사용합니다.(시계열 데이터, 로그성 데이터) ILM의 단계(Phase) Hot Phase- 가장 최근의 데이터가 저장되는 단계- 업데이트와 질의가 매우 빈번한 인덱스인 경우- 현재 사용하는 인덱스를 관리하는 단계이기 때문에 롤오버를 해당 단계에 설정합니다. Warm Phase- 조금 오래된 데이터가 저장되는 단계- 업데이트는 없으나 질의가 빈번한 인덱스 Cold Phase- 거의 조회가 되지 않는 데이터가 저장되는 단계- 업데이트는 없으나 간헐적 질의가 발생하고 질의 성..

[ElasticSearch] 엘라스틱의 분석기

엘라스틱서치는 전문 검색을 지원하기 위해 역인덱싱 기술을 사용합니다. 역인덱싱(Inverted Indexing, 역색인)- 문서의 내용을 분석하여 단어(Token) 기준으로 어떤 문서에 포함되어 있는지 저장하는 과정입니다.- 예를 들어 "엘라스틱서치 공부"라는 문서는 "엘라스틱서치", "공부" 같은 토큰으로 분리되고, 엘라스틱서치는 이를 기반으로 빠른 전문 검색을 수행합니다. 전문 검색 (Full Text Search)- 장문의 문자열에서 부분 검색을 수행- 사람이 문장을 검색하는 방식처럼 단어를 분석하고, 관련성 높은 문서를 찾아주는 방식을 뜻합니다. 분석기(Analyzer) 구성역인덱싱을 이용한 전문 검색에서 양질의 결과를 얻기 위해서는 문자열을 나누는 기준이 중요하며, 이를 지원하기 위해 ..

[ElasticSearch] 엘라스틱의 mapping

- 엘라스틱서치에도 관계형 데이터베이스의 스키마와 비슷한 역할을 하는 것이 있는데 바로 매핑입니다. - 매핑 작업은 엘라스틱의 인덱스를 설정할 때 정의합니다.- JSON형태의 데이터를 루씬이 이해할 수 있도록 바꿔주는 작업입니다. Dynamic Mapping (다이내믹 매핑)- 문서가 인덱싱 될 때 엘라스틱서치가 자동으로 필드 타입을 추론해서 생성하는 기능 Explicit Mapping (명시적 매핑)- 사용자가 직접 매핑을 설정하는 것. 오늘 알아볼 것은 명시적 매핑입니다. 인덱스 매핑 : 기본 틀 PUT ecommerce-demo{ "settings": { }, "mappings": { "properties": { } }} * settings : 인덱스..

[ElasticSearch] 엘라스틱의 샤드

샤드(Shard) - 분산처리 시스템인 엘라스틱서치는 여러 대의 노드를 효율적으로 활용하기 위해 데이터를 샤드라는 단위로 나눠 분산 저장합니다.- 데이터를 분산 저장하면 클러스터의 수평적인 확장이 가능하고 작업을 분산 처리해 성능과 처리량을 높일 수 있습니다. - 예를 들어 1억 개의 문서(document)가 있다고 가정했을 때 이 문서들을 하나의 인덱스에 저장합니다. ➡️ EX) 엘라스틱서치의 경우 이 문서들을 내부적으로 shard_0, shard_1, shard_2에 나눠 저장합니다. 분산 저장여러 node 사용병렬 검색shard 별 병렬 검색확장성데이터 증가 대응 직접 테스트를 진행하겠습니다.(index의 settings설정에 아래의 옵션을 설정하지 않으면 인덱스가 생성될 때 기본값이 입력..

[ElasticSearch] 엘라스틱 클러스터링 구성(feat. Kibana)

엘라스틱서치를 클러스터링으로 구성하면 다음과 같은 점들이 좋습니다. - 장애 대응 (Replica shard 사용 용이) => 무중단 운용 가능 - 검색 성능 향상 => 병렬 검색을 통한 빠른 데이터 서칭 - 저장 공간 확장 => scale out으로 인한 저장 공간 확장 엘라스틱서치를 클러스터링으로 구성하는 방법에 대해서 알아보겠습니다. (MacOS 기준) node1.ymlcluster.name: elastic-clusternode.name: node1network.host: 127.0.0.1http.port: 9200transport.port: 9300path.data: /Users/imsol/nospoon/elastic/node1/datapath.logs: /Users/imsol/nospoo..

[ElasticSearch] 엘라스틱의 노드

엘라스틱서치에서 대표적으로 많이 사용하는 세 가지 노드에 대해서 정리하였습니다.머신러닝 노드의 경우 라이센스가 필요하기 때문에 추 후 적용하여 포스팅을 진행하겠습니다. 노드(Elasticsearch)의 HTTP 계층과 전송 계층엘라스틱서치의 클러스터는 여러 개의 노드로 이뤄졌고 노드들은 서로 통신하며 클러스터를 구성하고 있습니다.하나는 클러스터 내부에서 사용하는 전송 모듈이고 다른 하나는 외부와 통신에 사용하는 HTTP 모듈입니다,cluster.name: elastic-clusternode.name: node1network.host: 127.0.0.1http.port: 9200transport.port: 9300path.data: /Users/imsol/nospoon/elastic/node1/datapa..