#keywords Grafana, Kibana {{{#!markdown ## 한 줄 요약 Grafana와 Kibana는 모두 뛰어난 오픈소스 시각화 도구이다. **"어느 쪽이 더 좋은가"가 아니라 "내 데이터가 무엇이고, 무엇을 보고 싶은가"로 접근**하는 것이 맞다. 시계열 메트릭이라면 Grafana, Elasticsearch에 담긴 로그와 텍스트라면 Kibana가 기본 선택지다. **Grafana**는 시계열(time-series) 데이터를 시각화하고 인프라를 모니터링하는 데 더 적합하고, **Kibana**는 Elasticsearch에 저장된 데이터를 검색·탐색·분석하는 데 더 적합하다. 특히 로그(log) 분석의 영역에서는 Kibana가, 메트릭(metric) 모니터링의 영역에서는 Grafana가 전통적인 강자로 자리매김해 왔다. --- ## 1. Kibana — Elastic(ELK) Stack의 "K" Kibana는 Elasticsearch와 함께 사용하는 시각화·분석 도구로, Elastic(ELK) Stack의 일부이며 ELK의 **K**에 위치한다. (E=Elasticsearch, L=Logstash, K=Kibana) Kibana의 핵심 기능은 **데이터 쿼리와 분석**이다. 사용자는 다양한 방법으로 Elasticsearch에 인덱싱된 데이터를 검색하여 근본 원인 분석(RCA, Root Cause Analysis)이나 진단을 위한 특정 이벤트나 문자열을 찾을 수 있다. 이렇게 쿼리한 결과를 차트, 테이블, 지리 지도(geo map) 등 다양한 시각화로 표현할 수 있다. ### Kibana가 제공하는 주요 기능 - **Discover**: 원시 로그를 인덱스 단위로 탐색하고 필터링 - **Visualize / Lens**: 드래그 앤 드롭 방식의 시각화 편집기 - **Dashboard**: 여러 시각화를 조합한 대시보드 - **Canvas**: 프리젠테이션형 데이터 시각화 - **Maps**: 지리 정보 시각화 - **Machine Learning (X-Pack)**: 이상 탐지(anomaly detection), 예측(forecasting) - **APM, SIEM, Uptime**: Observability와 보안 영역의 전문 앱 ### 쿼리 언어 Kibana는 **KQL(Kibana Query Language)**, **Lucene**, 그리고 Elasticsearch의 쿼리 DSL(JSON 기반)을 지원한다. 텍스트 기반 풀텍스트 검색(full-text search)이 매우 강력하다. --- ## 2. Grafana — 범용 시각화·모니터링 플랫폼 Grafana는 다양한 종류의 데이터 소스로부터 데이터를 가져올 수 있으며, 특히 **시계열 데이터**에 최적화되어 있다. Prometheus, Graphite, InfluxDB, Elasticsearch, Loki, MySQL, PostgreSQL, CloudWatch, Tempo 등 수많은 데이터 소스와 통합하여 시계열 데이터를 시각화하고 모니터링할 수 있다. Grafana는 특정 스토리지에 종속되지 않고 "데이터 소스 플러그인"을 통해 거의 모든 데이터 유형을 지원한다는 것이 가장 큰 특징이다. ### Grafana가 제공하는 주요 기능 - **Dashboard & Panel**: 드래그 앤 드롭 기반 대시보드 - **다양한 시각화 패널**: Graph, Gauge, Heatmap, Histogram, Stat, Bar chart, Geomap 등 - **Templating & Variables**: 변수 기반의 동적 대시보드 (환경/서비스별로 같은 대시보드를 재활용) - **Alerting**: 내장 알림 엔진 - **Annotations**: 대시보드에 이벤트 표시 - **Explore**: 즉석 쿼리 및 로그 탐색 모드 - **풍부한 플러그인 생태계** --- ## 3. 주요 차이점 ### 3-1. 주된 용도가 다르다: Logs vs Metrics | 구분 | Kibana | Grafana | |---|---|---| | 핵심 데이터 유형 | 로그, 텍스트, 이벤트 | 시계열 메트릭 | | 주된 용도 | 로그 분석, 검색, 보안 분석, 디버깅 | 인프라 모니터링, APM, 대시보드 | | 대표 사용자 | SecOps, 개발자, DevOps | SRE, DevOps, 인프라 엔지니어 | 예를 들어 DevOps 팀이 여러 서비스에 걸쳐 로그 항목을 검색·분석하며 애플리케이션 오류를 트러블슈팅할 때는 Kibana를, SRE 팀이 Kubernetes 클러스터의 CPU·메모리·네트워크 사용량을 모니터링하면서 리소스 경고를 받아야 할 때는 Grafana를 사용하는 것이 전형적인 시나리오다. ### 3-2. 텍스트 기반 쿼리와 시각화 Grafana의 중요한 제약 중 하나는 **텍스트 기반 쿼리/시각화에 약하다**는 것이다. Grafana는 CPU, RAM, Network In/Out 같은 메트릭에 대해 매우 훌륭한 그래프를 생성할 수 있지만, 텍스트 그래프나 풀텍스트 검색 기반 시각화는 거의 불가능하다. 완전히 불가능한 것은 아니지만 매우 제한적이다. 반면 Kibana는 텍스트 데이터를 시각화하고 풀텍스트 검색을 수행하는 데 탁월하다. 따라서 **텍스트 기반 정보를 쿼리하고 특정 매개변수를 기반으로 정보를 찾으려면 Kibana가 더 나은 선택**이다. > 참고로, Grafana에서도 Loki를 로그 소스로 붙이면 로그 탐색이 어느 정도 가능하지만, Elasticsearch와 Grafana 조합은 Elasticsearch와 Kibana 조합처럼 키워드 검색이나 정밀한 검색어로 로그를 검색하는 것이 불가능하다. 이 시나리오에서 Elasticsearch를 Loki로 대체하면 그러한 기준으로 로그 검색이 가능해진다. ### 3-3. Alerting — ⚠️ 최신 버전(2021년 2월 이후)에서 바뀐 부분 여기에 대한 정보가 과거 블로그 글들에 여전히 오래된 내용으로 남아있는 경우가 많다. **과거 (Kibana 7.10 이전)** Kibana에서는 Alerting을 사용자가 스스로 설정할 수 없었다. Kibana에 알림을 추가하려면 Logz.io와 같은 호스팅 ELK Stack을 선택하거나, ElastAlert를 구현하거나, X-Pack(유료)을 사용해야 했다. **현재 (Kibana 7.11+, 2021년 2월 이후)** Kibana 7.11에서 Elastic Stack의 알림 기능이 정식 GA(Generally Available)로 출시되었고, Microsoft Teams용 새로운 커넥터도 추가되었다. 이제 Kibana에서도 UI 기반으로 알림 규칙(Rule)을 생성하고, email·Slack·PagerDuty·ServiceNow·Jira·Microsoft Teams·Webhook 등 다양한 채널로 알림을 보낼 수 있다. **그럼에도 여전히 남아있는 차이점**: - Grafana는 무료 버전에서도 더 강력한 기본 알림 기능을 제공하는 반면, Kibana의 고급 알림은 보통 Elasticsearch의 유료 기능을 필요로 한다. - Grafana의 알림은 **어떤 데이터 소스에서든** 동작한다 (Prometheus, MySQL, InfluxDB 등 모두 가능). - Kibana의 알림은 기본적으로 **Elasticsearch 데이터에 한정**된다. - Kibana 무료 버전은 연결 가능한 알림 커넥터가 제한적이다(주로 email, index, server log). Slack, PagerDuty 등 상당수의 외부 커넥터는 구독(subscription)이 필요하다. 따라서 "Kibana는 Alerting을 스스로 설정할 수 없다"는 명제는 오늘날 **사실이 아니며**, 정확히는 "Kibana도 이제 내장 Alerting을 제공하지만, 고급 기능과 다수의 외부 연동은 유료이며 여전히 Grafana가 이 영역에서 더 범용적·개방적"이라고 표현하는 것이 맞다. ### 3-4. 데이터 소스 Kibana는 **Elasticsearch 전용**이다. 이것이 Kibana의 강점이자 한계다. Elasticsearch에 저장된 데이터만 시각화할 수 있다는 것은 곧 모든 데이터를 Elasticsearch에 색인시켜야 한다는 의미다. Grafana는 앞서 말한 대로 **멀티 데이터 소스**를 지원한다. 하나의 대시보드에서 Prometheus의 메트릭, Loki의 로그, Elasticsearch의 색인 데이터를 동시에 시각화하는 "단일 유리판(single pane of glass)" 대시보드를 구성할 수 있다. ### 3-5. 설치와 학습 곡선 **Grafana** - Docker로 10분 이내에 설정 가능 - 드래그 앤 드롭 기반 UI로 직관적 - 데이터 소스 추가 → 대시보드 생성 → 패널 만들기의 단순한 흐름 - 새로운 사용자도 기본 대시보드는 쉽게 만들 수 있다 **Kibana** - Elasticsearch에 익숙하지 않은 사용자에게는 학습 곡선이 더 가파르지만, Elastic 생태계 안에서는 직관적이다. - 대부분의 Kibana 기능이 Elasticsearch와 연동되므로 **인덱스, 매핑, 쿼리 DSL 등 Elasticsearch에 대한 기본 지식**이 필요하다 - Kibana만 독립적으로 설치할 수 없고 Elasticsearch(+선택적으로 Logstash/Beats) 같이 구성해야 한다 ### 3-6. 라이선스 및 비용 | 구분 | Kibana | Grafana | |---|---|---| | 라이선스 | Elastic License (Elastic Stack의 일부). 기본 기능은 무료이지만 머신러닝·고급 알림·보안 기능·특정 통합 등 많은 고급 기능은 유료 티어에서만 사용 가능 | 오픈소스 버전은 Apache 2.0 라이선스. 시각화 엔진, 다양한 데이터 소스 지원, 내장 알림 등 대부분의 핵심 기능이 무료 | | 클라우드 | Elastic Cloud | Grafana Cloud (Free / Pro / Advanced 티어) | ### 3-7. Machine Learning - **Kibana**: X-Pack 기능을 통해 이상 탐지, 예측 등 더 강력한 out-of-the-box 머신러닝 기능을 제공 (단, 유료 구독 필요) - **Grafana**: 머신러닝 기능은 일반적으로 플러그인이나 외부 ML 서비스와의 통합을 통해 사용 가능 ### 3-8. 커뮤니티와 플러그인 생태계 - **Grafana**: 더 다양하고 활발한 커뮤니티 생태계, 광범위한 플러그인 옵션 제공. 공식 플러그인 카탈로그에서 수백 개의 데이터 소스 플러그인, 패널 플러그인, 앱 플러그인을 받을 수 있다. - **Kibana**: 강력한 커뮤니티를 갖고 있지만 Elasticsearch 중심의 사용 사례에 더 집중된 편 --- ## 4. 한눈에 보는 비교표 | 항목 | Kibana | Grafana | |---|---|---| | 주요 용도 | 로그/이벤트 검색·분석·시각화 | 메트릭·시계열 모니터링·시각화 | | 데이터 소스 | Elasticsearch 전용 | 50+ 데이터 소스 (Prometheus, InfluxDB, MySQL, ES, Loki, CloudWatch 등) | | 풀텍스트 검색 | 매우 강력 (KQL/Lucene/Query DSL) | 제한적 (Loki 연동 시 가능) | | 시계열 시각화 | 가능 (Lens, TSVB, Timelion) | 최적화됨, 가장 뛰어남 | | Alerting | 7.11+ GA, 단 고급 기능은 유료 | 무료 버전에도 강력한 내장 Alerting | | 학습 곡선 | Elasticsearch 지식 필요, 가파른 편 | 완만, 드래그 앤 드롭 중심 | | 머신러닝 | 내장 (유료) | 플러그인/외부 연동 | | 라이선스 | Elastic License (일부 유료) | Apache 2.0 (대부분 무료) | | 설치 | ES와 함께 구성해야 함 | Docker로 10분 | | 플러그인 생태계 | 제한적 | 매우 풍부 | --- ## 5. 언제 무엇을 선택해야 하는가 **Kibana를 선택하는 경우** - 이미 Elasticsearch를 사용하고 있거나 ELK 스택을 도입하려는 경우 - 로그 중심 분석, 보안 이벤트 분석(SIEM), 풀텍스트 검색이 주요 요구사항인 경우 - 비구조화 텍스트 데이터에서 특정 문자열/패턴을 추출해야 하는 경우 - APM, Uptime, Security 등 Elastic의 통합 솔루션을 함께 쓰려는 경우 **Grafana를 선택하는 경우** - Prometheus, InfluxDB 등 시계열 DB 기반의 인프라/애플리케이션 모니터링이 주 목적인 경우 - 여러 이종 데이터 소스를 하나의 대시보드로 통합하고 싶은 경우 - 무료로 강력한 Alerting을 구축하고 싶은 경우 - DevOps/SRE 팀의 운영 대시보드가 필요한 경우 **둘 다 사용하는 경우 (꽤 흔한 패턴)** 실제로 많은 조직이 두 도구를 상호 보완적으로 사용한다. Logz.io와 같은 일부 회사는 자신들의 프로덕션 환경을 모니터링하기 위해 Grafana를 Graphite, Prometheus, Elasticsearch와 연결하여 두 도구를 모두 사용한다. 대개 메트릭 모니터링·알림은 Grafana로, 로그 탐색·디버깅은 Kibana로 역할 분담하는 식이다. }}} Kibana 대시보드 [[evernote(https://www.evernote.com/l/AMIKb6a_CNlIS4pMuJ81idpG_R6c3zMyG0s/,signature=False)]] Grafana 대시보드 https://raw.githubusercontent.com/disisto/grafana-dashboard-for-prometheus-tado-exporter/main/img/grafana_dashboard_for_prometheus_tado_exporter.png?width=400 ''(grafana.com)'' <끝.> ---- CategoryDocument