스프링 부트 액츄에이터
스프링 부트 액츄에이터 Spring Boot Framework의 하위 프로젝트입니다. 여기에는 Spring Boot 애플리케이션을 모니터링하고 관리하는 데 도움이 되는 다양한 추가 기능이 포함되어 있습니다. 여기에는 액추에이터 엔드포인트(리소스가 있는 장소)가 포함됩니다. 우리는 사용할 수 있습니다 HTTP 그리고 JMX Spring Boot 애플리케이션을 관리하고 모니터링하기 위한 엔드포인트입니다. 애플리케이션에서 즉시 사용 가능한 기능을 얻으려면 S를 사용해야 합니다. 프링 부트 액츄에이터.
스프링 부트 액츄에이터 기능
있다 삼 스프링 부트 액츄에이터의 주요 기능:
끝점: 액추에이터 엔드포인트를 사용하면 애플리케이션을 모니터링하고 상호 작용할 수 있습니다. Spring Boot는 다양한 내장 엔드포인트를 제공합니다. 자체 엔드포인트를 만들 수도 있습니다. 각 엔드포인트를 개별적으로 활성화 및 비활성화할 수 있습니다. 대부분의 응용 프로그램을 선택합니다. HTTP , 여기서 끝점의 ID와 접두사 /액추에이터, URL에 매핑됩니다.
배열 자바
예를 들어, /건강 엔드포인트는 애플리케이션의 기본 상태 정보를 제공합니다. 기본적으로 액추에이터는 이를 다음과 같이 매핑했습니다. /액추에이터/건강 .
측정항목: Spring Boot Actuator는 마이크로미터 . 마이크로미터는 Spring Boot에 통합되어 있습니다. 이는 Spring에서 애플리케이션 메트릭 전달을 지원하는 계측 라이브러리입니다. 공급업체 중립적인 인터페이스를 제공합니다. 타이머, 게이지, 카운터, 배포 요약, 그리고 긴 작업 타이머 차원 데이터 모델을 사용합니다.
심사: Spring Boot는 이벤트를 게시하는 유연한 감사 프레임워크를 제공합니다. AuditEventRepository. 스프링 보안이 실행 중이면 자동으로 인증 이벤트를 게시합니다.
스프링 부트 액추에이터 활성화
종속성을 주입하여 액추에이터를 활성화할 수 있습니다. 스프링 부트 스타터 액츄에이터 pom.xml 파일에 있습니다.
org.springframework.boot spring-boot-starter-actuator 2.2.2.RELEASE
스프링 부트 액추에이터 끝점
Actuator 엔드포인트를 사용하면 Spring Boot 애플리케이션을 모니터링하고 상호 작용할 수 있습니다. Spring Boot에는 다수의 내장 엔드포인트가 포함되어 있으며 Spring Boot 애플리케이션에 사용자 정의 엔드포인트를 추가할 수도 있습니다.
다음 표에서는 널리 사용되는 엔드포인트에 대해 설명합니다.
ID | 용법 | 기본 |
---|---|---|
액추에이터 | 하이퍼미디어 기반의 서비스를 제공합니다. 검색 페이지 다른 끝점의 경우. 클래스 경로에 Spring HATEOAS가 있어야 합니다. | 진실 |
감사 이벤트 | 현재 애플리케이션에 대한 감사 이벤트 정보를 노출합니다. | 진실 |
자동 구성 | 모든 자동 구성 후보와 해당 후보가 '적용' 또는 '적용되지 않은' 이유를 보여주는 자동 구성 보고서를 표시하는 데 사용됩니다. | 진실 |
콩 | 이는 애플리케이션에 있는 모든 Spring 빈의 전체 목록을 표시하는 데 사용됩니다. | 진실 |
구성 소품 | 모든 @ConfigurationProperties의 대조 목록을 표시하는 데 사용됩니다. | 진실 |
덤프 | 스레드 덤프를 수행하는 데 사용됩니다. | 진실 |
환경 | 이는 Spring의 ConfigurableEnvironment에서 속성을 노출하는 데 사용됩니다. | 진실 |
이동 경로 | 적용된 Flyway 데이터베이스 마이그레이션을 표시하는 데 사용됩니다. | 진실 |
건강 | 애플리케이션 상태 정보를 표시하는 데 사용됩니다. | 거짓 |
정보 | 임의의 애플리케이션 정보를 표시하는 데 사용됩니다. | 거짓 |
로거 | 애플리케이션에서 로거 구성을 표시하고 수정하는 데 사용됩니다. | 진실 |
액상염기 | 적용된 Liquibase 데이터베이스 마이그레이션을 표시하는 데 사용됩니다. | 진실 |
측정항목 | 현재 애플리케이션에 대한 메트릭 정보를 표시하는 데 사용됩니다. | 진실 |
매핑 | 모든 @RequestMapping 경로의 조합된 목록을 표시하는 데 사용됩니다. | 진실 |
일시 휴업 | 애플리케이션을 정상적으로 종료하는 데 사용됩니다. | 진실 |
추적하다 | 추적 정보를 표시하는 데 사용됩니다. | 진실 |
Spring MVC의 경우 다음과 같은 추가 엔드포인트가 사용됩니다.
ID | 설명 | 기본 |
---|---|---|
문서 | 이는 액추에이터의 엔드포인트에 대한 요청 및 응답 예시를 포함하여 문서를 표시하는 데 사용됩니다. | 거짓 |
힙 덤프 | GZip 압축 hprof 힙 덤프 파일을 반환하는 데 사용됩니다. | 진실 |
졸로키아 | 이는 HTTP를 통해 JMX 빈을 노출하는 데 사용됩니다(Jolokia가 클래스 경로에 있는 경우). | 진실 |
로그 파일 | 로그 파일의 내용을 반환하는 데 사용됩니다. | 진실 |
프로메테우스 | 이는 Prometheus 서버에서 스크랩할 수 있는 형식으로 메트릭을 노출하는 데 사용됩니다. 마이크로미터-레지스트리-프로메테우스에 대한 종속성이 필요합니다. | 진실 |
스프링 부트 액추에이터 속성
Spring Boot는 모든 Actuator 엔드포인트에 대한 보안을 활성화합니다. 그것은 사용한다 양식 기반 제공하는 인증 사용자 ID 사용자로서 무작위로 생성된 비밀번호 . 또한 엔드포인트에 대한 basicauth 보안을 사용자 정의하여 액츄에이터 제한 엔드포인트에 액세스할 수도 있습니다. 이 구성을 다음으로 재정의해야 합니다. 관리.보안.역할 재산. 예를 들어:
management.security.enabled=true management.security.roles=ADMIN security.basic.enabled=true security.user.name=admin security.user.passowrd=admin
스프링 부트 액추에이터 예
예제를 통해 액츄에이터의 개념을 이해해보자.
안드로이드에 숨겨진 앱 어떻게 찾나요?
1 단계: 스프링 이니셜라이저 열기 https://start.spring.io/ 그리고 메이븐 프로젝트.
2 단계: 제공 그룹 이름. 우리는 제공했습니다 com.javatpoint.
3단계: 제공 인공물 ID. 우리는 스프링 부트 액츄에이터 예시.
4단계: 다음 종속성을 추가합니다. 스프링 웹, 스프링 부트 스타터 액츄에이터, 그리고 Spring 데이터 나머지 HAL 브라우저 .
5단계: 다음을 클릭하세요. 생성하다 단추. 생성 버튼을 클릭하면 프로젝트와 관련된 모든 사양이 항아리 파일을 다운로드하여 로컬 시스템에 다운로드합니다.
6단계: Jar 파일을 추출하여 STS 작업공간에 붙여넣습니다.
int로 변환
7단계: 프로젝트 폴더를 가져옵니다.
파일 -> 가져오기 -> 기존 Maven 프로젝트 -> 찾아보기 -> spring-boot-actuator-example 폴더 선택 -> 완료
가져오는 데 시간이 좀 걸립니다. 프로젝트를 가져온 후 패키지 탐색기 섹션에서 프로젝트 디렉터리를 볼 수 있습니다.
8단계: 컨트롤러 클래스를 만듭니다. DemoRestController라는 이름의 컨트롤러 클래스를 만들었습니다.
DemoRestController.java
하이브가 뭐야?
package com.javatpoint; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoRestController { @GetMapping('/hello') public String hello() { return 'Hello User!'; } }
9단계: 열기 애플리케이션.속성 다음 명령문을 추가하여 액츄에이터의 보안 기능을 파일에 저장하고 비활성화합니다.
애플리케이션.속성
management.security.enabled=false
10단계: 실행 SpringBootActuatorExampleApplication.java 파일.
11단계: 브라우저를 열고 URL http://localhost:8080/actuator를 호출합니다. 다음 페이지가 반환됩니다.
{'_links':{'self':{'href':'http://localhost:8080/actuator','templated':false},'health':{'href':'http://localhost:8080/actuator/health','templated':false},'health-path':{'href':'http://localhost:8080/actuator/health/{*path}','templated':true},'info':{'href':'http://localhost:8080/actuator/info','templated':false}}}
애플리케이션은 기본적으로 포트 8080에서 실행됩니다. 액추에이터가 시작되면 HTTP를 통해 노출된 모든 엔드포인트 목록을 볼 수 있습니다.
호출해보자 건강 URL http://localhost:8080/actuator/health를 호출하여 엔드포인트를 생성합니다. 상태를 나타냅니다. 위로 . 이는 애플리케이션이 정상적이고 중단 없이 실행되고 있음을 의미합니다.
마찬가지로 Spring Boot 애플리케이션을 모니터링하고 관리하는 데 도움이 되는 다른 엔드포인트를 호출할 수 있습니다.
자바 난수
프로젝트 다운로드