스프링 부팅 모니터링
모니터링 서비스 설정
로 컬 에 spring-boot 프로젝트 가 있 고 jolokia 에 도 의존 하고 있 습 니 다.
프로젝트 설정 도 빠 질 수 없습니다.
endpoints:
enabled: true
jmx:
enabled: true
jolokia:
enabled: true
management:
security:
enabled: false
URL 을 방문 해서 ok 인지 아 닌 지 확인 해 보 세 요.http://localhost:8080/jolokia/read/org.springframework.boot:name=metricsEndpoint,type=Endpoint/Data
감시 시스템 을 구축 하 다.
데 이 터 를 볼 수 있다 면 server 엔 드 설정 에 문제 가 없다 는 것 을 설명 합 니 다.다음은 Telegraf+InfluxDB+Grafana 를 어떻게 구축 합 니까?이 세 가지 구성 요 소 는 이렇게 협조 합 니 다.Telegraf 는 실제 적 으로 정 보 를 수집 합 니 다.예 를 들 어 10s 마다 위의 URL 을 방문 하여 metrics 를 얻 고 수 집 된 데 이 터 를 InfluxDB 에 저장 한 다음 에 Grafana 는 데 이 터 를 시각 화 합 니 다.
하지만 수 동 으로 설치 하 는 것 이 너무 번 거 로 우 면 만능 github 에 게 도움 을 청 하고 아주 좋 은 프로젝트https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana를 찾 아 포크 를 직접 수정 한 다음 에 설정 을 수정 하면 자신의 프로젝트 에 서 비 스 를 제공 할 수 있 습 니 다.관련 설정 을 모 르 면 먼저 run 을 한 다음 ssh 를 통 해 들 어가 서 결말 을 알 아 볼 수 있 습 니 다.
ssh root@localhost -p 22022
설정 에 있어 서 주로 Telegraf 를 수정 해 야 합 니 다.서로 다른 항목 을 연결 하 는 것 이기 때문에 어떤 정 보 를 수집 해 야 합 니까?예 를 들 어 cpu,disk,net 등 은 모두 Telegraf 에 배치 해 야 합 니까?간단하게 말하자면,나 는 단지 세 개의 입력 만 설정 했다.
# /etc/telegraf/telegraf.conf
[[inputs.jolokia]]
context = "/jolokia"
[[inputs.jolokia.servers]]
name = "springbootapp"
host = "{app ip address}"
port = "8080"
[[inputs.jolokia.metrics]]
name = "metrics"
mbean = "org.springframework.boot:name=metricsEndpoint,type=Endpoint"
attribute = "Data"
[[inputs.jolokia.metrics]]
name = "tomcat_max_threads"
mbean = "Tomcat:name=\"http-nio-8080\",type=ThreadPool"
attribute = "maxThreads"
[[inputs.jolokia.metrics]]
name = "tomcat_current_threads_busy"
mbean = "Tomcat:name=\"http-nio-8080\",type=ThreadPool"
attribute = "currentThreadsBusy"
사실은 spring-boot 표준 metrics 와 tomcat 의 Threads 입 니 다.완료 후 서비스 재 개
/etc/init.d/telegraf restart
모니터링 데이터 보기우 리 는 InfluxDB 를 방문 하여 데이터 가 있 는 지http://localhost:3004/를 보고 데이터 베 이 스 를 Telegraf 로 전환 합 니 다.다음 명령 을 입력 해 보 세 요.
SHOW MEASUREMENTS
SELECT * FROM jolokia
SELECT * FROM cpu
SELECT * FROM mem
SELECT * FROM diskio
예 를 들 어 입력SELECT * FROM jolokia
을 하면 spring-boot 가 어떤 데 이 터 를 노출 했 는 지 볼 수 있 습 니 다.time 열 에서 도 텔 레 그 라 프 는 10s 마다 한 번 씩 수집 하고 너무 잦 으 면 server 에 도 스트레스 를 줍 니 다.위 에는 기본적으로 cpu,메모리,저 장 된 metrics 가 포함 되 어 있 습 니 다.
사실 네트워크 와 관련 된 것 도 설정 할 수 있 습 니 다.관심 있 는 것 은 공식 telegraf.conf 를 볼 수 있 습 니 다.그 안에[inputs.net]을 설정 하 는 예 가 있 습 니 다.
데이터 시각 화
데이터 가 있 으 면 다음 단 계 는 시각 화 입 니 다.
Github 에서 말 한 대로 들 어가 기http://localhost:3003/,
Using the wizard click on Add data source
Choose a name for the source and flag it as Default
Choose InfluxDB as type
Choose direct as access
Fill remaining fields as follows and click on Add without altering other fields
Url: http://localhost:8086
Database: telegraf
User: telegraf
Password: telegraf
InfluxDB 를 추가 한 후 Dashboard 를 새로 만 들 고 빠 른 ADD 그래프 몇 개 를 만 듭 니 다.시범 을 보이 기 위해 서,나 는 세 개의 도 표를 추가 하 였 는데,각각 아래 세 개의 검색 어 를 사용 하여 세 장의 도 표를 선염 하 였 다
SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total FROM cpu WHERE $timeFilter GROUP BY time($interval)
SELECT mean("total") as "total" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)
SELECT mean("used") as "used" FROM "mem" WHERE $timeFilter GROUP BY time($interval) fill(null)
SELECT mean("metrics_heap.used") as "heap_usage" FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)
첫 번 째 장 은 CPU 점용 률 입 니 다.두 번 째 장 은 메모리 점용 상황 이 고 녹색 선 은 Total 이 며 노란색 선 은 Used 입 니 다.세 번 째 는 jolokia 가 제공 하 는 jvm heap 의 사용 으로 GC 의 상황 을 볼 수 있다.방금 Tomcat 의 수집 도 설 치 했 는데 Tomcat 의 Thread 상황 을 보고 싶 은 것 도 타당 하 다.
SELECT mean("tomcat_max_threads") FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)
SELECT mean("tomcat_current_threads_busy") FROM "jolokia" WHERE $timeFilter GROUP BY time($interval) fill(null)
작은 매듭
위 에서 말씀 드 린 것 은 편집장 님 께 서 소개 해 주신 Spring boot 모니터링 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.