Elastic stack의 전체 구조 간략화

0


참고하면 좋은 영상: https://www.youtube.com/watch?v=MWItWo67F14&t=61s


[ELASTICSEARCH]

Elastic stack(ElasticSearch, Kibana, Logstash)을 이용하면 전체 텍스트 검색보다 훨씬 더 많은 것을 처리할 수 있으며, 구조 데이터 및 집계 데이터를 매우 빠르게 처리할 수 있다.

단순히 검색을 위한 것이 아닌 모든 유형의 구조 데이터를 처리하며 로그 집계 등에 자주 사용된다.

신기한 것은, Hadoop이나 Spark, Flink와 같은 솔루션보다 훨씬 빠르다는 것이다.

Elasticsearch의 그래프 시각화, 머신러닝과 같은 새로운 기능들은 Hadoop, Spark, Flink 사이에서도 경쟁력이 있으며 몇 시간이 걸릴 수 있는 작업을 몇 밀리초 안에 해결할 수 있다.

따라서 적절하게 사용하면 elasticsearch는 검색 이외에도 강력한 도구가 될 수 있을 것이다.

ElasticSearch는 표면적으로 화려한 UI나 그래픽 인터페이스를 사용하지 않으며 그냥 JSON 요청을 처리한다.

다시 말하자면 Elasticsearch는 JSON 요청을 처리하고 JSON 데이터를 반환하는 서버일 뿐이다.

실제로 어떤 작업을 할지는 사용자에게 달려 있다.


[KIBANA]
또한 Elastic stack 내에서 딱딱해보이는 Elasticsearch 외에도 보기 편한 UI를 제공하는 Kibana가 존재한다.

Kibana를 사용해 데이터를 검색하거나 검색 인덱스를 그래픽으로 시각화할 수 있다. Kibana는 매우 복잡한 데이터 집계 데이터 그래프와 차트 작성, 로그 분석 등에 자주 사용된다.

따라서 구글 분석(Google Analytics)와 같은 작업을 자주 사용한다면 Elasticsearch와 Kibana의 조합을 사용해 대규모 구글 분석을 수행할 수 있다.


[LOGSTASH]
Beats 프레임워크에서는 Logstash라는 도구를 사용해 Elasticsearch에 데이터를 실시간 스트리밍 형식으로 게시할 수 있다.

예를 들어, 시간이 지남에 따라 검색 인덱스에 자동으로 입력하려는 웹 서버 로그가 있다면 FileBeat으로 웹 서버에서 새로운 로그 파일을 찾아 구문을 분석하고 Elasticsearch에서 요구하는 방식으로 구조화해 들어오는 Elasticsearch 클러스터에 넣을 수 있다.

Logstash는 우리들의 서버와 Elasticsearch 사이에서 데이터를 푸시하는 데 사용할 수 있지만, 대부분의 경우 중간 단계로 사용된다. 용량이 적은 FileBeat 클라이언트를 웹 서버에 배치하고
Logstash로 데이터를 수집해 시간이 지남에 따라 데이터를 Elasticsearch로 보낼 수 있다.

이는 로그 파일이나 Elasticsearch, 웹 서버에만 사용이 제한되지 않고 서로 다른 시스템을 연결하고 데이터를 이동시킬 수 있는 시스템이다.

profile
Software engineer who is interested in server development, computer vision, and soccer

0개의 댓글