* 이 글은 ChatGPT를 이용하여 작성한 후, 블로그 게시를 위하여 편집하였습니다.
Spring Actuator는 Spring Boot 애플리케이션의 모니터링 및 관리 기능을 제공하는 유용한 도구입니다. 이를 사용하면 애플리케이션의 다양한 메트릭, 상태, 환경 정보 등을 쉽게 확인할 수 있습니다. Spring Actuator를 설정하는 방법을 단계별로 설명드리겠습니다.
Spring Boot 프로젝트의 build.gradle 또는 pom.xml 파일에 Spring Actuator 의존성을 추가해야 합니다.
dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' }
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
application.properties 또는 application.yml 파일에서 Actuator 엔드포인트를 설정할 수 있습니다.
management.endpoints.web.exposure.include= *
management.endpoint.health.show-details= always
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
Actuator 엔드포인트는 민감한 정보를 포함할 수 있으므로 보안 설정이 중요합니다. Spring Security를 사용하여 엔드포인트에 접근 제어를 설정할 수 있습니다.
dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' }
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
Spring Security를 사용하여 보안 구성을 추가할 수 있습니다.
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/actuator/**")
.authenticated()
.and()
.httpBasic();
}
}
애플리케이션을 실행하고 브라우저나 Postman과 같은 도구를 사용하여 Actuator 엔드포인트에 접근할 수 있습니다.
필요에 따라 Actuator 엔드포인트를 커스터마이징할 수 있습니다. 예를 들어, 특정 엔드포인트를 비활성화하거나 추가 엔드포인트를 정의할 수 있습니다.
management.endpoint.shutdown.enabled=false
Spring Actuator는 애플리케이션의 모니터링 및 관리 기능을 제공하며, 간단한 설정으로 다양한 정보를 확인할 수 있습니다. 위의 단계들을 따라 Actuator를 설정하고, 필요에 따라 보안 및 커스터마이징을 추가하여 사용해 보세요.
실제로 엔드포인트를 보면 생각 보다 많은 정보를 표현하고 있고 Spring Boot Admin (https://docs.spring-boot-admin.com/current/) 을 통하여 UI를 통하여 확인을 할 수 있다. 별도의 제품 없이 모니터링용으로 사용하기 나쁘지 않다고 생각한다.
Javascript Tip.] 객체를 export하여 사용할 때 (0) | 2024.07.24 |
---|---|
Tailwind CSS Tip.] CSS Flex 의 중앙 정렬 (4) | 2024.07.22 |
AI 상식] RAG(Retrieval-Augmented Generation) 는 무엇인가? (0) | 2024.07.16 |
ReactJS Tip] Conditional Rendering in React (0) | 2024.07.15 |
Linux Tip] CentOS SHA256 Hash 확인 (0) | 2024.07.13 |