모니터링 서비스가 없으면 정말 불편합니다. 간단한 예로 ~
- 하루는 출근했는데 "** 서비스가 실행이 안되는데?" 확인해보니 메모리 초과로 셧다운되있었습니다.
- 개발 서버에서 테스트 중에 public망에 있던 서비스와 통신 중에 계속 에러가 발생 확인해보니 셧다운되있었습니다.
- ** 서비스 죽었어? 잠시만요... 터미널 열고 타자
다다다다다ps -ef... docker ps .. 매번 이럴순 없습니다.
소스는 github에 올려놓았습니다.
- 1편 - actuator 적용한 application을 띄우기
- 2편 - monitoring application, prometheus docker로 띄우기
- 3편 - Grafana docker로 띄우기
- 4편 - AlertManager 적용
actuator는 Spring Initializer에서 간단하게 추가하고 몇가지 설정만 하면 서비스에 대한 다양한 정보를 얻을 수 있습니다. info, health, metrics 등등. 전 이 정보를 prometheus에서 받아 Grafana로 보이는 작업을 하려고 합니다.
사전 지식으로 필요한 것들
- prometheus
- grafana
- docker
빠른 시일내에 정리하는 글을 올리겠습니다!
이번 글에서는 Grafana를 띄우고 AlertManager를 적용해보도록 하겠습니다.
먼저 Grafana를 Docker로 띄워보겠습니다.
Grafana docker run
Grafana를 Docker에서 pull을 받아줍니다.
버전을 명시하지 않으면 latest 로 세팅되어 pull됩니다.
docker pull grafana/grafana
Grafana Docker Image가 잘 생성되었는지 확인합니다.
다음으로 grafana를 실행시켜줍니다.
docker run \
-d --name grafana -h grafana \
-e GF_SECURITY_ADMIN_PASSWORD=1234 -p 3000:3000 \
--link prometheus:prometheus grafana/grafana
-e GF_SECURITY_ADMIN_PASSWORD : Grafana 로그인 시 password를 설정합니다. ( ID는 Default로 Admin 입니다. )
-link prometheus:prometheus : prometheus에서 모니터링 정보를 조회하기 위한 링크입니다.
Grafana 진입
주소창에 아래 url을 입력합니다.
http://localhost:3000
로그인하고 다음으로 진행합니다.
ID : admin
password : 1234
다음화면에서 Data Sources를 등록합니다.
여기서 Http URL을 입력합니다.
URL은 docker의 {prometheus-ip}:{prometheus-port}를 지정해줍니다.
docker network inspect bridge
URL을 입력하고 Save & Test 버튼을 클릭하면 Data source is working 이라는 문구를 확인할 수 있습니다.
다시 메인으로 돌아와서 좌측 메뉴바에 Dashboard Create를 클릭합니다.
Add new panel 버튼을 누르면 아래 그림이 나옵니다.
그럼 Java Service로 생성한 Monitoring-Application에서 등록한 yong_counter_total 값을 등록해보겠습니다.
yong_counter_total 대시보드를 등록하려면 우측 상단에 있는 Apply 버튼을 누릅니다.
이렇게 내가 원하는 대시보드를 등록해서 사용할 수 있습니다.