-
Notifications
You must be signed in to change notification settings - Fork 3
Prometheus 와 Grafana 정리편
실제 적용 당시 상황을 기록한 이슈 페이지 입니다.
Prometheus와 Grafana 를 선택한 이유는 현업에서 가장 많이 쓰이는 모니터링 도구 중 하나이기 때문입니다. 서버의 성능과 로깅을 모니터링하는 데 Prometheus를 사용하고 이를 시각화하는 툴로 Grafana를 사용했습니다.
- ssh를 이용해 EC2 서버에 접속합니다.
- docker-compose.yml 파일이 존재하는 경로에 새로운 폴더를 생성합니다.
mkdir env
env 라는 이름의 폴더를 새로 생성했습니다.
cd env
env 폴더로 이동합니다.
- 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
- 도커 컨테이너 띄우기
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
- EC2 포트 열기
AWS EC2 사이트에 접속해서 9090 포트 번호를 열어줍니다.
- 스프링에서 설정 추가
build.gradle에 사진에 logging 주석 아래 의존성 2개를 추가해줍니다.
그 후, application.yml 에서도 아래 사진처럼 내용을 추가해줍니다.
만약, security를 설정했다면 filter에서 acuator url을 통한 확인이 가능하도록 path를 열어줍니다.
- 웹 브라우저를 통해 접속하기
{IP주소}:9090 으로 접속합니다.
상단 메뉴 -> State -> Target 을 눌러 yml 파일에서 정의한 Job의 상태가 UP인지 확인합니다.
-
ssh를 이용해 EC2 서버에 접속합니다.
-
Prometheus yml파일이 있는 곳으로 이동합니다.
해당 프로젝트의 경우, cd env
를 입력하면 됩니다.
- grafana.env 파일 생성하기
vi grafana.env
위의 명령어를 통해 파일을 생성합니다.
# [server]
# GF_SERVER_DOMAIN=duaily.net
# GF_SERVER_HTTP_PORT=3000
# GF_SERVER_PROTOCOL=http
위의 내용을 입력하고 ESC 버튼 누른 뒤, :wq
를 입력합니다.
도메인에는 자신의 서버 IP 주소를 입력하면 됩니다.
- 도커 컨테이너 띄우기 docker-compose 파일이 있는 경로로 이동한뒤, 아래 명령어를 입력합니다.
docker run -d -p 3000:3000 --name grafana grafana/grafana
- EC2 3000 포트 번호 열기
AWS EC2 사이트에 접속해서 보안 그룹의 인바운드 규칙 편집으로 3000 포트를 열어줍니다.
- 웹브라우저를 통해 grafana에 접속하기
{IP 주소}:3000 을 입력하면 됩니다.
첫 페이지에 admin/admin으로 로그인하고, 비밀번호를 변경합니다.
좌측 메뉴에서 Configuration -> Data source -> Add data source -> prometheus 선택합니다.
form에 URL에 {IP주소}:9090 을 입력한 뒤 save & test 버튼을 눌러줍니다.
- 대시 보드 생성하기
좌측 메뉴에서 Dashboard -> import -> 원하는 대시보드 유형 코드를 입력 -> load 버튼을 눌러줍니다.