Springboot 운영
Springboot 운영
백기선님의 강의인 Springboot 개념과 활용 강의를 듣고 공부한 내용을 정리한 글
스프링 Actuator
스프링 부트는 애플리케이션 운영 환경에서 유용한 기능을 제공한다.
스프링 부트가 제공하는 엔드포인트와 매트릭스 그리고 그 데이터를 활용하는 모니터링 기능에 대해 알아보자.
스프링 Actuator는 스프링과 관련된 정보들을 확인할 수 있는 엔드포인트를 제공해준다.
actuator에 접근하면 hateoas를 사용하여 관련된 URI들을 보여준다.
Http
에서는 기본적으론 health
와 info
를 공개시켜준다.
그 외에 다양한 엔드포인트를 사용하기 위해서는 expose
를 시켜야한다.
Web
에서 health
와 info
만 공개한 이유는 보안상의 이유때문이라고 한다.
JConsole
힙 사용량, 쓰레드, 클래스들, MBeans 정보 등을 볼 수 있다.
JConsole은 Actuator를 GUI로 제공하는 애플리케이션이며 작동중인 스프링의 상태를 볼 수 있다.
여기서 보면 http에서 보던 것 보다 많은 엔드포인트들을 볼 수 있다.
문제는 운영용에서 보기엔 너무 불편하고 조악하다. (…)
다른 방법으로는 VisualVM이 있다. 살펴보도록 하자.
VisualVM
별도의 설치를 해서 사용 가능하다.
JConsole보다는 가독성이 좋다.
또한 plugin들이 있어서 여러 기능들을 제공해서 확인할 수 있다.
굳이 http에서 보고 싶다면?
management.endpoints.web.exposure.include=*
를 properties 파일에 추가하면 모든 엔드포인트들을 노출시켜준다.
그러나 보안상의 문제가 있을 수 있기 때문에 http 엔드포인트에 스프링 시큐리티를 적용해서 특정 권한을 가진 유저만 열람할 수 있게 하는 것이 안전하다.
Springboot Admin도 있다!
Springboot Admin는 스프링 진영에서 제공하는 프로젝트가 아닌 3rd-party Application이다.
Actuator 정보를 웹에서 확인할 수 있는 툴이다.
스프링 부트 어드민을 사용하기 위해서는 어드민 서버를 의존성 추가하고 @EnableAdminServer
애노테이션을 추가하기만 하면 된다.
클라이언트에는 클라이언트 의존성을 추가하고, 어드민 서버의 주소를 적어준다.
spring.boot.admin.client.url={어드미 서버 주소}
어드민 서버에 접속하면 클라이언트들을 보여주고 스프링 정보들을 한눈에 이쁘게 보여준다.
Reference
인프런 백기선님의 스프링 부트 개념과 활용