Project – Monitoring Solution


Purpose

  • System engineer에게 적합한 monitoring system 구축
  • 서비스 그룹 내의 resource 비교 및 threshold 설정
  • 기존 monitoring 시스템 통합 및 개선
  • 개발 인력 분담을 통한 업무의 집중화 개선
  • Performance 개선 및 code refactoring 통한 향후 확장성 및 관리의 효율성 증대

Skill

Grafana
MongoDB
Nginx
Python
Vue.js


Role

  • 초기 구성 설계 및 개발
  • Vue.js를 통한 front 전담
  • Grafana dashboard 구성 및 관리

Period

8.2019 – 2.2020


Detail

Grafana

  • Vue.js에서 iframe을 통해 접근하기 위한 frame을 미리 생성
  • 만들어 놓은 dashboard에 params를 이용하여 원하는 결과값을 얻어냄

Node.js

  • 로그인 시 passport를 통해 session key에 mapping된 사용자 정보를 MongoDB에 저장
  • 이후 해당 사용자가 특정 API 요청 시, DB에서 사용자 정보를 탐색
  • 뒷단의 API에서 사용자의 정보가 필요할 경우를 대비하여 header에 특정 정보 부착

Python

  • 사내에서 제공하는 각종 API를 묶어서, 앞 단에서 사용하기 편리한 데이터로 가공
  • 향후 목표는 사내에서 제공하는 흩어져 있는 모든 API를 제공하는 것

Nginx

  • Build된 Vue.js 파일을 serving하는 용도로, 향후에 데이터양이 방대해 질 경우 caching을 고려하여 Nginx를 사용하게 됨

MongoDB

  • Session Key 저장 용도

Benefit

  • 특정 서비스에 포함된 모든 server의 지표를 모아서 볼 수 있기 때문에, 어떤 server에서 특정 metric의 튈 시에 한눈에 볼 수 있음
  • H/W 정보를 표기해 주기 때문에, server에 이상 발생 시, H/W spec에 의한 것은 아닌지 바로 확인 가능
  • 서비스 트리의 임계치를 조정하여 특정값 이상이 발생할 시에 알람을 받아볼 수 있음
  • Dashboard에 현재 이상이 있는 server를 바로 볼 수 있음
  • 다른 서비스 담당자의 날짜별 oncall을 쉽게 연락할 수 있는 interface를 제공