[Spring Boot] Actuator

Jimin Lim·2023년 5월 21일
0

Spring

목록 보기
4/18
post-thumbnail

✅ Actuator

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

✅ 특정 엔드포인트 톺아보기

🔗 Health 정보

: /actuator/health

management:
  endpoint:
    health:
      show-details: always
      //show-components: always

  • 애플리케이션이 사용하는 DB가 응답하는지, 디스크 사용량에는 문제 없는지 등 다양한 정보들을 포함해 만들어진다.

health 기본 지원 기능

🔗 Application 정보

: /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

🔗 logger 정보

: /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"
}

✅ Actuator 보안

management:
  server:
    port: 9292

8080으로 공개한다면 내부 정보를 많이 노출하므로, port 를 변경하고 내부망에서만 접근할 수 있도록 한다.

🫧 참고자료

스프링 부트 핵심 원리와 활용

profile
💻 ☕️ 🏝 🍑 🍹 🏊‍♀️

0개의 댓글