STUDY

파이프라인 모니터링 클러스터 모니터링

Lim임 2026. 2. 1. 01:18

1️⃣ 파이프라인 모니터링 (Pipeline Monitoring)

👉 **“데이터/작업이 제대로 흘러가고 있나?”**에 초점

무엇을 보나?

  • 작업 성공/실패 여부
  • 단계별 실행 시간 (병목 구간)
  • 지연(latency), 처리량(throughput)
  • 데이터 품질 (누락, 중복, 스키마 변경 등)
  • 재시도 횟수, 에러 로그

예시

  • ETL / ELT 파이프라인 (Airflow, Argo, Prefect)
  • CI/CD 파이프라인 (GitHub Actions, Jenkins)
  • 스트리밍 파이프라인 (Kafka, Spark Streaming)

대표 지표

  • DAG 성공률
  • 평균 실행 시간
  • 실패 태스크 수
  • SLA/SLO 준수 여부

2️⃣ 클러스터 모니터링 (Cluster Monitoring)

👉 **“인프라가 건강한가?”**에 초점

무엇을 보나?

  • CPU / Memory / Disk / Network 사용량
  • 노드 상태 (Ready / NotReady)
  • Pod / 컨테이너 상태
  • 리소스 부족(OOM, CPU Throttling)
  • 장애 발생 여부

예시

  • Kubernetes 클러스터
  • Spark / Hadoop 클러스터
  • VM / Bare-metal 서버 팜

대표 지표

  • 노드별 리소스 사용률
  • Pod 재시작 횟수
  • 노드 장애 수
  • 리소스 요청 vs 실제 사용량

3️⃣ 한눈에 비교하면

구분파이프라인 모니터링클러스터 모니터링
관점 애플리케이션 / 작업 흐름 인프라 / 리소스
관심사 성공했나? 늦지 않나? 살아있나? 과부하인가?
장애 원인 로직, 데이터, 의존성 CPU, 메모리, 노드
대표 도구 Airflow UI, Dagster, MLflow Prometheus, Grafana, kube-state-metrics

4️⃣ 왜 둘 다 필요할까?

  • 파이프라인 실패 → 원인은 클러스터 리소스 부족일 수 있음
  • 클러스터는 정상 → 파이프라인 로직이 잘못됐을 수도 있음

👉 그래서 실무에선
파이프라인 모니터링 + 클러스터 모니터링을 연결해서 봅니다.

 

---

1️⃣ 전체 아키텍처 (개념 그림)

 
┌──────────────────────┐
│      Grafana         │◀─────────────┐
│  (통합 대시보드)      │              │
└─────────▲────────────┘              │
          │                           │
┌─────────┴──────────┐      ┌─────────┴──────────┐
│    Prometheus      │      │     Loki / ELK     │
│ (Metrics 수집)     │      │ (Logs 수집)        │
└─────────▲──────────┘      └─────────▲──────────┘
          │                           │
──────────────── Kubernetes Cluster ────────────────
          │                           │
   ┌──────┴──────┐             ┌──────┴──────┐
   │  Airflow    │             │    Kafka    │
   │ (Scheduler, │             │ (Broker,    │
   │  Workers)   │             │  ZK/KRaft)  │
   └──────▲──────┘             └──────▲──────┘
          │                           │
   ┌──────┴─────────┐        ┌────────┴────────┐
   │ Spark / ETL    │        │ Consumers /     │
   │ Jobs (Pods)    │        │ Stream Process  │
   └────────────────┘        └─────────────────┘

👉 핵심 포인트

  • Kubernetes: 실행 플랫폼
  • Airflow: 배치 파이프라인 오케스트레이션
  • Kafka: 스트리밍 파이프라인
  • Prometheus / Grafana: 메트릭
  • Loki / ELK: 로그

2️⃣ Kubernetes 클러스터 모니터링 (인프라 레벨)

📊 반드시 봐야 하는 메트릭

🔹 Node 레벨

  • CPU / Memory 사용률
  • Disk Pressure
  • Network IO
  • Node Ready 상태

🔹 Pod / Container 레벨

  • Pod 재시작 횟수
  • OOMKilled
  • CPU Throttling
  • Pending 상태 (스케줄 실패)

🔹 Kubernetes 이벤트

  • FailedScheduling
  • ImagePullBackOff
  • CrashLoopBackOff

🛠 필수 컴포넌트

  • kube-state-metrics
  • node-exporter
  • cAdvisor

👉 여기서 잡는 장애

  • Airflow task가 안 뜸 → 노드 리소스 부족
  • Kafka broker 재시작 반복 → 메모리 부족
  • Spark job 느려짐 → CPU Throttling

3️⃣ Airflow 파이프라인 모니터링 (배치)

📌 구조 (K8s 기준)

  • Scheduler
  • Webserver
  • Worker (KubernetesPodOperator or CeleryExecutor)
  • Metadata DB (Postgres)

📊 핵심 모니터링 지표

🔹 DAG / Task

  • DAG 성공률
  • Task 실패율
  • Task 실행 시간
  • SLA Miss

🔹 Executor / Worker

  • Worker Pod 수
  • Pending Task 수
  • Task Queue 길이

🔹 Airflow 자체 메트릭

  • Scheduler Heartbeat
  • Zombie Task 수
  • DAG Parsing 시간

👉 Prometheus Exporter

  • airflow-exporter
  • Airflow 2.x built-in metrics

👉 여기서 잡는 장애

  • DAG는 성공인데 데이터 없음 → downstream 문제
  • Task 지연 → Kafka lag or 리소스 부족
  • Scheduler 살아있는데 DAG 미실행 → heartbeat 문제

4️⃣ Kafka 파이프라인 모니터링 (스트리밍)

📌 구조 (K8s 기준)

  • Kafka Broker Pods
  • Controller (KRaft or Zookeeper)
  • Producers
  • Consumers (Spark / Flink / Custom)

📊 핵심 메트릭

🔹 Broker

  • Under Replicated Partitions
  • ISR Shrink / Expand
  • Disk Usage
  • Request Latency

🔹 Topic / Partition

  • 메시지 유입량 (In / Out)
  • Retention 상태
  • Partition Leader 분산

🔹 Consumer

  • Consumer Lag (🔥 핵심)
  • Commit 실패
  • Rebalance 횟수

👉 여기서 잡는 장애

  • 파이프라인 지연 → Consumer lag 폭증
  • 데이터 유실 → ISR 깨짐
  • 브로커 다운 → 파티션 불균형

5️⃣ 파이프라인 + 클러스터 “연결” 모니터링 (중요 ⭐)

❌ 흔한 실수

  • Airflow만 봄
  • Kafka lag만 봄
  • 클러스터 상태를 따로 봄

✅ 잘하는 팀

하나의 장애 흐름으로 연결

 

Airflow Task 지연
   ↓
Worker Pod Pending
   ↓
Node Memory 95%
   ↓
Kafka Consumer Lag 증가

  • 상단: 비즈니스 파이프라인 상태
  • 하단: K8s 리소스 상태

6️⃣ 추천 대시보드 구성

📊 Grafana 대시보드 탭

  1. Cluster Overview
  2. Airflow DAG Health
  3. Kafka Overview
  4. Consumer Lag
  5. Critical Alerts

🚨 알람 예시

  • Airflow DAG 실패 + Node Memory > 90%
  • Kafka Lag > 임계치 + Consumer Pod Restart
  • Pod Pending > N분 지속

7️⃣ 한 줄 요약

Kubernetes는 “몸 상태”,
Airflow/Kafka는 “일이 잘 되고 있는지”,
Grafana는 “의사 눈”이다.

'STUDY' 카테고리의 다른 글

CPU 스케줄링 알고리즘  (0) 2026.02.09
운영체제 - 메모리, 프로세스와 스레드  (0) 2026.02.03
HTTP 프로토콜 & 운영체제  (0) 2026.01.28
네트워크  (0) 2026.01.13
프로그래밍 패러다임  (0) 2026.01.06