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

Ch07. 액츄에이터 - 엔드포인트 설정

webmaster 2023. 3. 20. 01:20
728x90

엔드포인트를 사용하려면 다음 2가지 과정이 모두 필요하다.

  1. 엔드포인트 활성화
  2. 엔드포인트 노출

엔드포인트를 활성화한다는 것은 해당 기능 자체를 사용할지 말지 on, off를 선택하는 것이다. 엔드포인트를 노출하는 것은 활성화된 엔드포인트를 HTTP에 노출할지 아니면 JMX에 노출할지 선택하는 것이다.
엔드포인트를 활성화하고 추가로 HTTP를 통해서 웹에 노출할지, 아니면 JMX를 통해서 노출할지 두 위치에 모두 노출할지 노출 위치를 지정해주어야 한다.
물론 활성화가 되어있지 않으면 노출도 되지 않는다.

그런데 엔드포인트는 대부분 기본으로 활성화되어 있다.( shutdown 제외) 노출이 되어 있지 않을 뿐이다. 따라서 어떤 엔드포인트를 노출할지 선택하면 된다.
참고로 HTTPJMX를 선택할 수 있는데, 보통 JMX는 잘 사용하지 않으므로 HTTP에 어떤 엔드포인트를 노출할지 선택하면 된다.

application.yml - 모든 엔드포인트를 웹에 노출

management:
  endpoints:
    web:
      exposure:
        include: "*"
  • "*" 옵션은 모든 엔드포인트를 웹에 노출하는 것이다. 참고로 shutdown 엔드포인트는 기본으로 활성화 되지 않기 때문에 노출도 되지 않는다.
  • 엔드포인트 활성화 + 엔드포인트 노출이 둘다 적용되어야 사용할 수 있다.

엔드포인트 활성화(shutdown 엔드포인트 활성화)

application.yml - 수정

management:
  endpoint:
    shutdown:
      enabled: true
  endpoints:
    web:
      exposure:
        include: "*"
  • 특정 엔드포인트를 활성화 하려면 management.endpoint.{엔드포인트명}.enabled=true 를 적용하면 된다.
  • 이제 Postman 같은 것을 사용해서 HTTP POSThttp://localhost:8080/actuator/shutdown 를 호출하면 실제 서버가 종료되는 것을 확인할 수 있다.
  • 물론 이 기능은 주의해서 사용해야 한다. 그래서 기본으로 비활성화 되어 있다.

엔드포인트 노출

스프링 공식 매뉴얼이 제공하는 예제를 통해서 엔드포인트 노출 설정을 알아보자

management:
  endpoints:
    jmx:
      exposure:
        include: "health,info"
  • jmx 에 health,info 를 노출한다.
management:
  endpoints:
    web:
      exposure:
        include: "*"
        exclude: "env,beans"
  • web 에 모든 엔드포인트를 노출하지만 env , beans 는 제외한다.

 

728x90