최근 DevOps의 주제에 관심이 있었기 때문에 모니터와 관련된 오픈 소스 프로젝트를 연구하고 매체의 기사로 뒤집 었습니다. 실제 프로젝트에서 나는 비슷한 모니터링을 사용하여 DevOps 그룹의 동료들을 보았으므로 그것을 즐기고 시각화 모니터링에 대해 배우고 싶었습니다.
모니터링 된 서비스 구성
스프링 부츠 프로젝트가 현지에서 있으며 Jolokia에도 의존합니다 (주로 HTTP를 통해 JMX MBEANS를 노출시키기 위해)
프로젝트 구성도 없어서는 안됩니다
endpoints : enabled : true jmx : enabled : true jolokia : enabled : truemanagement : 보안 : enabled : false
URL을 방문하여 괜찮은지 확인하십시오
http : // localhost : 8080/jolokia/read/org.springframework.boot : name = metricsendpoint, type = endpoint/data
모니터링 시스템을 구축하십시오
데이터를 볼 수 있다면 서버 측 구성이 정상임을 의미합니다. Telegraf + InfluxDB + Grafana를 어떻게 구축합니까? 이 세 가지 구성 요소는 이런 방식으로 함께 작동합니다. Telegraf는 실제로 정보를 수집합니다. 예를 들어, 10 초마다 위의 URL을 방문하여 메트릭을 얻고 수집 된 데이터를 InfluxDB에 저장 한 다음 Grafana는 데이터 시각화를 수행합니다.
그러나 수동으로 설치하는 것이 너무 어려운 경우 Universal Github를 도와주십시오. 매우 좋은 프로젝트 (https://github.com/samuelebistoletti/docker-statsd-influxdb-grafana)를 찾아서 직접 구성하고 프로젝트를 수정하십시오. 관련 구성을 이해하지 못하면 먼저 직접 실행 한 다음 SSH를 통해 들어가서 알아보십시오.
ssh root@localhost -p 22022
구성 측면에서 가장 중요한 것은 전신이 다른 프로젝트에 연결되기 때문에 Telegraf를 수정하는 것입니다. CPU, 디스크, 네트 등과 같이 수집해야 할 정보는 전신에 장착되어야합니다. 단순화를 위해 세 가지 입력 만 설정했습니다.
# /etc/telegraf/telegraf.conf;inputs.jolokia]] context = "/jolokia"=]] name ="springbootapp "host ="{App IP 주소} "port ="8080 "[[inputs.jolokia.metrics]] mbean ="mbean = "mbean ="mbean = "mbean ="8080 " "org.springframework.boot : name = metricsendpoint, type = endpoint"attribute = "data"[[inputs.jolokia.metrics]] name = "tomcat_max_threads"mbean = "tomcat : name =/"http-nio-8080/", type = threadPool"attrepple " "maxthreads"[[inputs.jolokia.metrics]] name = "tomcat_current_threads_busy"mbean = "tomcat : name =/"http-nio-8080/", type = threadpool"attribute = "currentthreadsBusy"실제로, 그것은 스프링 부팅 표준 메트릭과 Tomcat 스레드입니다.
완료 후 서비스 /etc/init.d/telegraf restart 다시 시작하십시오
모니터링 데이터를 봅니다
우리는 infuxdb를 방문하여 데이터 http : // localhost : 3004/, 데이터베이스를 전신으로 전환하는지 확인합니다. 시도하려면 다음 명령을 입력하십시오
Show MeasurementsSelect *에서 jolokiaSelect *에서 * CPUSELECT *에서 Memselect *에서 * Diskio에서 *
예를 들어, SELECT * FROM jolokia 입력하면 스프링 부츠로 노출되는 데이터를 볼 수 있습니다. 시간 열에서, 전신이 10 초마다 수집된다는 것을 알 수 있습니다. 너무 빈번하면 서버에 압력이 가해집니다.
위의 내용은 기본적으로 CPU, 메모리 및 스토리지의 일부 지표를 다룹니다.
실제로 네트워크 관련 구성을 구성 할 수도 있습니다. 관심이 있으시면 [[inputs.net] 구성의 예가 포함 된 공식 Telegraf.conf를 볼 수 있습니다.
데이터 시각화
데이터를 사용할 수있게되면 다음 단계는 시각화입니다.
위에서 언급 한 github를 따라 http : // localhost : 3003/,
마법사를 사용하여 데이터 추가를 클릭하여 소스의 이름을 클릭하고 기본체 이름으로 플래그를 표시하고 다음과 같이 ac
infusdb를 추가 한 후 새 대시 보드를 만들고 몇 개의 그래프를 빠르게 추가하십시오.
데모를 위해 세 개의 차트를 렌더링하기 위해 다음 세 세트의 쿼리 문을 사용하여 3 개를 추가했습니다.
선택 (usage_system) + 평균 (usage_user)은 CPU에서 CPU_TOTAL (time from $ timeFilter Group)에서 CPU_TOTAL ($ interval)을 선택하여 "총"으로 "총"으로 "총"으로 "MEM"에서 "총"($ 간격) 채우기 (NULL) 채우기 ( "MEM"으로 사용됨 ($ timefilter)으로 "사용 된"($ 시간) ($ timefilter) "in where"song "select"where "in where"in where "where"in where "select"( "mem"). "metrics_heap.used")는 "jolokia"의 "heap_usage"로서 $ timefilter group ($ interval) 채우기 (null)
첫 번째는 CPU 사용법입니다. 두 번째는 메모리 사용량이고 녹색 선은 총이며, 노란색 선이 사용됩니다. 세 번째는 Jolokia가 제공하는 JVM 힙을 사용하는 것이며 GC 상황을 볼 수 있습니다.
나는 또한 지금 Tomcat Collection을 구성했으며 Tomcat의 스레드 상황을 보는 것도 완벽합니다.
"Jolokia"에서 평균 ( "tomcat_max_threads")을 선택하십시오.
요약
위는 편집기가 소개 한 스프링 부트 모니터링입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!