5.3. HTTP를 통한 모니터링 및 관리
웹 애플리케이션을 개발하는 경우 Spring Boot Actuator는 활성화 된 모든 엔드 포인트가 HTTP를 통해 노출되도록 자동 구성합니다. 기본 규칙은 id
접두어를 /actuator
URL 경로 로 사용하여 엔드 포인트 를 사용하는 것 입니다 . 예를 들어 health
으로 노출됩니다 /actuator/health
.
Actuator는 Spring MVC, Spring WebFlux 및 Jersey에서 기본적으로 지원됩니다. Jersey와 Spring MVC를 모두 사용할 수 있으면 Spring MVC가 사용됩니다. |
5.3.1. 관리 엔드 포인트 경로 사용자 정의
때로는 관리 엔드 포인트의 접두사를 사용자 정의하는 것이 유용합니다. 예를 들어, 응용 프로그램이 /actuator
다른 목적으로 이미 사용 중일 수 있습니다 . management.endpoints.web.base-path
다음 예제와 같이 특성을 사용 하여 관리 엔드 포인트의 접 두부를 변경할 수 있습니다 .
management.endpoints.web.base-path=/manage
앞의 application.properties
예제는 끝점을 /actuator/{id}
에서 /manage/{id}
( 예 :)로 변경합니다 /manage/info
.
관리 포트가 구성되지 않는 한 다른 HTTP 포트를 사용하여 엔드 포인트를 노출 , management.endpoints.web.base-path 상대적입니다 server.servlet.context-path . 경우 management.server.port 구성되어, management.endpoints.web.base-path 상대적입니다 management.server.servlet.context-path . |
엔드 포인트를 다른 경로에 맵핑하려는 경우 management.endpoints.web.path-mapping
특성을 사용할 수 있습니다 .
다음 예제는 다음으로 다시 매핑 /actuator/health
됩니다 /healthcheck
.
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck
5.3.2. 관리 서버 포트 사용자 정의
기본 HTTP 포트를 사용하여 관리 엔드 포인트를 노출하는 것은 클라우드 기반 배포에 적합한 선택입니다. 그러나 애플리케이션이 자체 데이터 센터 내에서 실행되는 경우 다른 HTTP 포트를 사용하여 엔드 포인트를 노출하는 것이 좋습니다.
management.server.port
다음 예제와 같이 HTTP 포트를 변경 하도록 특성을 설정할 수 있습니다 .
management.server.port=8081
Cloud Foundry에서 애플리케이션은 기본적으로 HTTP 및 TCP 라우팅 모두에 대해 포트 8080에서 요청을받습니다. Cloud Foundry에서 사용자 정의 관리 포트를 사용하려면 트래픽을 사용자 정의 포트로 전달하기 위해 애플리케이션의 경로를 명시 적으로 설정해야합니다. |
5.3.3. 관리 별 SSL 구성
사용자 정의 포트를 사용하도록 구성된 경우 다양한 management.server.ssl.*
특성 을 사용하여 관리 서버를 자체 SSL로 구성 할 수도 있습니다 . 예를 들어, 다음 속성 설정에 표시된대로 주 응용 프로그램이 HTTPS를 사용하는 동안 HTTP를 통해 관리 서버를 사용할 수 있습니다.
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:store.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=false
또는 기본 서버와 관리 서버 모두 SSL을 사용할 수 있지만 다음과 같이 다른 키 저장소와 함께 사용할 수 있습니다.
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:main.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=true
management.server.ssl.key-store=classpath:management.jks
management.server.ssl.key-password=secret
5.3.4. 관리 서버 주소 사용자 정의
management.server.address
특성 을 설정하여 관리 엔드 포인트가 사용 가능한 주소를 사용자 정의 할 수 있습니다 . 내부 또는 운영 네트워크에서만 청취하거나의 연결 만 청취하려는 경우 유용합니다 localhost
.
포트가 기본 서버 포트와 다른 경우에만 다른 주소에서 청취 할 수 있습니다. |
다음 예 application.properties
는 원격 관리 연결을 허용하지 않습니다.
management.server.port=8081
management.server.address=127.0.0.1
5.3.5. HTTP 엔드 포인트 비활성화
HTTP를 통해 엔드 포인트를 노출하지 않으려면 -1
다음 예제와 같이 관리 포트를로 설정하십시오 .
management.server.port=-1
management.endpoints.web.exposure.exclude
다음 예제와 같이 속성을 사용하여 수행 할 수도 있습니다 .
management.endpoints.web.exposure.exclude=*
5.4. JMX를 통한 모니터링 및 관리
JMX (Java Management Extensions)는 응용 프로그램을 모니터링하고 관리하는 표준 메커니즘을 제공합니다. 기본적으로이 기능은 활성화되어 있지 않으며 구성 속성 spring.jmx.enabled
을 로 설정하여 활성화 할 수 있습니다 true
. Spring Boot는 org.springframework.boot
기본적으로 관리 엔드 포인트를 도메인 에서 JMX MBean으로 노출합니다 .
5.4.1. MBean 이름의 커스터마이즈
MBean의 이름은 일반적으로 id
엔드 포인트 의 이름에서 생성 됩니다. 예를 들어 health
엔드 포인트는로 노출됩니다 org.springframework.boot:type=Endpoint,name=Health
.
애플리케이션에 둘 이상의 Spring이 포함 된 경우 ApplicationContext
해당 이름이 충돌 할 수 있습니다. 이 문제점을 해결하기 위해 MBean 이름이 항상 고유하도록 spring.jmx.unique-names
특성을 설정할 수 있습니다 true
.
엔드 포인트가 노출되는 JMX 도메인을 사용자 정의 할 수도 있습니다. 다음 설정은 다음을 수행하는 예를 보여줍니다 application.properties
.
spring.jmx.unique-names=true
management.endpoints.jmx.domain=com.example.myapp
5.4.2. JMX 엔드 포인트 비활성화
JMX를 통해 엔드 포인트를 노출하지 않으려면 다음 예제와 같이 management.endpoints.jmx.exposure.exclude
특성을로 설정하십시오 *
.
management.endpoints.jmx.exposure.exclude=*
5.4.3. Using Jolokia for JMX over HTTP
Jolokia는 JMX Bean에 액세스하는 대체 방법을 제공하는 JMX-HTTP 브릿지입니다. Jolokia를 사용하려면에 대한 종속성을 포함하십시오 org.jolokia:jolokia-core
. 예를 들어 Maven을 사용하면 다음과 같은 종속성이 추가됩니다.
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
</dependency>
Jolokia 종점이어서 추가로 노출 될 수있다 jolokia
거나 *
받는 management.endpoints.web.exposure.include
속성. 그런 다음 /actuator/jolokia
관리 HTTP 서버에서 이를 사용하여 액세스 할 수 있습니다 .
Jolokia 엔드 포인트는 Jolokia의 서블릿을 액추에이터 엔드 포인트로 표시합니다. 결과적으로 Spring MVC 및 Jersey와 같은 서블릿 환경에 따라 다릅니다. WebFlux 애플리케이션에서는 엔드 포인트를 사용할 수 없습니다. |
Jolokia 사용자 정의
Jolokia에는 서블릿 매개 변수를 설정하여 전통적으로 구성 할 수있는 여러 설정이 있습니다. Spring Boot를 사용하면 application.properties
파일을 사용할 수 있습니다. 그렇게하려면 management.endpoint.jolokia.config.
다음 예제와 같이 매개 변수 앞에 접두사를 붙입니다 .
management.endpoint.jolokia.config.debug=true
Jolokia 비활성화
Jolokia를 사용하지만 Spring Boot에서 구성하지 않으려면 다음과 같이 management.endpoint.jolokia.enabled
속성을로 설정하십시오 false
.
management.endpoint.jolokia.enabled=false
5.5. 로거
Spring Boot Actuator에는 런타임시 애플리케이션의 로그 레벨을보고 구성하는 기능이 포함되어 있습니다. 전체 목록 또는 개별 로거의 구성을 볼 수 있으며, 이는 명시 적으로 구성된 로깅 레벨과 로깅 프레임 워크가 제공 한 유효 로깅 레벨로 구성됩니다. 이 레벨은 다음 중 하나 일 수 있습니다.
TRACE
DEBUG
INFO
WARN
ERROR
FATAL
OFF
null
null
명시 적 구성이 없음을 나타냅니다.
5.5.1. 로거 구성
POST
다음 예제와 같이 주어진 로거, 자원의 URI에 대한 부분 엔티티 를 구성하려면 다음을 수행하십시오.
{
"configuredLevel": "DEBUG"
}
로거의 특정 레벨을 "재설정"하고 대신 기본 구성을 사용하려면 값을 null 로 전달할 수 있습니다 configuredLevel . |
Spring Boot Reference DocumentationPhillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons, Vedran Pavić, Jay Bryant, Madhura Bhave, Eddú Meléndez, Scott FrederickLegal2.3.1.RELEASE Copyright © 2012-2020 Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. |
'IT > SpringBoot' 카테고리의 다른 글
스프링 부트 #5.7. Auditing (0) | 2020.06.19 |
---|---|
스프링 부트 #5.6. 측정 항목 (0) | 2020.06.19 |
스프링 부트 #5.Actuator (0) | 2020.06.19 |
스프링 부트 #4.30. 코틀린 지원 (0) | 2020.06.16 |
스프링 부트 #4.27-4.30. 웹 소켓 등 (0) | 2020.06.16 |