Spring Boot Actuator 적용하기
개요
Spring boot용 헬스체크 및 다양한 기능을 제공하는 일종의 관리 툴
HTTP를 이용하여 어플리케이션에 대한 관리 및 모니터링 기능을 제공한다. 당연한 이야기이지만 기존 제공하는 서비스와 더불어서 적용이 가능함.
Remote Shell을 설정해 두면 SSH를 통한 접근도 가능하다
문서가 너무 잘 나와있어서 보면서 쉽게 뚝딱 따라할 수 있다.
설정법
pom.xml
1 2 3 4 5 6 7 8 9
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-actuator-docs</artifactId> </dependency>
|
application.properties
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #actuator management.context-path=[YOUR_MANAGEMENT_CONTEXT_PATH] management.port=[YOUR_PORT] management.security.username=[YOUR_USERNAME] management.security.password=[YOUR_PASSWORD]
endpoints.actuator.enabled=false endpoints.auditevents.enabled=false endpoints.dump.enabled=false endpoints.flyway.enabled=false endpoints.liquibase.enabled=false endpoints.shutdown.enabled=false endpoints.trace.enabled=false endpoints.heapdump.enabled=false endpoints.jolokia.enabled=false endpoints.logfile.enabled=false
|
관리할 포트 및 endpoint설정, 미사용 기능 활성화|비활성화, security 설정 등.
WebSecurityConfig.java
1 2 3 4 5 6 7 8 9 10 11 12
| @EnableConfigurationProperties(ManagementProperties.class) @Order(LOWEST_PRECEDENCE - 5) public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired public void registerGlobal(AuthenticationManagerBuilder auth, ManagementProperties managementProperties) throws Exception { auth .inMemoryAuthentication() .withUser(managementProperties.getUsername()).password(managementProperties.getPassword()).roles("ACTUATOR"); } }
|
ManagementProperites.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @Data @Validated @ConfigurationProperties("management.security") public class ManagementProperties {
@NotBlank private String username;
@NotBlank private String password; }
|
시큐리티 및 인증 정책은 사용자별로 적절한 정책을 구현하게 되어 있다.
위에서는 테스트를 위해 간단한 auth를 집어넣었다.
기존 시큐리티와 같이 사용하는 경우 @Order
를 이용하여 순서를 지정해주어야 한다
자세한 내용은
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-security-actuator
스프링 부트 공식 문서의 Actuator Security 참고
spring-boot-actuator
spring-boot-actuator-docs
이건 테스트용으로
제공하는 페이지 및 기능
공식 문서 참고
https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-endpoints
- /actuator
- /auditevents
- /autoconfig
- /beans
- /configprops
- /dump
- /env
- /flyway
- /health
- /info
- /loggers
- /liquibase
- /metrics
- /mappings
- /shutdown
- /trace
Spring MVC를 사용하는 경우 아래 endpoint를 추가로 더 사용할 수 있다
- /docs
- /heapdump
- /jolokia
- /logfile
/shutdown
과 같은 위험한 기능도 존재한다. 당연히 제공하는 엔드포인트 중 사용/미사용 설정이 가능하다
1
| endpoints.shutdown.enabled=false
|
endpoints.[해당 ENDPOINT].enabled=true|false 형태로 정의하면 된다
이 밖에 자세한 설정 역시 공식 문서 참고