본문 바로가기

Big Data/Elastic stack

elastic stack #5 beats 소개 & quickstart #beats란? Beats는 특정 목적을 위한 데이터 수집기용 플랫폼입니다. 경량 에이전트로 설치되어 수백 개 또는 수천 개 데이터를 Logstash 또는 Elasticsearch로 전송합니다. 라고 공식홈페이지 한글 번역으로 소개하고 있다. 아래 그림을 보면 단번에 이해가 갈 것이다. Elastic stack에서 로그 에이전트로 최초 로그를 생성 및 수집한다. 그림처럼 직접 elasticsearch로 전달할 수 도 있고, Logstash로 전달할 수 있다.(다른 output 가능하다) #Beats 종류 Beats는 세부적으로 기능에 따라 나누어져 있다. Filebeat: 로그 파일의 데이터를 수집 Metricbeat: 서버의 CPU, 메모리 사용률 수집이 가능하고, DBMS나 Docker등의 서비스의 .. 더보기
elastic stack #4 kibana 소개 & quick start #kibana란? 공식페이지에서는 window into the Elastic Stack 라고 소개하고 있다. 엘라스틱 스택을 들여다보는 창(?)이라고 한다. 그냥 쉽게 elasticsearch의 데이터를 쉽게 시각화해주는 도구라고 보면된다. elasticsearch가 많은 인기를 끄는 큰 이유중에 하나이다. 쉬운 데이터 시각화! kibana는 node.js로 만들어진 Web Application이다. #kibana 설치 kibana설치에 앞서 당연히 설치된 elasticsearch가 필요하다. elasticsearch 설치 포스팅을 보고 미리 설치를 해놨다고 가정하고 다음예제를 진행한다. https://www.elastic.co/downloads/kibana 에서 다운받아 압축을 푼다. 그리고 약간의 c.. 더보기
elastic stack #3 logstash 소개 & quick start #Logstash란? 공식페이지에서는 data collection engine 라고 소개하고 있다. 즉, 데이터를 수집하여 전달하는 역할을 하는 도구이다. 데이터를 그대로 전달할 수 도 있고, 데이터를 가공하여 전달할 수 있다. 여러 플러그인을 통해 다른 시스템과의 호환성도 좋다. 주로 Elasticsearch와 함께 쓰인다. #Logstash 설치 https://www.elastic.co/downloads/logstash 에서 다운받아 압축을 푼다. 이게 설치 끝이다. 데이터를 수집하는 역할을 하기 때문에 주로 application server의 로그를 저장한다는 가정하에 각 server에 설치하여 동작하도록 하는 구조이다. 일단 다음 포스팅으로 ELK Stack을 사용하여 web server 의 로그.. 더보기
elastic stack #2 elasticsearch 설치 & quick start 1. elasticsearch 설치 정말 쉽게 설치가 가능하다. https://www.elastic.co/downloads 에서 elasticsearch를 다운받아 압축을 해제한다. 글 작성 기준 최종 버전인 5.2 로 예제를 작성할 것이다. JAVA 1.8이 기본적으로 설치가 되어있어야 한다. cluster 구성 및 elasticsearch 설정을 변경하기 위해 설정파일의 수정이 필요하지만 지금 예제에서는 local에서 간단하게 설치할 것 이기 때문에 따로 설정파일의 변경이 필요하지 않다. 2. elasticsearch 실행 설치된 폴더에서 bin 폴더에 실행파일이 있다. os에 따라 실행 파일이 다르다. mac osx기준으로 예제를 설명하겠다. (windows는 .bat 파일을 사용) 실행 파일을 다.. 더보기
elastic stack #1 elasticsearch 소개 #elasticsearch란? https://www.elastic.co/kr/ 공식적으로 A Distributed RESTful Search Engine 라고 설명하고 있다. 설명을 보면 알수 있듯이 분산환경에서 RESTful API를 지원하는 검색 엔진이다. 루씬을 기반으로한 검색엔진을 사용하고, 대용량 데이터를 처리하는데 적합하며 준실시간으로 데이터를 저장하고 검색, 분석할 수 있다. #사용목적 대용량 자료에서의 검색 시간이 중요한 시스템 개발 시 사용 데이터를 저장하고 분석하기 위해 NoSql로서 사용 #특징 분산시스템: 이로인해 높은 확장성과 고가용성을 가질 수 있다. Full Text Search Multi Tenancy: 하나의 서버에 여러 인덱스를 저장, 관리 할 수 있으며, 독립된 하나의 .. 더보기
geoip 데이터 지도에 표시하기 elasticsearch의 데이터 타입중 geoip가 있다. 이 데이터는 kibana에서 지도에서 표시가 가능하다. apache-access로그의 client IP를 통해 지도에 데이터를 표시하는 예제를 만들어 보자 121.160.132.126 - - [30/Jan/2017:14:24:02 +0530] "GET /index HTTP/1.1" 200 200 common 패턴의 apache access 로그이다. 여기에있는 client IP를 통해 geo_point 데이터를 추출해 Kibana를 통해 지도에 표시해보자 apache access 로그 설정은 아래 글을 참조하면 된다. http://gyrfalcon.tistory.com/entry/Apache-Tomcat-access-log-%EC%84%A4%E.. 더보기