dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
}
위와 같이 dependency를 추가한다면, /actuator
경로로 정보 수집 url들을 조회할 수 있다.
(1) 엔드포인트 활성화 (on/off), (2) 엔드포인트 노출(http/jmx) 를 설정해야 한다.
//application.yml
management:
endpoints:
web: // 웹에 모든 엔드포인트 노출
exposure:
include: "*"
exclude: "env, beans" //env, beans는 노출 제외
전체 엔드포인트는 아래 메뉴얼을 참고하면 된다.
https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.endpoints
: /actuator/health
management:
endpoint:
health:
show-details: always
//show-components: always
: /actuator/info
management:
info:
java:
enabled: true
os:
enabled: true
env:
enabled: true
info: //env 에서 확인
app:
name: hello-actuator
company: jm
build 정보는 아래와 같이 build.gradle에 추가해둔다면 활성화된다.
info:
app:
name: hello-actuator
company: jm
: /actuator/loggers
@GetMapping("/log")
public String log() {
log.trace("trace log");
log.debug("debug log");
log.info("info log");
log.warn("warn log");
log.error("error log");
return "OK";
}
logging:
level:
hello.controller: debug
기본적으로 info 부터 찍히지만, logging level 설정으로 레벨을 수정할 수 있다. /actuator/loggers
호출로, 해당 패키지는 어떤 레벨인지 확인할 수 있다.
서비스 운영 중 debug나 trace 로그를 남겨서 확인할 필요할 경우, 실시간 로그 레벨 변경이 가능하다.
//[post] /actuator/loggers/hello.controller
{
"configuredLevel": "TRACE"
}
management:
server:
port: 9292
8080으로 공개한다면 내부 정보를 많이 노출하므로, port 를 변경하고 내부망에서만 접근할 수 있도록 한다.