Springboot 운영

Springboot 운영

백기선님의 강의인 Springboot 개념과 활용 강의를 듣고 공부한 내용을 정리한 글

스프링 Actuator

스프링 부트는 애플리케이션 운영 환경에서 유용한 기능을 제공한다.

스프링 부트가 제공하는 엔드포인트와 매트릭스 그리고 그 데이터를 활용하는 모니터링 기능에 대해 알아보자.

스프링 Actuator는 스프링과 관련된 정보들을 확인할 수 있는 엔드포인트를 제공해준다.

actuator에 접근하면 hateoas를 사용하여 관련된 URI들을 보여준다.

Http에서는 기본적으론 healthinfo를 공개시켜준다.

그 외에 다양한 엔드포인트를 사용하기 위해서는 expose를 시켜야한다.

Web에서 healthinfo만 공개한 이유는 보안상의 이유때문이라고 한다.

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

인프런 백기선님의 스프링 부트 개념과 활용



© 2022. by minkuk

Powered by minkuk