ELK

­3zu·2023년 3월 28일
0

데이터시각화

목록 보기
2/2
post-thumbnail

ELK란?

ELK 스택이란 Elasticsearch, Logstash, Kibana로 구성된 스택이다.
ELK 스택은 로그를 수집하고 집계 및 분석하여 모니터링 시각화를 제공한다.

기존에는 오픈 소스로 운영되었으나 새로운 버전의 소프트웨어는 오픈 소스가 아니기 때문에 라이선스를 잘 구분해서 사용해야 한다.

이름은 ELK지만 Logstash(데이터가공) → Elasticsearch(데이터검색) → Kibana(시각화) 순으로 동작한다.

Elasticsearch

Elasticsearch는 Apache Lucene을 기반으로 구축되고 배포된 검색 및 분석 엔진이다.

중요한 점은 schema가 없고, JSON 파일을 사용해 입출력을 한다.

Java로 작성된 시스템이기 때문에 기본 할당된 힙 메모리 크기가 최소 265MB에서 1GB라고 한다.
물리 메모리가 충분해도 Java 가상머신의 설정에 따라 메모리 사용량이 제한되므로... 실 사용 환경에서는 Elasticsearch 환경설정 파일에서 메모리 할당량을 조절해야 한다.

Logstash

데이터를 수집하고 가공하여 원하는 대상에 전송할 수 있도록 하는 오픈 소스 데이터 처리 파이프라인이다.

로그나 트랜잭션 데이터 같은 것들을 수집, 집계, 파싱하여 Elasticsearch로 전달해준다.

Logstash에는 사전 구축된 다양한 필터와 플러그인이 존재하는데 이로 인해 프로그램의 부피가 너무 커지고 많은 자원을 필요로 하는 문제점이 존재한다.
그래서 필터 기능 없이 가볍게 데이터를 처리하기 위해 Beats를 출시했다.
기존 ELK 스택과 Beats를 합쳐서 Elastic 스택이라고 부른다.

혹은 이를 대체하기 위해 Fluentd를 사용하기도 한다.

Kibana

Kibana는 로그 및 이벤트 검토에 사용하는 데이터 시각화 및 탐색 도구이다.
대시보드 같은거 만들어주는 프로그램이라고 보면 된다.

Elasticsearch에 데이터를 넣었다면 Kibana로 데이터 시각화를 쉽게 할 수 있다고 한다.

Kibana vs Power BI

Power BI를 사용해본 입장에서 비슷한 것 같으면서도 Kibana가 좀 더 효율적이게 보이긴 한다.

Power Automate와 Power BI를 통해 대시보드를 구축했을 때는 Power BI의 라이선스에 따라 대시보드 자동 갱신 횟수에 제한이 있었기 때문에 실시간(에 가깝게) 대시보드를 갱신하는 것이 불가능했다.

하지만 인터넷의 예시를 찾아보니 실시간 크롤링에도 사용가능한 것을 보니 이런 제약에서 어느정도 자유로운 것 같다 (안써봐서 정확히는 모름).

대신에 Elasticsearch에 들어있는 데이터를 Mapping 하는 등의 과정이 필요하다.
이 부분은 따로 규칙이 존재하기 때문에 해당 부분에 대한 숙지가 필요할 것으로 보임 (Power BI는 UI를 통해 조작했지만 Kibana는 JSON의 형태를 갖고 있음).

그런데 막상 매핑을 하고 나면 시각화하는 것은 오히려 더 쉬워보인다.
Power BI의 경우 시각화가 쉬워보여도 막상 하려고 하면 그래프로 표현하기가 쉽지 않다.
직관적인듯 보이지만.... 원하는 대로 표현하려면 어쩌라는거지? 싶은 경우가 종종 발생한다. 메뉴에서 생략된 설명도 너무 많고 튜토리얼을 찾는 것도 쉽지 않음... 그래프의 축을 원하는 대로 설정하기 어렵다던가 수치로 존재하는 데이터를 원하는 방식으로 표현하기 어렵다던가 여러모로 보이는 것 보다 어려웠다.

이 부분에서 여러 포스팅을 살펴보면 Kibana는 조작이 더 쉬워보임.

Grafana로 대체할 수 있다.
Grafana는 완전한 오픈 소스로 알고 있다.


[참고자료]

0개의 댓글