English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SpringBoot Actuator는 예는 Spring Boot 프레임워크의 서브 프로젝트입니다. 그것은 다양한 기능을 포함하고 있으며, Spring Boot 애플리케이션을 모니터링하고 관리하는 데 도움을 줍니다. 그것은 Actuator 엔드포인트(자원이 위치한 위치)를 포함하고 있습니다. 우리는 HTTP 和 JMX Spring Boot应用程序를 관리하고 모니터링하는 데 사용됩니다. 애플리케이션에서 생산 준비 기능을 얻으려면 S pring Boot Actuator.
Spring Boot Actuator는 세 가지주요 기능:
Endpoints Metrics Audit
Endpoint: Actuator 엔드포인트는应用程序을 모니터링하고与之 상호작용할 수 있도록 합니다. Spring Boot는 많은 내장 엔드포인트를 제공하며, 우리는 자신의 엔드포인트를 생성할 수도 있습니다. 우리는 각 엔드포인트를 별도로 활성화하고 비활성화할 수 있습니다. 대부분의 애플리케이션은 HTTP 에 대한 엔드포인트의 ID와 /actuator 접두어URL에 매핑합니다。
예를 들어 /health 엔드포인트를 통해应用程序의 기본 건강 정보를 제공합니다. Actuator는 기본적으로 그것을 /actuator/health 。
Metrics: Spring Boot Actuator는 미터통합하여 크기 지표를 제공합니다. 미터는 Spring Boot에 통합되어 있습니다. 그것은 Spring에서应用程序 지표를 지원하는 도구 라이브러리입니다. 그것은 벡터 데이터 모델을 가진 타이머, 가젯, 카운터, 배포 요약和 장시간 작업 타이머공급자无关의 인터페이스를 제공합니다。
Audit: Spring Boot는 이벤트를 발행하는 유연한 감사 프레임워크를 제공합니다. AuditEventRepository。spring이 실행 중인 경우-security를 통해 자동으로 인증 이벤트를 발행합니다。
우리는 pom.xml 파일에 의존성을 주입하여 spring-boot-starter-actuator 를 통해 Actuator를 활성화합니다。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.2.2.RELEASE</version> </dependency>
Actuator 엔드포인트는 Spring Boot 애플리케이션을 모니터링하고与之 상호작용할 수 있도록 합니다. Spring Boot는 많은 내장 엔드포인트를 포함하고 있으며, 우리는 Spring Boot 애플리케이션에 사용자 정의 엔드포인트를 추가할 수도 있습니다。
다음 표는 널리 사용되는 엔드포인트를 설명합니다。
Id | 사용법 | 기본 |
Actuator | 그것은 다른 엔드포인트에 기반한발견 페이지。그것은Spring HATEOAS가 클래스 경로에 위치하도록 요구합니다。 | true |
auditevents | 그것은 현재 응용 프로그램의 감사 이벤트 정보를 공개합니다. | true |
autoconfig | 그것은 모든 자동 구성 후보자를 표시하고, 그들이 "적용되었음" 또는 "적용되지 않음"의 이유를 보여줍니다. | true |
beans | 그것은 응용 프로그램 내의 모든 Spring Bean의 전체 목록을 표시합니다. | true |
configprops | 그것은 모든 @ConfigurationProperties의 정리된 목록을 표시합니다. | true |
dump | 그것은 스레드 드롭을 실행합니다. | true |
env | 그것은 Spring의 ConfigurableEnvironment에서 속성을 공개합니다. | true |
flyway | 그것은 적용된 모든 Flyway 데이터베이스 이동을 표시합니다. | true |
health | 그것은 응용 프로그램 상태 정보를 표시합니다. | 에러 |
info | 그것은 어떤 응용 프로그램 정보도 표시합니다. | 에러 |
loggers | 그것은 응용 프로그램 내의 레코드어 설정을 표시하고 수정합니다. | true |
liquibase | 그것은 적용된 모든 Liquibase 데이터베이스 이동을 표시합니다. | true |
metrics | 그것은 현재 응용 프로그램의 지표 정보를 표시합니다. | true |
mappings | 그것은 모든 @RequestMapping 경로의 정리된 목록을 표시합니다. | true |
shutdown | 그것은 응용 프로그램을 정상적으로 종료할 수 있도록 허용합니다. | true |
trace | 그것은 추적 정보를 표시합니다. | true |
Spring MVC에 대해, 다음 추가 엔드포인트가 사용됩니다.
Id | 설명 | 기본 |
docs | 그것은 문서를 표시하며, Actuator 엔드포인트의 예제 요청과 응답을 포함합니다. | 에러 |
heapdump | 그것은 GZip 압축된 hprof 스택 드롭 파일을 반환합니다. | true |
jolokia | 그것은 HTTP를 통해 JMX 벤치(또는 Jolokia가 클래스 패스에 있을 때)를 공개합니다. | true |
logfile | 그것은 로그 파일의 내용을 반환합니다. | true |
prometheus | 그것은 Prometheus 서버가 캡처할 수 있는 형식으로 지표를 공개합니다. 그것은 마이크로미터에 의존합니다-프로미시스. | true |
Spring Boot는 모든 Actuator 엔드포인트에 보안을 제공합니다. 그것은 폼 기반인증을 제공하며, 이 인증은 사용자 ID 사용자로서, 무작위로 생성된 비밀번호。또한, 엔드포인트에 기본 인증 보안을 맞춤 설정하여 Actuator 제한된 엔드포인트에 접근할 수 있습니다. 우리는 management.security.roles 속성이 이 설정을 덮어쓴다. 예를 들어:
management.security.enabled=true management.security.roles=ADMIN security.basic.enabled=true security.user.name=admin security.user.passowrd=admin
让我们通过示例了解 Actuator的概念。
단계1: 打开弹簧Initializr https://start.spring.io/并创建 Maven 项目。
단계2: 提供 组名称。我们提供了 com.w3codebox。
단계3: 提供 工件 ID。我们提供了 spring-boot-actuator-example。
단계4: 。添加以下依赖项: Spring Web,Spring Boot Starter Actuator和 Spring Data Rest HAL浏览器。
단계5: 单击 生成按钮。当我们单击"生成"按钮时,它将与项目相关的所有规范包装到 Jar 文件中,并将其下载到我们的本地系统中。
단계6: 提取Jar文件并将其粘贴到STS工作区中。
단계7: 导入项目文件夹。
文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-actuator-example- >完成
导入需要一些时间。导入项目后,我们可以在"包资源管理器"部分中看到项目目录。
단계8: : 创建一个Controller类。我们已经创建了名为DemoRestController的控制器类。
DemoRestController.java
package com.w3codebox; 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: 打开 application.properties 文件,并通过添加以下语句来禁用 Actuator的安全性功能。
application.properties
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에서 실행되는 Actuator를 시작하면, HTTP를 통해 공개된 모든 엔드포인트 목록을 볼 수 있습니다.
URL http:을 호출하여 //localhost: 8080/호출하기 health 엔드포인트. Actuator/건강 상태. 이는 상태를 나타냅니다 UP 。이는 애플리케이션이 정상적으로 실행되고 있으며, 정상적으로 실행 중이라는 의미입니다.
또한, 다른 엔드포인트를 호출하여 Spring Boot 애플리케이션을 모니터링하고 관리하는 데 도움을 받을 수 있습니다.