본문 바로가기

IT

(6)
Elastic search Master Node & Data Node 마스터 노드와 데이터 노드에 대해 알아보자. Elasticsaerch에서 노드의 종류는 마스터 노드와 데이터 노드로 나눌 수 있습니다. 마스터 노드는 index의 메타데이터를 관리하고 노드 내 샤드의 위치와 클러스터의 정보를 관리하는 역할을 수행한다. 추가적으로, 마스터 후보 노드가 존재합니다. 마스터 후보 노드들은 마스터 노드는 아니지만, 마스터 노드가 특정 에러나 네트워크 문제로 유실되는 경우, 마스터 노드의 역할을 수행하는 노드로써 마스터 후보 노드의 개수를 설정할 수 있습니다. 데이터 노드들은 실제 데이터를 저장하고 처리하는 역할을 수행하며, 클러스터의 관리 작업으로부터 벗어나 오로지 데이터 처리에만 집중할 수 있다. 마스터 후보 노드의 최소 조건) - 마스터 후보 노드의 최소 조건이 있는데, 이..
Elastic search Index & shards 인덱스(index)와 샤드(shards)에 대하여 알아보자. Elasticsearch에서 단일 데이터의 단위는 도큐먼트(document)이고, 이 도큐먼트들의 집합을 인덱스(index)라 칭한다. 인덱스는 샤드(shard)라는 단위로 분리되어 각 노드에 분산되어 저장되며 샤드는 루씬의 단일 검색 인스턴스로 사용된다. 샤드는 프라이머리(primary) 샤드와 레플리카(replica) 샤드로 나뉘는데 클러스터에 노드를 추가하게 되면, 샤드들이 각 노드(클러스터 내)들로 분산되어 저장되어 진다고 하였다. 처음 생성된 샤드들은 프라이머리 샤드가 되며, 이 프라이머리 샤드들은 자신과 똑같은 복제본의 레플리카 샤드를 생성한다. 즉, 인덱스가 5개의 샤드로 구성된다고 가정할때 프라이머리 샤드 5개, 레플리카 샤드 5..
Elastic search 클러스터(Cluster) 클러스터(Cluster)란 무엇일까? - 각기 다른 Server들을 하나로 묶어, 마치 하나의 시스템처럼 동작하도록 함으로써 고가용성 서비스를 제공하는 것을 말한다. Elastic Stack에서는 대용량 Data의 증가에 따라 스케일 아웃과 Data 무결성을 위해 클러스터링 기능을 제공한다. 클러스터 내에는 노드(Node)들이 존재하며, 단 하나의 노드만 존재하더라도 클러스터로 구성되어야 한다. 노드들은 Client와 통신을 위한 http port(9200~9299)와 노드 간 Data 통신을 위한 TCP port(9300~9399) 총 2개의 통신 채널을 오픈하고 있다. - 동일한 Server의 경우, 노드 증가에 따라 포트번호는 +1씩 증가. 위 그림처럼 같은 클러스터(Cluster)에 위치한 노드들..
Elastic Stack Data flow Elastic Stack의 Data processing flow에 대해 알아보겠습니다. 중점적으로 봐야 할 부분은 Data가 어떻게 수집되고 처리되어 어떤 방식으로 표출되는지 정리를 해두는 게 좋을 것 같다. Elastic Stack에서 Data를 elastic search 저장소에 저장하는 행위를 인덱싱(indexing)한다고 표현한다. 먼저, 수집 유닛인 beats에 의해 각종 유형(file, packet, metric)의 Data들이 경량 에어전트에 의해 수집되어 indexing 되거나, logstash로 전송 후 filtering을 거쳐 elastic search로 indexing 될 수도 있다. 수집된 대용량의 Data들은 elastic search에 저장되어 kibana를 통해 다양한 시각도구..
Elastic Stack 구성 및 요소별 특징 Elastic Stack은 elasicsearch, logstash, kibana로 구성되며 앞글자를 따와 초기에 ELK라고 불리었고, 5.0.0 버전 이후부터 beats가 포함되어 Elastic Stack이라는 명칭으로 불리게 되었다. 또한, X-pack, Elastic Cloud를 지원하여 Enterprise Service를 제공한다. Elastic Stack 구성요소는 다음과 같다. ‘elastic search + kibana + logstash + beats’ 각 구성요소별 특징을 알아보자. 1. kibana - Data 실시간 분석을 통한 시각화 도구. - 그래프, 차트, 히스토그램, 위치정보 제공. 2. elastic search - Elastic Stack의 심장부라고 불리는 가장 중요한 유..
Elastic Stack 소개 및 사용사례 Elastic Stack은 여러 유형의 Data 및 Log를 수집하고, 루씬(Lucene) 기반의 강력한 검색엔진을 통해 분석을 하여 사용자에게 시각화 도구를 지원해 주는 오픈소스이다. 대규모 서비스를 제공하는 시스템에서는 서버 과부하 방지를 위해 로드밸런싱 및 분산처리를 실시하는데, DBMS를 통하여 시스템 모니터링 및 Log 분석을 실시할 수 있지만 보다 자세한 로그 분석을 위해 각 서버에 접속하여 로그를 분석해야 한다는 불편함을 겪을 수 밖에 없다. 이러한 문제를 극복하기 위해 Elastic Stack은 분산된 시스템에서 발생하는 여러 Data 및 Log를 수집하는 저장소의 역할뿐만 아니라, Data 검색/분석의 기능을 지원한다. 그렇다면 Elastic Stack의 사용사례는 무엇이 있을까? 대표적..