Docker Compose Grafana 대시보드 구성 완벽 가이드! 실시간 서버 상태 시각화 방법 알아보기

서버 운영에서 Metrics 데이터를 수집하는 것만으로는 충분하지 않습니다.

수집한 데이터를 사람이 쉽게 확인하고 분석할 수 있는 화면이 필요합니다.

Prometheus:

Metrics 저장

Grafana:

Metrics 시각화

구조:

Container

↓

Exporter

↓

Prometheus

↓

Grafana Dashboard

Grafana를 사용하면 CPU, Memory, Network, Application 상태를 실시간 그래프로 확인할 수 있습니다.

이번 글에서는 Docker Compose 환경에서 Grafana 설치부터 Prometheus 연결, Dashboard 구성, Server Monitoring, Production 운영 구조까지 알아보겠습니다.

Grafana란 무엇인가?

Grafana는 다양한 데이터 소스를 연결하여 시각화하는 Monitoring Dashboard 플랫폼입니다.

지원 데이터:

  • Prometheus
  • Loki
  • Elasticsearch
  • MySQL
  • PostgreSQL

대표 활용:

데이터 수집

↓

그래프 표시

↓

상태 분석

Prometheus와 Grafana 역할 차이

Prometheus:

Metrics 수집

↓

저장

Grafana:

저장된 데이터

↓

Dashboard 표시

구조:

Exporter

↓

Prometheus

↓

Grafana

↓

사용자

Docker Compose Grafana 구성

docker-compose.yml:

services:

  grafana:

    image: grafana/grafana

    container_name: grafana

    ports:

      - "3000:3000"

    volumes:

      - grafana-data:/var/lib/grafana


volumes:

  grafana-data:

실행:

docker compose up -d

확인:

docker ps

결과:

grafana running

Docker Compose Grafana 초기 설정

접속:

http://server-ip:3000

기본 로그인:

Username:

admin


Password:

admin

첫 로그인 후 비밀번호 변경이 필요합니다.

Docker Compose Grafana와 Prometheus 연결

Grafana는 데이터를 직접 수집하지 않습니다.

Prometheus를 Data Source로 연결합니다.

구조:

Grafana

↓

Prometheus

↓

Metrics

설정:

Data Source 추가

Prometheus 선택

↓

URL 입력

↓

Save & Test

Docker Network 환경:

http://prometheus:9090

Docker Compose Grafana Dashboard 생성

Dashboard는 여러 Panel로 구성됩니다.

예:

Server Dashboard

├── CPU Usage

├── Memory Usage

├── Disk Usage

├── Network Traffic

└── Container Status

Panel:

하나의 그래프 화면

Docker Compose CPU Monitoring Dashboard

CPU 사용량 표시:

PromQL:

rate(node_cpu_seconds_total[5m])

확인:

현재 CPU 사용률

CPU 증가 추세

활용:

  • 서버 부하 확인
  • Scaling 판단

Docker Compose Memory Monitoring Dashboard

Memory 확인:

node_memory_MemAvailable_bytes

확인:

현재 사용 Memory

남은 Memory

문제 감지:

Memory 부족

↓

Container 장애

Docker Compose Container Dashboard 구성

Container 상태 확인:

표시:

  • Container 개수
  • CPU 사용량
  • Memory 사용량
  • Restart 횟수

구조:

Container

↓

cAdvisor

↓

Prometheus

↓

Grafana

Docker Compose Network Dashboard

Network Traffic 확인:

Metrics:

Receive Bytes

Transmit Bytes

활용:

  • Traffic 증가 확인
  • Network 장애 분석

Docker Compose Application Dashboard

Application Metrics:

예:

Request Count

Response Time

Error Rate

구조:

Application

↓

Metrics Exporter

↓

Prometheus

↓

Grafana

Grafana Template Dashboard 활용

직접 만들 수도 있지만 기존 Dashboard를 가져올 수 있습니다.

방법:

Dashboard

↓

Import

↓

ID 입력

↓

Load

대표 Dashboard:

  • Node Exporter Dashboard
  • Docker Monitoring Dashboard
  • Kubernetes Dashboard

Docker Compose Grafana Alert 설정

Grafana에서도 Alert 설정이 가능합니다.

예:

CPU 90% 이상

↓

Alert 발생

구조:

Grafana

↓

Alert Rule

↓

Notification

알림:

  • Email
  • Slack
  • Webhook

Docker Compose Grafana 데이터 유지

Grafana 설정도 Volume 저장이 필요합니다.

구조:

Grafana Container

↓

Volume

↓

Dashboard 저장

Volume 없으면:

Container 삭제

↓

Dashboard 삭제

Docker Compose Production Monitoring 구조

실제 운영:

Application

↓

Exporter

↓

Prometheus

↓

Grafana

↓

Alertmanager

↓

Engineer

Docker Compose Grafana 보안 설정

운영 환경 권장:

HTTPS 적용

HTTPS

↓

Grafana

계정 관리

  • 강력한 Password
  • 사용자 권한 설정

외부 공개 제한

Private Network 사용

Docker Compose Grafana 운영 Best Practice

추천:

  • Dashboard 백업
  • Data Source 관리
  • Alert 설정
  • User 권한 관리
  • HTTPS 적용
  • Version 관리

운영 흐름:

Metrics 수집

↓

Dashboard 표시

↓

문제 발견

↓

Alert

↓

대응

자주 묻는 질문

Grafana만 설치하면 Monitoring이 되나요?

아닙니다.

데이터를 제공하는 Prometheus 같은 Metrics 시스템이 필요합니다.

Grafana와 Prometheus는 같이 사용해야 하나요?

일반적으로 함께 사용하는 경우가 많습니다.

Dashboard는 직접 만들어야 하나요?

기존 Template을 가져와 수정할 수 있습니다.

작은 서버에서도 사용할 수 있나요?

가능합니다.

기본 Server Dashboard부터 시작하면 됩니다.

마무리

Docker Compose Grafana 구성은 서버 상태를 한눈에 확인하고 빠르게 장애를 발견하기 위한 핵심 Monitoring 구조입니다.

최종 구조:

Container

↓

Metrics

↓

Prometheus

↓

Grafana Dashboard

↓

Alert

Production 서버 운영에서는 단순히 서비스를 실행하는 것이 아니라 상태를 지속적으로 관찰하고 문제를 빠르게 해결하는 체계가 필요합니다.

다음 글에서는 장애 발생 시 자동으로 알림을 보내는 Docker Compose Alertmanager 구성 방법을 알아보겠습니다.

댓글 남기기