콘텐츠로 이동

Kibana 실무 학습 가이드

대상: Elasticsearch / Kibana 를 사용만 해 본 사람이 실제로 운영에 쓸 view·dashboard 를 만들 수 있는 단계까지 끌어올리기. 데이터: 본 환경에 적재된 10M docs (8 services × 41 APIs × 7일). 언어 anchor: Oracle SQL — 팀이 익숙한 쿼리 개념을 ES 로 1:1 매핑하며 학습.


학습 결과물 (You'll be able to)

  • Kibana Discover 에서 임의의 질문을 KQL/Dev Tools 쿼리로 답할 수 있다
  • Lens 시각화 8종을 처음부터 만들 수 있다
  • 의미 있는 운영 dashboard 3종을 조립할 수 있다
  • 에러 / latency 임계치 알림(alerts) 을 설정할 수 있다
  • Oracle SQL 사용자에게 ES 쿼리를 1:1 비유로 설명할 수 있다

학습 경로

flowchart TD
    A([시작]) --> P[00. 사전 준비<br/>5분]
    P --> Side[00b. 사이드바<br/>10분]
    Side --> Q[01. Quick Win<br/>30분]
    Q --> CHECK{원하는 깊이?}

    CHECK -->|"기본 시각화 더"| L[02. Lens<br/>60분]
    CHECK -->|"실무 KPI 분석"| K[05. KPI 시나리오<br/>90분]
    CHECK -->|"인덱스 관리"| I[06. Index<br/>60분]
    CHECK -->|"통계 자동화"| B[07. Batch Transform<br/>90분]

    L --> D[03. Dashboard 3종<br/>60분]
    D --> AL[04. Alerts<br/>30분]
    K --> D
    I --> B

    AL --> REF["참고 문서<br/>99-* 4개"]
    B --> REF
    REF --> END([폐쇄망 실습 준비 완료])

    classDef foundation fill:#fff9c4,stroke:#f57f17,color:#3e2723
    classDef phase fill:#e3f2fd,stroke:#1976d2,color:#0d47a1
    classDef ops fill:#fce4ec,stroke:#ad1457,color:#880e4f
    classDef ref fill:#fff3e0,stroke:#f57c00,color:#e65100
    classDef milestone fill:#c8e6c9,stroke:#388e3c,color:#1b5e20
    class P,Side,Q foundation
    class L,D,AL phase
    class K,I,B ops
    class REF ref
    class A,END milestone
# 문서 시간 요약
00 00-prerequisites.md 5분 Kibana 접속 / Data View 생성 / 첫 데이터 확인
00b 00b-kibana-sidebar.md 10분 사이드바 대분류·소분류 길잡이 (실무 빈도 표기) ⭐️
01 01-quickwin.md 30분 첫 dashboard 1개 손에 익히기 ⭐️
02 02-lens-charts.md 60분 Lens 시각화 8종 레시피
03 03-dashboards.md 60분 운영/에러/트래픽 dashboard 3종
04 04-alerts.md 30분 Observability 알람 (옵션)
05 05-kpi-scenarios.md 90분 SRE / 비즈니스 KPI · painPoint 분석 · 가치 환산
06 06-index-management.md 60분 신규 index/field 생성·수정 (Oracle DDL anchor)
07 07-batch-transform.md 90분 일일 배치 통계 인덱스 — Transform·Rollup·cron 3 방법
08 08-card-platform-payload-strategy.md 30분 카드 결제 플랫폼 — data.* unindexed 환경 4-Phase 전략 ⭐️실무
99 99-oracle-to-es.md 참고 Oracle SQL → ES 쿼리 매핑
99 99-kql-cheatsheet.md 참고 KQL 문법 한 페이지
99 99-troubleshooting.md 참고 자주 만나는 문제 해결
99 99-es-version-comparison.md 참고 ES 8 vs 9 — 변화/난이도/특장점/필요성
99 99-qna.md 참고 읽다가 막히는 부분 ↔ 답변 핑퐁 기록

⭐️ 시간이 없다면 00 + 01 만 하셔도 1개 dashboard 가 손에 남습니다.


📖 추천 읽기 순서 (선형, 약 8시간)

처음부터 끝까지 한 번 통독 + 실습한다면 아래 순서. 단계별 진입 장벽 → 응용 → 운영 → 참고 순.

flowchart TB
    R0([README<br/>이 페이지]) --> R1
    subgraph FOUND["🟡 Phase A: 기반 (~1.5h)"]
      R1[1. 00-prerequisites<br/>5분] --> R2[2. 00b-kibana-sidebar<br/>10분]
      R2 --> R3["3. 99-oracle-to-es<br/>30분 (Oracle 유저면 강추)"]
    end
    R3 --> R4
    subgraph QW["🟢 Phase B: Quick Win + 시각화 (~2.5h)"]
      R4[4. 01-quickwin<br/>30분 ⭐] --> R5[5. 02-lens-charts<br/>60분]
      R5 --> R6[6. 03-dashboards<br/>60분]
    end
    R6 --> R7
    subgraph OPS["🔴 Phase C: 운영·실무 (~3h)"]
      R7[7. 04-alerts<br/>30분] --> R8[8. 05-kpi-scenarios<br/>90분]
      R8 --> R9[9. 06-index-management<br/>60분]
    end
    R9 --> R10
    subgraph AUTO["🟣 Phase D: 자동화 + 마무리 (~2h)"]
      R10[10. 07-batch-transform<br/>90분] --> R11[11. 99-es-version-comparison<br/>10분]
    end
    R11 --> R12
    subgraph REF["⚪ 참고 — 그때그때"]
      R12[옆에 두기:<br/>99-kql-cheatsheet<br/>99-troubleshooting<br/>99-qna]
    end

    classDef found fill:#fff9c4,stroke:#f57f17,color:#3e2723
    classDef qw fill:#c8e6c9,stroke:#2e7d32,color:#1b5e20
    classDef ops fill:#ffcdd2,stroke:#c62828,color:#b71c1c
    classDef auto fill:#e1bee7,stroke:#6a1b9a,color:#4a148c
    classDef ref fill:#eeeeee,stroke:#616161,color:#212121
    class R1,R2,R3 found
    class R4,R5,R6 qw
    class R7,R8,R9 ops
    class R10,R11 auto
    class R12 ref

한 페이지 step-by-step

Step 문서 Phase 누적 시간 핵심
1 00-prerequisites A 기반 5m Kibana 로그인 + Data view 2개
2 00b-kibana-sidebar A 기반 15m 사이드바 대분류·소분류
3 99-oracle-to-es A 기반 45m Oracle SQL ↔ ES anchor (skip 가능)
4 01-quickwin B 시각화 1h 15m 30분 첫 dashboard
5 02-lens-charts B 시각화 2h 15m Lens 8종 레시피
6 03-dashboards B 시각화 3h 15m 운영/에러/트래픽 dashboard 3종
7 04-alerts C 운영 3h 45m 알람 룰
8 05-kpi-scenarios C 운영 5h 15m SRE+비즈니스 KPI / painPoint / 가치 환산
9 06-index-management C 운영 6h 15m 신규 index/field/reindex/ILM/template
10 07-batch-transform D 자동화 7h 45m Transform/Rollup/cron 3 방법
11 08-card-platform-payload-strategy D 자동화 8h 15m 카드 결제 플랫폼 실무 전략 — data.* unindexed 회복
12 99-es-version-comparison D 자동화 8h 25m 8 vs 9 의사결정
99-kql-cheatsheet 참고 검색창 옆에 켜 두기
99-troubleshooting 참고 막힐 때마다
99-qna 참고 읽다가 모호한 부분 → 여기 모임

선택지

  • Quick Win 만 (1시간): 00 → 00b → 01 (그 외는 필요 시)
  • 시각화 + 운영 핵심 (4시간): 위 + 02 + 03 + 05
  • 전체 통독 (8시간): 위 step 1~11 모두

읽으면서

  • 막히면 99-troubleshooting 먼저 검색
  • 모호한 부분은 99-qna.md 에 메모 (사용자 ↔ 작성자 핑퐁 기록)
  • 각 문서 끝의 ❓ Self-check 는 직접 답해 보기 (<details> 펴서 정답 확인)

이 가이드가 적용한 학습 원리

1. Why → What → How → Verify 각 단계가 "왜 이걸 하는지" 부터 시작 2. Concrete → Abstract 쿼리 먼저, 이론 나중 3. Active learning "읽으세요" 보다 "해보세요" 4. Verification checkpoints ✅ 마크로 "여기까지 됐는지" 확인 5. Spaced repetition 핵심 개념(KQL/agg)을 여러 문서에서 반복 6. Anchoring (앵커링) Oracle SQL 익숙한 개념과 1:1 비유 7. Visualization 중요 흐름은 mermaid / ASCII 그림


핵심 개념 — Oracle 사용자 30초 anchor

``` SELECT * FROM api_logs → GET api-logs-*/_search WHERE service_name = 'account-service' "query": { "term": { "service_name": "account-service" } } ORDER BY ts DESC "sort": [{"@timestamp":"desc"}] FETCH FIRST 10 ROWS "size": 10

SELECT method, COUNT(*) → "size": 0 FROM api_logs "aggs": { "by_method": { GROUP BY method "terms": { "field": "http_method" } } } ```

상세는 99-oracle-to-es.md 한 페이지 cheatsheet.


환경 정보 (변경 불필요, 참고)

항목
Kibana URL http://localhost:5601
ES URL http://localhost:9200
계정 elastic (비밀번호는 ../​.envELASTIC_PASSWORD)
Data view 패턴 api-logs-*, legacy-api-logs-*
데이터 기간 2026-04-19 15:00 UTC ~ 2026-04-26 15:00 UTC (= 2026-04-20 ~ 2026-04-26 KST)
문서 수 10,000,228

폐쇄망 가져갈 때

이 디렉토리(elastic/kibana-views/) 만 그대로 사내망에 가져가면, 데이터 기간/엔드포인트만 바꾸면 동일 학습 가능:

diff - Data view 패턴: api-logs-* + Data view 패턴: <폐쇄망 인덱스 패턴> - @timestamp + <필요 시 timestamp 필드명>

다음: 00-prerequisites.md