토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 부트 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.

목차


8.4. Monitoring and Management over JMX

JMXJava Management Extensions는 애플리케이션을 모니터링하고 관리할 수 있는 표준 메커니즘을 제공한다. 기본적으로 이 기능은 활성화하지 않으며, 설정 프로퍼티 spring.jmx.enabledtrue로 설정하면 켤 수 있다. 스프링 부트는 기본적으로 org.springframework.boot 도메인 아래에 JMX MBean으로 management 엔드포인트를 노출한다. JMX 도메인에 엔드포인트를 등록하는 로직을 전부 직접 제어하려면 자체 EndpointObjectNameFactory 구현체를 등록하는 걸 검토해봐라.

8.4.1. Customizing MBean Names

보통 MBean의 이름은 엔드포인트의 id로 만들어진다. 예를 들어 health 엔드포인트는 org.springframework.boot:type=Endpoint,name=Health로 노출된다.

애플리케이션에 스프링 ApplicationContext가 둘 이상일 땐 MBean 이름이 충돌할 수도 있다. 이럴 땐 spring.jmx.unique-names 프로퍼티를 true로 설정해서 MBean 이름들을 항상 유니크하게 만들어주면 된다.

엔드포인트를 노출할 JMX 도메인을 커스텀할 수도 있다. 아래 application.properties를 참고해라:

properties yaml
spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
spring:
  jmx:
    unique-names: true
management:
  endpoints:
    jmx:
      domain: "com.example.myapp"

8.4.2. Disabling JMX Endpoints

엔드포인트들을 JMX로 노출하지 않고 싶다면 다음 예제처럼 management.endpoints.jmx.exposure.exclude 프로퍼티를 *로 설정하면 된다:

properties yaml
management.endpoints.jmx.exposure.exclude=*
management:
  endpoints:
    jmx:
      exposure:
        exclude: "*"

8.4.3. Using Jolokia for JMX over HTTP

Jolokia는 JMX 빈에 접근하는 또다른 방법을 제공하는 JMX-HTTP bridge다. Jolokia를 사용하려면 org.jolokia:jolokia-core 의존성을 추가해라. 예를 들어 메이븐에선 아래 의존성을 추가하면 된다:

<dependency>
    <groupId>org.jolokia</groupId>
    <artifactId>jolokia-core</artifactId>
</dependency>

그런 다음 management.endpoints.web.exposure.include 프로퍼티에 jolokia*을 추가하면 Jolokia 엔드포인트를 노출할 수 있다. 그러면 management HTTP 서버에서 /actuator/jolokia를 사용해 액세스할 수 있다.

Jolokia 엔드포인트는 Jolokia의 서블릿을 액추에이터 엔드포인트로 노출한다. 따라서 Jolokia 엔드포인트는 스프링 MVC와 Jersey같은 서블릿 환경 전용이다. 웹플럭스 애플리케이션에선 이 엔드포인트를 사용할 수 없다.

Customizing Jolokia

Jolokia는 전통적인 서블릿 파라미터를 이용해 세팅할 수 있는 여러 가지 설정을 가지고 있다. 스프링 부트에서는 application.properties 파일을 사용하면 된다. 다음 예제처럼 파라미터 앞에 management.endpoint.jolokia.config.를 붙여주면 된다:

properties yaml
management.endpoint.jolokia.config.debug=true
management:
  endpoint:
    jolokia:
      config:
        debug: true

Disabling Jolokia

Jolokia를 사용하긴 하지만 스프링 부트에서 설정하는 건 싫다면 다음과 같이 management.endpoint.jolokia.enabled 프로퍼티를 false로 설정해라:

properties yaml
management.endpoint.jolokia.enabled=false
management:
  endpoint:
    jolokia:
      enabled: false

전체 목차는 여기에 있습니다.

<< >>

TOP