서비스를 하다보면 각 인스턴스에 대한 CPU, memory, Heap 등을
개별 모니터링하기보다는 한 곳에서 확인할 수 있는 기능을 제공해줍니다.
actuator는 endpoint를 이용해 응용 프로그램을 확인할 수 있습니다.
각 endpoint는 http 또는 jmx를 통해 활성화와 비활성화를 할 수 있습니다.
기본적으로 /actuator 로 매핑되며 endpoint는 /actuator/health에 매핑됩니다.
관련 내용은 아래 사이트에서 확인해볼 수 있습니다.
docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html
www.baeldung.com/spring-boot-actuators
1. endpoint
어디서든 사용 가능한 endpoint
ID | 설명 |
auditevents |
어플리케이션의 인증 등을 이벤트로 감지해서 표시합니다. |
beans |
빈 정보들을 표시합니다. |
caches |
사용 가능한 캐시를 표시합니다. |
conditions |
구성 및 자동 클래스에서 평가된 조건과 일치하지 않거나 일치하는 이유를 표시합니다. |
configprops |
프로퍼티의 빈이 어떻게 주입되어 있는지 표시합니다. |
env |
환경 프로퍼티를 표시합니다. |
flyway |
flyway의 마이그레이션 정보를 표시합니다. |
health |
어플리케이션의 상태 정보를 표시합니다. |
httptrace |
HTTP 추적 정보(기본적으로 마지막 100개의 HTTP 요청-응답-교환)를 표시합니다. HttpTraceRepository가 필요합니다. |
info |
어플리케이션의 정보를 표시합니다. |
integrationgraph |
스프링 통합 그래프를 표시합니다. 스프링 통합 코어에 대한 의존성이 필요합니다. |
loggers |
어플리케이션의 로그 설정 정보를 표시합니다. |
liquibase |
liquibase의 마이그레이션 정보를 표시합니다. |
metrics |
메모리, 클래스 로더, http 요청 횟수, 마지막 요청의 걸린 시간 등의 매트릭 정보를 표시합니다. |
mappings |
URI 경로와 해당 경로를 포함한 컨트롤러의 매핑 정보를 표시합니다. |
scheduledtasks |
프로그램에서 스케줄링 된 작업을 표시합니다. |
sessions |
Spring 세션 저장소에서 사용자 세션을 검색하고 삭제할 수 있습니다. Spring Session을 사용하는 서블릿 기반 웹 애플리케이션이 필요합니다. |
shutdown |
어플리케이션을 종료합니다.(켜놓으면 위험하니 권한을 admin으로 하길 권장한다.) |
startup |
응용 프로그램 시작에서 수집한 시작 단계 데이터를 표시합니다. 버퍼링 응용 프로그램 시작을 사용하여 Spring 응용 프로그램을 구성해야 합니다. |
threaddump |
스레드 덤프를 수행합니다. |
Spring MVC, SPring WebFlux에서 추가로 사용할 수 있는 endpoint
ID | 설명 |
heapdump |
hprof 힙 덤프 파일을 반환합니다. |
jolokia |
HTTP를 통해 JMX bean을 노출합니다. (Jolokia가 클래스 경로에 있을 때, WebFlux에서는 사용할 수 없습니다. jolokia 코어에 대한 의존성이 필요합니다. |
logfile |
로그 파일의 내용을 반환합니다. (logging.file.name 또는 logging.file.path 속성된 경우). |
prometheus |
Prometheus 서버가 스크랩할 수 있는 형식으로 메트릭을 표시합니다. |
2. 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-actuator'
3. application.yml 설정
주의사항
- management.endpoints.web.exposure.include="*"로 설정하면
모든 정보를 노출하게 되어 외부 접근이 가능해서 중요한 정보를 노출할 수 있습니다.
이를 위해 보안 적용을 해야합니다.
1. actuator는 endpoint가 '/actuator'이며 이를 management.endpoints.web.base-path를 이용하여 임의의 경로로 변경
2. health check시 사용하는 /health endpoint를 사용하기 위해 endpoint.health.show-details=always를 설정
3. management.server.port나 management.server.address 값을 수정
4. spring-security를 이용하여 management.endpoints.web.base-path(/actuator)의 권한 확인
- 기존 security와 사용할 경우 @Order로 순서를 지정해주어야 합니다.
docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#features.security.actuator
management:
endpoints:
web:
exposure: ## Http상에서 endpoint 공개하는 방법
include: '*'
# enabled-by-default: false
endpoint:
shutdown:
enabled: true
# info: ## endpoint 활성화 및 비활성화 방법
# enabled: true
4. /actuator 조회
'개발(합니다) > Java&Spring' 카테고리의 다른 글
[spring boot 설정하기-13] spring cloud feign 설정 및 테스트 소스 (0) | 2021.05.02 |
---|---|
[spring boot 설정하기-12] admin(+security) 설정 및 테스트 소스 (0) | 2021.05.01 |
[spring boot 설정하기-10] dev-tools 설정 및 테스트 소스 (0) | 2021.04.28 |
[spring boot 설정하기-9] oauth2 설정 및 테스트 소스 (1) | 2021.04.23 |
[spring boot 설정하기-8] security 설정 및 테스트 소스 (1) | 2021.04.14 |