본문 바로가기

카테고리 없음

ELK stack elasticsearch logstash kibana

요즘 elastic 제품군들중 많이 사용되는 ELK stack에 대해서 알아보자.


elk stack에 대한 이미지 검색결과


elasticsearch는 검색을 위한 solution으로 시작되었으나 분산, 실시간성, query성능에 힘입어 모니터링 tool로도 많이 쓰이고 있다. 

만약, log 혹은 지속적인 데이터를 가져와 실시간 혹은 배치성으로 분석한다면 ELK 스택을 고려해보면 좋다. 




logstash 

static/images/logstash.png


간단하게 여러형태의 input 데이터를 가공하여 우리가 원하는 형태의 output으로 가공하는 역할을 한다. 



위의 그림과 같이 input plugin으로 부터 다양한. input을 받아오고, filter로 부터 데이터를 가공하거나 필터링한후에 output plugin으로 원하는 곳으로 output을 전달한다. 

위의 그림에서 볼 수 있듯이 output을 elatsicsearch로 보내는 것도 가능한데 이렇게 데이터를 보내어 elasticserch에 저장한 후 그 데이터를 kibana로 모니터링하거나 분석하는 것이 요즘 대세이다. 


input plugin

참고 : https://www.elastic.co/guide/en/logstash/current/input-plugins.html

input plugin으로 file부터 tcp, http, kafka, jdbc등 정말 대부분의 input을 모두 받아 줄수 있다. 


filter plugin

참고 : https://www.elastic.co/guide/en/logstash/current/filter-plugins.html 

filter pluing에서 데이터를 가공하거나 필터링이 가능하다.


output plugin 

참고 : https://www.elastic.co/guide/en/logstash/current/output-plugins.html

input과 마찬가지로 elasticsearch, tcp, udp, redis, kafka등 다양한 곳으로 output을 전송가능하다. 




elasticsearch에 대해서는 http://the-earth.tistory.com/200 글을 참고 



Kibana

참고 : https://www.elastic.co/products/kibana 

elasticssearch에 저장된 data를 visualization해주는 툴이다. 



각종 chart (line, bar, map)등을 이용하여 원하는 dashboard를 만들수 있다. 



이처럼 ELK stack을 사용하면 아래와 같은 사용 시나리오를 생각해 볼 수 있다. 


검색 

log혹은 data를 input으로 받아 elastic에 넣고 kibana에서 검색해볼 수 있다. 

monitoring : server혹은 client등의 application로그를 받아 모니터링할 수 있다. 

csv등 분석을 원하는 데이터를 elastic에 올리고 kibana에서 여러가지 chart를 사용해 분석해 볼 수 있다.