스프링 부팅 모니터링

최근 devOps 라 는 화제 에 관심 이 있어 Monitor 와 관련 된 오픈 소스 프로젝트 를 연 구 했 습 니 다.medium 에 올 라 온 글 을 읽 었 습 니 다.그리고 실제 프로젝트 에서 devOps 팀 동료 들 이 비슷 한 감 시 를 하 는 것 을 본 적 이 있 습 니 다.중독 을 알 아 보고 감시 시각 화 를 알 아 보 려 고 했 습 니 다.
모니터링 서비스 설정
로 컬 에 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 모니터링 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기