개요
스프링 부팅 모니터링의 핵심은 스프링 부트 스타터 액터 기자 종속성입니다. 종속성을 추가 한 후 Spring Boot는 기본적으로 JVM 모니터링, 클래스 로딩, 건강 모니터링 등과 같은 일부 일반 모니터링을 구성합니다.
우리는 Docker 컨테이너의 시각적 모니터링, 즉 CPU 사용량, 메모리 사용, 네트워크 상태, 디스크 공간 및 기타 정보를 포함하여 컨테이너 작동을 모니터링하는 것에 대해 이야기했습니다. SpringBoot를 마이크로 서비스 장치의 인스턴스화 기술로 선택할 때, 우리가 직면 해야하는 피할 수없는 문제 중 하나는 응용 프로그램의 건강 상태 데이터를 건강, 운영 지표, 로그 정보, 스레드 상태 등과 같은 실시간으로 모니터링하는 방법입니다.이 기사는 문제를 탐색하고 실험 프로세스를 기록합니다.
시작하기 : 액추에이터 플러그인
액추에이터 플러그인은 SpringBoot에서 기본적으로 제공되는 서비스입니다. 엔드 포인트 경로를 노출시켜 응용 프로그램의 많은 엔드 포인트 정보를 출력하는 데 사용할 수 있습니다. 실용적인 전투를하십시오!
pom.xml에 종속성 추가 :
<pectionency> <groupId> org.springframework.boot </groupid> <artifactid> 스프링 부트 스타터-승인기 </artifactid> </fectionency>
Spring Boot 응용 프로그램을 시작한 후 브라우저에 엔드 포인트 정보를 입력하여 응용 프로그램의 일부 상태 정보를 얻을 수 있습니다.
일반적인 엔드 포인트는 다음과 같이 나열되므로 자세히 시도 할 수 있습니다.
물론 현재 /건강 및 /정보 엔드 포인트 만 사용할 수 있으며 권한 문제로 인해 다른 엔드 포인트에 액세스 할 수 없습니다. 지정된 엔드 포인트에 액세스하려면 YML 구성에 관련 구성 항목을 추가 할 수 있습니다. 예를 들어 /메트릭 엔드 포인트를 구성 해야하는 경우 :
엔드 포인트 : 메트릭 : 민감한 : 거짓
현재 브라우저는 /메트릭 엔드 포인트에 액세스하고 다음과 같은 정보를 얻을 수 있습니다.
{ "mem": 71529, "mem.free": 15073, "Processors": 4, "instance.uptime": 6376, "Uptime": 9447, "Systemload.average": -1.0, "heap.committed": 48024, "Heap.init": 16384, "32950,"Heap ":": 32950, "506,": "nonheap.committed": 23840, "nonheap.init": 160, "nonheap.used": "nonheap": 0, "strooks.peak": 25, "strids.daemon": 23, "totalStarted": 28, "streads": 25, "classs" "gc.copy.count": 74, "gc.copy.time": 173, "gc.marksweepcompact.count": 3, "gc.marksweepcompact.time": 88, "httpsessions.max": -1, "httpsessions.active": 0}물론 모든 엔드 포인트 권한을 활성화하고 다음과 같이 구성 할 수 있습니다.
엔드 포인트 : 민감한 : False
액추에이터 플러그인이 제공하는 모니터링 기능은 결국 제한되어 있고 UI는 비교적 간단하기 때문에보다 성숙한 도구가 필요합니다.
스프링 부팅 관리자 모니터링 시스템
SBA는 액추에이터 인터페이스를위한 UI 미화 및 포장을위한 모니터링 도구 인 액추에이터를 기반으로 추가로 진화했습니다. 실험합시다.
먼저 서버로 Spring Boot Admin 서버 프로젝트를 만듭니다.
pom.xml에 다음 종속성을 추가하십시오.
<pectionency> <groupId> de.codecentric </groupId> <artifactid> Spring-Boot-Admin-Server </artifactid> <버전> 1.5.7 </version> </depectency> <groupID> de.codecentric </groupid> spring-boot-admin-server-ui </artifactid> <버전> 1.5.7 </버전> </의존성>
그런 다음 응용 프로그램 메인 클래스에 주석을 추가하여 Spring Boot Admin을 활성화합니다.
@enableadminserver@springbootApplicationPublic Class SpringBtadMinserVerApplication {public static void main (string [] args) {springApplication.Run (springBtAdMinserVerApplication.class, args); }}스프링 부트 관리자 메인 페이지를 볼 수 있도록 프로그램을 시작하고 브라우저에서 LocalHost : 8081을여십시오.
스프링 부트 관리자 홈페이지
현재 응용 프로그램 열이 비어있어 응용 프로그램이 결합되기를 기다리고 있습니다.
모니터링 할 스프링 부팅 앱을 만듭니다
pom.xml에 다음 종속성을 추가하십시오
<pectionency> <groupid> de.codecentric </groupid> <artifactid> Spring-Boot-Admin-Starter-Client </artifactid> <버전> 1.5.7 </version> </fectionency>
그런 다음 YML 구성에 다음 구성을 추가하고 응용 프로그램을 관리 서버에 등록하십시오.
Spring : Boot : admin : url : http : // localhost : 8081 클라이언트 : 이름 : admintest
클라이언트 응용 프로그램이 시작 되 자마자 관리자 서비스는 즉시 메시지를 푸시하여 Admintest가 온라인이라고 말합니다.
온라인으로 메시지를 푸시하는 앱
현재 기본 관리자 인터페이스로 이동하여 클라이언트 응용 프로그램이 실제로 등록되었는지 확인하십시오.
클라이언트 응용 프로그램이 등록되었습니다
세부 사항을보십시오
세부 정보
메트릭을 봅니다
메트릭 정보
환경을 봅니다
환경 정보
JMX를 봅니다
JMX 정보
스레드를 봅니다
스레드 정보
추적 및 세부 사항을보십시오
추적 정보
상단 저널을 클릭하면 모니터링 된 응용 프로그램의 이벤트 변경 사항이 표시됩니다.
응용 프로그램 이벤트 변경 정보
그림에서 응용 프로그램이 등록 상태 → 알 수없는 → UP에서 점프한다는 것을 명확하게 볼 수 있습니다.
이것은 SBA의 액추에이터 플러그인이 제공하는 모든 엔드 포인트 정보를 시도합니다.
참조
http://codecentric.github.io/spring-boot-admin/1.5.7/
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.