[E-commerce App] Docker Container를 이용한 애플리케이션 배포 - 5. Prometheus & Grafana
이전 글에 이어서 진행해보자.
Docker Container
8. Prometheus
1) prometheus.yml
파일 수정
이전에 prometheus.yml
파일에 job을 3개 등록했었다.
그 때 targets
을 localhost:8000
으로 했었는데, 이것을 도커 컨테이너의 이름으로 변경하자.
(8000번 포트는 게이트웨이의 포트이다.)
docker network inspect ecommerce-network
커맨드로 gateway-service
의 IP Address를 확인한 뒤에,
IP Address를 적어도 되지만, IP Address는 변경될 수 있기 때문에 컨테이너의 이름을 사용하자.
변경 전
변경 후
이 때, 맨 위의 localhost
는 prometheus
로 변경했는데,
이는 프로메테우스 컨테이너를 아직 생성하지는 않았지만, 이후에 prometheus
라는 이름으로 생성할 예정이기 때문에
프로메테우스 컨테이너의 이름으로 미리 변경한 것이다.
2) 도커 컨테이너 실행
prometheus.yml
파일 위치 찾기
도커 컨테이너를 실행할 때 로컬 시스템에 있는 prometheus.yml
파일을 프로메테우스의 컨테이너 내부로 이동해야 한다.
볼륨 마운트를 위해 로컬에 존재하는 prometheus.yml
파일의 위치를 알아보자.
나는 /Users/minju/study/msa/prometheus-2.39.1.darwin-amd64
위치에 존재한다.
실행
$ docker run -d -p 9090:9090 \
--network ecommerce-network \
--name prometheus \
-v /Users/minju/study/msa/prometheus-2.39.1.darwin-amd64/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
프로메테우스 컨테이너에서 prometheus.yml
파일의 정보를 사용하기 위해서,
볼륨 마운트 혹은 copy를 이용하면 되는데 위 예시는 볼륨 마운트를 이용했다.
/Users/minju/study/msa/prometheus-2.39.1.darwin-amd64/prometheus.yml
부분에 prometheus.yml
파일의 위치를 지정하면 된다.
볼륨 마운트를 사용하게 되면, 파일을 직접 copy 하지 않아도 host PC에 있는 파일을 이용해 컨테이너를 기동할 수 있다는 장점이 있다.
(공유 디렉토리의 개념으로 생각할 수 있다.)
네트워크를 확인해보자.
$ docker network inspect ecommerce-network
아래와 같이 웹 브라우저도 접속 가능하다.
9. Grafana
$ docker run -d -p 3000:3000 \
--network ecommerce-network \
--name grafana \
grafana/grafana
네트워크를 확인해보자.
$ docker network inspect ecommerce-network
마찬가지로 웹 브라우저도 접속 가능하다.
💛 개인 공부 기록용 블로그입니다. 👻