Skip to content

Prometheus 와 Grafana 정리편

이은비 edited this page Nov 20, 2022 · 1 revision

Prometheus 와 Grafana - 정리편

실제 적용 당시 상황을 기록한 이슈 페이지 입니다.

Prometheus와 Grafana 를 선택한 이유는 현업에서 가장 많이 쓰이는 모니터링 도구 중 하나이기 때문입니다. 서버의 성능과 로깅을 모니터링하는 데 Prometheus를 사용하고 이를 시각화하는 툴로 Grafana를 사용했습니다.

1. Prometheus 컨테이너로 실행하기

  1. ssh를 이용해 EC2 서버에 접속합니다.
  2. docker-compose.yml 파일이 존재하는 경로에 새로운 폴더를 생성합니다.
mkdir env

env 라는 이름의 폴더를 새로 생성했습니다.

cd env

env 폴더로 이동합니다.

  1. prometheus.yml 파일을 새로 작성합니다.
vi prometheus.yml

vi 편집기를 이용해 yml 파일을 작성합니다.

global:
  scrape_interval: "15s"
  evaluation_interval: "15s"
scrape_configs:
- job_name: "springboot"
  metrics_path: "/actuator/prometheus"
  static_configs:
  - targets:
    - "{EC2 IP 주소}:8080"
- job_name: "prometheus"
  static_configs:
  - targets:
    - "{EC2 IP 주소}:9090"

위의 내용을 입력하고 ESC 버튼을 누르고, 아래 처럼 입력합니다.

:wq
  1. 도커 컨테이너 띄우기

docker-compose 파일이 있는 경로로 다시 이동합니다.

cd ..

그 후, 아래 명령어를 이용해 컨테이너를 실행합니다.

docker run -d -p 9090:9090 -v /home/ubuntu/env/prometheus.yml:/etc/prometheus/prometheus.yml --name prometheus prom/prometheus

잘 실행중인 지 확인하고 싶다면 아래 명령어를 입력하면 됩니다

// 현재 실행중인 도커 컨테이너 조회
docker ps
// prometheus 라는 이름을 갖고 있는 컨테이너의 log 확인
docker logs prometheus
  1. EC2 포트 열기

AWS EC2 사이트에 접속해서 9090 포트 번호를 열어줍니다.

  1. 스프링에서 설정 추가
image

build.gradle에 사진에 logging 주석 아래 의존성 2개를 추가해줍니다.

그 후, application.yml 에서도 아래 사진처럼 내용을 추가해줍니다. image

만약, security를 설정했다면 filter에서 acuator url을 통한 확인이 가능하도록 path를 열어줍니다.

  1. 웹 브라우저를 통해 접속하기

{IP주소}:9090 으로 접속합니다.

상단 메뉴 -> State -> Target 을 눌러 yml 파일에서 정의한 Job의 상태가 UP인지 확인합니다.

2. Grafana 컨테이너로 띄우기

  1. ssh를 이용해 EC2 서버에 접속합니다.

  2. Prometheus yml파일이 있는 곳으로 이동합니다.

해당 프로젝트의 경우, cd env 를 입력하면 됩니다.

  1. grafana.env 파일 생성하기
vi grafana.env

위의 명령어를 통해 파일을 생성합니다.

# [server]
# GF_SERVER_DOMAIN=duaily.net
# GF_SERVER_HTTP_PORT=3000
# GF_SERVER_PROTOCOL=http

위의 내용을 입력하고 ESC 버튼 누른 뒤, :wq 를 입력합니다.

도메인에는 자신의 서버 IP 주소를 입력하면 됩니다.

  1. 도커 컨테이너 띄우기 docker-compose 파일이 있는 경로로 이동한뒤, 아래 명령어를 입력합니다.
docker run -d -p 3000:3000 --name grafana grafana/grafana
  1. EC2 3000 포트 번호 열기

AWS EC2 사이트에 접속해서 보안 그룹의 인바운드 규칙 편집으로 3000 포트를 열어줍니다.

  1. 웹브라우저를 통해 grafana에 접속하기

{IP 주소}:3000 을 입력하면 됩니다.

첫 페이지에 admin/admin으로 로그인하고, 비밀번호를 변경합니다.

좌측 메뉴에서 Configuration -> Data source -> Add data source -> prometheus 선택합니다.

form에 URL에 {IP주소}:9090 을 입력한 뒤 save & test 버튼을 눌러줍니다.

  1. 대시 보드 생성하기

좌측 메뉴에서 Dashboard -> import -> 원하는 대시보드 유형 코드를 입력 -> load 버튼을 눌러줍니다.