본문 바로가기

Backend/Study

[DevOps] 클라우드 모니터링 도구 비교 (Datadog, Prometheus, Grafana)

반응형

0. 개요

클라우드 네이티브 환경에서 가장 많이 쓰는 모니터링 도구 Datadog, Prometheus, Grafana를 아키텍처, 기능(메트릭/로그/트레이스/APM), 알림, 확장성, 비용/운영 관점에서 비교합니다.


1. 한눈에 보는 요약

도구 포지션 강점 약점 적합 시나리오
Datadog 상용 통합 관측(Observability) 플랫폼 에이전트 한 번 설치로 메트릭/로그/트레이스/APM/시큐리티 통합, 손쉬운 대시보드/알림, SaaS 스케일 비용(호스트/컨테이너/로그량 기반), 벤더 종속성 빠른 도입/운영 편의가 중요한 스타트업~엔터프라이즈
Prometheus 오픈소스 시계열 수집/저장(풀모드 스크랩) Kubernetes/Exporters 생태계, Pull 모델의 안정성, 경량·저비용 장기보관/히스토리 스케일 한계 → 원격스토리지 필요 K8s/컨테이너 중심, 비용 민감, 셀프 호스팅 선호
Grafana 시각화/대시보드 & 알림 허브 Prometheus·CloudWatch·Loki 등 멀티 데이터소스 통합, 플러그인 풍부 수집/저장은 하지 않음(별도 백엔드 필요) 여러 모니터링 소스를 하나의 화면으로 보길 원할 때

요약: Datadog=올인원, Prometheus=수집/알람 코어, Grafana=시각화 허브. 실무에서는 “Prometheus(+Loki) + Grafana” 조합이 자주 쓰이며, 매니지드/통합 편의가 필요하면 Datadog을 채택합니다.


2. 아키텍처 & 동작 방식

Datadog

  • 호스트/컨테이너에 datadog-agent 설치 → SaaS로 메트릭/로그/트레이스 전송
  • Kubernetes는 DaemonSet으로 클러스터 전체 자동 탐지(오토디스커버리)
  • 수집·보관·분석·대시보드·APM·RUM·보안까지 원스톱 제공

Prometheus

  • Pull 기반(스크랩): /metrics 엔드포인트에서 주기 수집
  • Exporter(node_exporter, nginx_exporter, mysqld_exporter 등)로 다양한 시스템 지표 노출
  • Alertmanager로 경보 라우팅(Slack/Email/Webhook)
  • 장기 보관은 원격 스토리지(Thanos, Cortex, VictoriaMetrics 등) 연동

Grafana

  • 시각화 레이어: Prometheus, CloudWatch, Loki, Elasticsearch 등 수십 종 데이터소스 연결
  • 대시보드 템플릿 풍부, Alerting 기능(Grafana Alerting)
  • 로그는 Loki, 트레이스는 Tempo, 메트릭은 Prometheus 조합으로 풀옵저버빌리티 구축 가능

3. 기능 비교 (메트릭/로그/트레이스/APM/알림)

영역 Datadog Prometheus Grafana
메트릭 Agent/Integrations로 자동 수집, 태그 기반 탐색 Pull 스크랩, PromQL 질의, Exporter 생태계 풍부 표시/대시보드(수집은 외부에 의존)
로그 수집·파이프라인·보관·검색 통합 기본 범위 밖(ELK/Loki와 조합 권장) Loki 연동 시 강력한 로그 시각화
트레이스/APM 분산 트레이싱/프로파일링/에러 추적 OpenTelemetry 등 외부 스택 필요 Tempo/Otel 연동 시 대시보드·상관분석
알림 알림 룰, 이상탐지, 인시던트 관리 Alertmanager(라우팅/서프레션) Grafana Alerting(다중 소스 경보)

4. 비용/운영 관점

  • Datadog: 호스트/컨테이너/로그량/기능별 과금. 운영 편의↑, 비용↑
  • Prometheus+Grafana: 오픈소스(셀프호스팅). 비용↓, 운영 난이도/인력↑
  • 하이브리드: 핵심 서비스는 Datadog, 사내/개발망은 Prometheus+Grafana 등 혼합 전략 활용

5. 실전 예제

(A) Prometheus + Grafana (Docker Compose)

version: "3.8"
services:
  prometheus:
    image: prom/prometheus:v2.54.1
    container_name: prometheus
    ports: ["9090:9090"]
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro

  node_exporter:
    image: prom/node-exporter:v1.8.1
    container_name: node_exporter
    ports: ["9100:9100"]

  grafana:
    image: grafana/grafana:10.3.0
    container_name: grafana
    ports: ["3000:3000"]
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin

prometheus.yml (스크랩 설정)

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["prometheus:9090"]

  - job_name: "node"
    static_configs:
      - targets: ["node_exporter:9100"]

Grafana 접속: http://localhost:3000 → Data Sources에서 Prometheus( http://prometheus:9090 ) 추가

(B) Datadog Agent (Docker/Kubernetes)

Docker 예시

docker run -d --name datadog-agent \ 
  -e DD_API_KEY=<YOUR_API_KEY> \
  -e DD_SITE=datadoghq.com \
  -e DD_LOGS_ENABLED=true \
  -e DD_APM_ENABLED=true \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
  gcr.io/datadoghq/agent:latest

Kubernetes에서는 공식 Helm 차트/Operator로 DaemonSet 배포 후 Autodiscovery로 컨테이너 메트릭/로그/APM을 자동 수집합니다.


6. 운영 팁 & 베스트 프랙티스

  • 라벨/태그 전략 통일: env, service, version, region 등 공통 키로 상관분석 강화
  • 샘플링로그 보존 주기 정책: 비용·성능 균형
  • 알림은 소음 줄이기(에스컬레이션/서프레션/시간대 룰)
  • Kubernetes는 HPA/오토스케일 지표(P95 latency, CPU/메모리, 큐 길이)와 연계
  • 장기 메트릭은 Prometheus에 Thanos/Cortex 등 원격스토리지 연동 검토
  • 로그는 Loki/ELK 중 목적에 맞게 선택(실시간/장기보관/검색 요구)

8.  최종 요약 및 결론

  • Datadog: 올인원 SaaS, 도입/운영이 쉽지만 비용 고려
  • Prometheus: 수집/경보의 표준, 장기보관은 외부 스토리지 권장
  • Grafana: 모든 관측 데이터의 시각화 허브, 멀티 소스 통합에 최적

추천 조합: 비용·유연성 중시 → Prometheus + (Loki/Tempo) + Grafana,
운영 편의·시간 절약 중시 → Datadog.

7. 어떤 도구를 선택할까? (의사결정 가이드)

요구사항 추천 이유
빠른 도입·낮은 운영부담 Datadog 에이전트 설치만으로 통합 관측, 대시보드/알림/분석 내장
비용 절감·셀프호스팅 Prometheus + Grafana 오픈소스·커스텀 자유도↑, K8s 친화
멀티 소스 통합 시각화 Grafana CloudWatch/Prometheus/Loki 등 단일 화면 통합
로그·메트릭·트레이스 일원화 Datadog 또는 Grafana Stack(Loki/Tempo/Prometheus) 원스톱 vs 오픈스택 선택지

반응형