SlideShare a Scribd company logo
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot 를 적용한
전사 모니터링 시스템
Backend 개발 사례
허제민
https://github.com/JM-Lab/jm-spring-boot-init
오늘 발표 내용
•  Planet Mon 소개 (전사 모니터링 시스템)
•  Spring Boot를 적용한 Backend 개발 사례
•  Backend 개발에 적용한 Spring Boot 기능
•  Spring Boot를 활용 해서 추가한 운영 기능
•  jm-spring-boot-init Template 소개
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  개발자가 보기 편한 모니터링 환경
•  Web, WAS log를 서비스 단위로 묶어서 서비스 상태 모니터링
•  서비스 단위로 실시간 그래프를 보여주고 알람도 되는 것이 중요함!
•  시스템 모니터링도 서비스나 그룹 단위로 묶고 쉽게 서로 비교
•  그래프를 그리기위한 데이터가 Raw 데이터에서 동적으로 생성 되야 함
•  RRD (Round-Robin Database) 방식은 미리 그래프를 그리기 위한
데이터가 만들어 져야만 함
•  서비스 모니터링 데이터와 시스템 모니터링 데이터간의 콜라보
•  분석을 할 수도 있을까?
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
•  Log Collector
•  System
Monitoring
Data Broker
•  System
Monitoring
Data Collector
•  Distributed,
scalable, and
highly available
•  Real-time search
and analytics
capabilities
•  Sophisticated
RESTful API
•  Flexible analytics
and visualization
platform
•  Real-time charting
of streaming data
•  Instant sharing and
embedding of dash
boards
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
•  Web, WAS
log 수집
•  System
Monitoring
Data Collector
•  Distributed,
scalable, and
highly available
•  Real-time search
and analytics
capabilities
•  Sophisticated
RESTful API
•  Flexible analytics
and visualization
platform
•  Real-time charting
of streaming data
•  Instant sharing and
embedding of dash
boards
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
•  System
Monitoring
Data Collector
•  분산, 확장,
고가용성 보장
•  실시간 검색과
분석 가능
•  RESTful API
QueryDSL
•  Flexible analytics
and visualization
platform
•  Real-time charting
of streaming data
•  Instant sharing and
embedding of dash
boards
•  Web, WAS
log 수집
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
•  System
Monitoring
Data Collector
•  분석과 시각화 플랫폼
•  실시간 차트 생성
•  Dash board를
쉽게 생성
•  분산, 확장,
고가용성 보장
•  실시간 검색과
분석 가능
•  RESTful API
QueryDSL
•  Web, WAS
log 수집
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
•  System
Monitoring
Data 수집
•  분석과 시각화 플랫폼
•  실시간 차트 생성
•  Dash board를
쉽게 생성
•  분산, 확장,
고가용성 보장
•  실시간 검색과
분석 가능
•  RESTful API
QueryDSL
•  Web, WAS
log 수집
•  collectd Data
중계
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
* http://johnhamelink.com/server-nirvana-my-jour
ney-towards-infrastructural-mindfulness.html
* https://github.com/dCache/logstash4dcache
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
•  collectd - ELK (Elasticsearch-Logstash-Kibana)
상용 서비스를 위해 사용 가능한가?
•  지역적으로 분리된
데이터 센터
•  수천대의 서버에서
생성된 Raw Data
•  서비스 중심 Dashboad
•  LDAP 연동 계정 관리
•  서비스 별 커스텀한
요구사항 반영
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
https://github.com/JM-Lab/jm-spring-boot-init
Planet Mon 소개 (전사 모니터링 시스템)
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
* 북두의 권
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
•  시간과 인력이 충분하지 않으니 DevOps 를 한다!
•  빨리 개발 해야하지만 개발한거 운영도 하고 그래야 빨리 전사 적용 하지…
•  그리고 모니터링 서비스 죽으면 책임도 져야지!
•  전사 모니터링 시스템은 어떻게 모니터링 하지? 서버에 들어가서 봐야하나?
•  요청하면 Infra 운영 팀에서 무언가 해주긴 한다.
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
•  시간과 인력이 충분하지 않으니 DevOps 를 한다!
•  빨리 개발 해야하지만 개발한거 운영도 하고 그래야 빨리 전사 적용 하지…
•  그리고 모니터링 서비스 죽으면 책임도 져야지!
•  전사 모니터링 시스템은 어떻게 모니터링 하지? 서버에 들어가서 봐야하나?
•  요청하면 Infra 운영 팀에서 무언가 해주긴 한다.
* 북두의 권
고!!!
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
* http://movie.naver.com/m
ovie/bi/mi/basic.nhn?code
=101276
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
* http://movie.naver.com/m
ovie/bi/mi/basic.nhn?code
=101276
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
전기나 공압,유압 등과 같은 각종 신호 에너지를 이용하여 구체적인
동작(기계적 에너지)으로 변환하는 소자를 말함.
* http://edu.smckorea.co.kr/learning/source/studyroom/bochung/actuator.html
Actuator
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 적용한 Backend 개발 사례
Http endpoints (Rest API), JMX, remote shell 등을 이용하여
구체적인 동작(관리와 모니터링)으로 변환하는 기능을 말함.
Spring Boot Actuator
Part V. Spring Boot Actuator: Production-ready features
Spring Boot includes a number of additional features to
help you monitor and manage your application when it’s
pushed to production. You can choose to manage and m
onitor your application using HTTP endpoints, with JMX
or even by remote shell (SSH or Telnet). Auditing, health
and metrics gathering can be automatically applied to yo
ur application.
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
* http://presos.dsyer.com/decks/spring-boot-intro.html
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
•  HTTP endpoints
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
•  Scheduling
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
•  JVM 모니터링 - /metrics
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
•  상태 체크 - /health
https://github.com/JM-Lab/jm-spring-boot-init
Backend 개발에 적용한 Spring Boot 기능
•  설정 파일 관리
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 활용 해서 추가한 운영 기능
* http://pixshark.com/devops.htm
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 활용 해서 추가한 운영 기능
* http://pixshark.com/devops.htm
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 활용 해서 추가한 운영 기능
•  JVM Monitoring View
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 활용 해서 추가한 운영 기능
•  Exception Table View
https://github.com/JM-Lab/jm-spring-boot-init
Spring Boot를 활용 해서 추가한 운영 기능
•  서비스 현황 테이블
https://github.com/JM-Lab/jm-spring-boot-init
jm-spring-boot-init Template 소개
https://github.com/JM-Lab/jm-spring-boot-init
jm-spring-boot-init Template 소개
• https://github.com/JM-Lab/jm-spring-boot-init
• JVM Monitoring View
• Exception Table View
• Sample logback config
• JMService Interface
https://github.com/JM-Lab/jm-spring-boot-init
jm-spring-boot-init Template 소개
•  데모 시연
https://github.com/JM-Lab/jm-spring-boot-init
Q & A

More Related Content

Spring boot 를 적용한 전사모니터링 시스템 backend 개발 사례