[ELK] Elasticsearch, Logstash, Kibana

Daehyun·2022년 8월 18일
1

프로젝트-X 두번째 멘토링을 하며 멘토님께서 ELK에 대해 설명해주셨다.
그래서 ELK에 대해 정리해보려 한다.

📌 ELK란??

  • 데이터 처리 관련 오픈소스 솔루션인 엘라스틱 서치(Elasticsearch) + 로그스태시(Logstash) + 키바나(Kibana)를 같이 연동하여 사용한다는 의미로, ELK 혹은 ELK 스택(ELK Stack), 엘라스틱 스택(Elastic Stack)이라고 한다.

  • Elasticsearch (로그 저장 및 검색)
    • ElasticSearch는 Lucene 기반으로 개발한 분산 검색엔진으로, Logstash를 통해 수신된 데이터를 저장소에 저장하는 역할을 담당한다.
    • 데이터를 중심부에 저장하여 예상되는 항목을 검색하고 예상치 못한 항목을 밝혀낼 수 있다.
    • 정형, 비정형, 위치정보, 메트릭 등 원하는 방법으로 다양한 유형의 검색을 수행하고 결합할 수 있다.
  • Logstash (로그 수집 엔진)
    • 오픈소스 서버측 데이터 처리 파이프라인으로, 다양한 소스에서 동시에 데이터를 수집하고 변환하여 stash 보관소로 보낸다.
    • 수집할 로그를 선정해서, 지정된 대상 서버(ElasticSearch)에 인덱싱하여 전송하는 역할을 담당하는 소프트웨어
  • Kibana (로그 시각화 및 관리)
    • 데이터를 시각적으로 탐색하고 실시간으로 분석 할 수 있다.
    • 시각화를 담당하는 HTML + Javascript 엔진이라고 보면 된다.
  • 세 모듈은 각자의 독립된 기술이라 일부만 사용할 수 있다. 하지만 서로 호환이 잘되고 함께 사용하면 시너지가 좋기 때문에 같이 구축된다. 세 기술을 함께 쓰기 때문에 ELKstack 이라고도 한다.


✅ ELK 장점

  • 가격

    ELK는 Elastic이라는 회사에서 제공하는 오픈소스이다. ELK 자체는 무료이기 때문에 다른 시스템에 비해 가격적인 측면에서 장점을 가진다.

  • 접근성 & 사용성

    ELK는 오픈소스를 내려받아 설치하는 것으로 구축이 완료된다. 그 외의 별도의 추가적인 개발 과정이 필요 없기 때문에 접근성이 뛰어나다. 또한 다른 유사 시스템들에 비해 사용성이 쉬운 편이다.

  • 속도

    ELK 중 데이터 보관 및 분석 역할을 담당하는 Elasticsearch는 거의 실시간 (Real-Time)에 가깝게 데이터를 처리할 수 있다.

  • 유연성

    ELK는 세 가지의 모듈을 함께 구축한다. 해당 기능을 담당할 수 있다면 얼마든지 모듈을 유연하게 변경할 수 있다. Logstash를 쓰지 않아도 데이터 수집 역할만 할 수 있다면 경우에 따라 다른 것으로 대체할 수 있다.

❎ ELK 단점

  • 초기 데이터 구성 및 이관 문제

    기존에 보유한 데이터를 엘라스틱 서치로 이관하는 경우 심각한 성능 저하 문제 발생, 많은 양의 데이터 이관 용도로는 사용이 힘들다.

  • 커널 변수의 불필요한 사용

    커널의 cgroup에 해당하는 변수를 참조하는 내용이 있어 해당 변수가 없는 커널의 경우 오류가 발생할 수 있다. 또한 커널 컴파일 환경에 따라 불필요한 커널 변수로 인해 프로그램이 중단되는 문제도 야기시킬 수 있다.

  • 원활하지 못한 시간대(Timezone) 처리

    3개의 스택(로그스태시->엘라스틱서치->키바나)로 데이터가 넘어가는 과정에서 시간대 일관성이 깨지는 문제가 있다. 3개 솔루션 모두 기본 시간대가 UTC라는 점을 인지하고, 시간대 설정이 가능한 경우 일관성을 유지하려는 노력으로 극복할 수는 있다.

참고

0개의 댓글