도커로 grafana, prometheus 서버 띄우기

2025. 2. 24. 13:24·Devops
목차
  1. docker-compose.monitoring.yml 파일 작성
  2. SSL 인증서 받은 도메인에 경로 추가
  3. Prometheus 확인 
  4. Grafana 띄우기
  5. 대시보드 구성하기
  6. 로그기반 대시보드 구성
  7. 최종 프로젝트 기술 스택

이렇게 멋진 대시보드 한 번 가져보자!

docker-compose.monitoring.yml 파일 작성

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - "9090:9090"
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--web.external-url=/prometheus'
    volumes:
      - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
    networks:
      - frontend-network
    depends_on:
      - cadvisor

  grafana:
    image: grafana/grafana-oss
    container_name: grafana
    expose:
      - "3002"
    ports:
      - "3002:3002"
    environment:
      - GF_SERVER_ROOT_URL=http://localhost:3002/grafana
      - GF_SERVER_SERVE_FROM_SUB_PATH=true
    volumes:
      - grafana:/var/lib/grafana
    networks:
      - frontend-network
    depends_on:
      - loki

  cadvisor:
    image: gcr.io/cadvisor/cadvisor:v0.47.0
    container_name: cadvisor
    ports:
      - "8082:8082"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    networks:
      - frontend-network
      - backend-network
    depends_on:
      - backend
      - frontend
      - adminer
      - mysql

  loki:
    image: grafana/loki:latest
    container_name: loki
    ports:
      - 3100:3100
    networks:
      - frontend-network
    volumes:
      - ./monitoring/loki-config.yml:/etc/loki/loki-config.yaml

  promtail:
    image: grafana/promtail:latest
    container_name: promtail
    networks:
      - frontend-network
      - backend-network
    volumes:
      - ./monitoring/promtail-config.yml:/etc/promtail/promtail-config.yaml
    depends_on:
      - loki

volumes:
  grafana:

기존 docker-compose.prod.yml에 include추가하기

 

docker compose -f docker-compose.prod.yml up

 

으로 명시적으로 docker-compose 파일을 ssh 상에서 띄우면 docker-compose.monitoring.yml 도 같이 작동한다.

include:
  - docker-compose.monitoring.yml

services:

  nginx_proxy:
    image: jc21/nginx-proxy-manager:latest
    container_name:  nginx_proxy_manager

 

SSL 인증서 받은 도메인에 경로 추가

Nginx proxy manager - proxy host - custom locations에 추가한 경로에 / 으로 구분해 각 컨테이너로 라우팅해준다.

관리자가 <your:domain>/prometheus로 접속할 수 있게 해준 것이다.

 

Prometheus 확인 

 

ec2 방화벽도 그에 맞게 열어주었다. sudo ufw status

Grafana 띄우기

Nginx proxy manager 로 경로 설정 후, 일단 처음 접속하면 처음에는 별 화면이 없어서 놀랄 수 있다 오른쪽 상단 로그인 후 (최초 로그인 시 id: admin, pw: admin) 최초 비번 설정 변경 후 데이터 소스를 추가할 수 있다.

add data source - prometheus 클릭

 

밑의 나머지 설정은 그대로 두고 save&test

알맞게 설정되면

가 뜬다. loki도 똑같이 http://loki:3100으로 추가하기

 

잘 추가된 모습을 볼 수 있다.

 

대시보드 구성하기

오른쪽 상단 + - import dashboard 클릭

대시보드 id 19792 입력 후 로드 클릭.  cadvisor 기반 dashboard 템플릿 id이다.

데이터 소스로 prometheus 클릭 후 가져오기

 

아름다운 대시보드가 완성되었다.

 

로그기반 대시보드 구성

다중컨테이너로 구성된 docker compose up 하다보면 로그가 너무 많이 뜨는 문제가 있다. 이를 필터로 볼 수 있게 하고 싶었다.

 

오른쪽 상단 + - new dashboard  - 오른쪽 상단 settings - variables

 

원하는 대시보드 구성요소 설정 후

Add

최종 프로젝트 기술 스택

'Devops' 카테고리의 다른 글

프리티어 EC2 성능과 도커 이슈  (0) 2025.03.04
Locust로 실제 EC2 서버 부하 테스트 해보기 (xlarge 인스턴스)  (3) 2025.03.02
Docker 시작하기 - 2 프로젝트 적용  (1) 2025.01.19
Docker 시작하기 - 1  (1) 2025.01.07
CloudFlare Tunnel로 쉽게 웹사이트 배포하는 방법  (1) 2024.11.23
  1. docker-compose.monitoring.yml 파일 작성
  2. SSL 인증서 받은 도메인에 경로 추가
  3. Prometheus 확인 
  4. Grafana 띄우기
  5. 대시보드 구성하기
  6. 로그기반 대시보드 구성
  7. 최종 프로젝트 기술 스택
'Devops' 카테고리의 다른 글
  • 프리티어 EC2 성능과 도커 이슈
  • Locust로 실제 EC2 서버 부하 테스트 해보기 (xlarge 인스턴스)
  • Docker 시작하기 - 2 프로젝트 적용
  • Docker 시작하기 - 1
maxwithjude
maxwithjude
maxwithjude 님의 블로그 입니다.
maxwithjude 님의 블로그maxwithjude 님의 블로그 입니다.
  • maxwithjude
    maxwithjude 님의 블로그
    maxwithjude
  • 전체
    오늘
    어제
    • 분류 전체보기 (30)
      • 네트워크 (2)
      • 프론트 (2)
      • Devops (7)
      • 데이터베이스 (6)
      • 영어회화 + 자격증 (2)
      • 개발 프로젝트 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    mysql
    EC2
    Docker
    부하테스트
    ssl/tls
    innodb
    db 압축
    osi 응용계층
    AWS
    싸피
    오픽주엽
    Nest.js
    Vtuber
    오픽후기
    db 락
    mysql #db #database #성능 최적화
    오블완
    vroid studio
    채팅api
    인덱스
    티스토리챌린지
    db 격리수준
    버츄얼 모델
    버튜버
    Sendbird
    버츄얼 모델 프로젝트
    센드버드
    mysql에러로그
    typeorm
    vue3
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
maxwithjude
도커로 grafana, prometheus 서버 띄우기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.