728x90
들어가며
회사의 서비스(babyface)는 현재 모니터링을 하고 있지 않다
올해 OKR은 사용자를 증가시키는 것이 목표이다 (궁극적인 목표는 투자를 받는 것이다)
그렇다면 언제가 발생할 트래픽이나 슬로우 쿼리들을 모니터링하지 않는다면
특정 지표가 증가할 때, 알림이나 Auto Scale이 없으면 그때서야 대응할 수 있을까 라는 걱정이 되었다
회사 초창기에 네이버에서 투자를 받았기에 네이버 클라우드를 사용하고 있다
네이버에서 다양한 모니터링 기능을 제공하고 있으므로 기본적인 모니터링을 구축해보기로 했다
모니터링 항목
2022. 2. 17 기준
category | sub category | threshold |
---|---|---|
상세 모니터링 | cpu(%) | 90 |
mem(%) | 90 | |
웹 서비스 모니터링 | / | 반복 : 10분 |
timeout : 5초 | ||
네트워크 트래픽 모니터링 | - | 사용 불가 |
데이터 베이스 모니터링 | 슬로우 쿼리 : 1초 |
NCP
NCP 상세 모니터링
category | sub category | description |
---|---|---|
Dashboard | Server Dashboard | 서버의 자원을 모니터링 |
Event Dashboard | 서버에 발생한 이벤트 모니터링 | |
My Group | 모니터링 할 서버 그룹 설정 | |
My Chart | 모니터링 할 차트 그룹 설정 | |
Configuration | New Observation | 사용자가 직접 모니터링할 감시 대상 등록 |
Notification도 함께 등록한다 | ||
Observation List | New Observation으로 등록한 감시 대상 | |
Template | Observation Template | 모니터링 항목을 템플릿으로 만든다 |
Notification Template | 알림 대상을 템플릿으로 만든다 |
Web Service Monitoring System
웹 서비스를 실제 사용자 환경에서 모니터링
웹 서비스 url로 실시간 테스트
스케쥴을 통한 반복적인 모니터링
5분 주기로 모니터링
javascript, image, css 등 웹 컨텐츠를 확인
load time을 기록해 성능상 문제 분석
url 별로 상세 페이지에서 확인 가능
- 시간대별 모니터링 결과
- 성능 추이
- 이벤트 발생 당시의 화면
- 감지 로그
- 경보 설정을 통해 모니터링 등록된 URL 에서 오류가 감지되면 SMS 나 Email 을 통해 알람
시나리오 테스트 가능하다
- 사실 cypress에서 시나리오 테스트 해보려고 했는데 ncp에 있으니 처음은 ncp로 시나리오 테스트 한번 해봐야겠다
webhook도 제공한다
- 웹 훅을 제공하니 굳이 sms 알림을 받을 필요는 없다
Network Traffic Monitoring
class 환경에서는 네트워크 트래픽 모니터링을 사용할 수 없다
그럼 어쩌란 말인가.... 나는 2021년 9월 16일에 회사에 적응중이였는데....
내일 자세히 알아봐야겠다
Cloud DB for MySQL Monitoring
category | sub category | insite |
---|---|---|
DB Dashboard | DB Connections | 데이터베이스 커넥션 |
DB Activities | 캐시 히트율이 매우 낮다 | |
OS Dashboard | CPU Usage(%) | CPU 사용량 |
DB Logs | Slow Query | 1초 이상 걸리는 쿼리 |
General Log | DB에서 수행된 모든 쿼리 (general_log = ON 시 제공) | |
Error Log | 에러 로그 | |
Query Timeline | Query Timeline | 서버의 쿼리 수행 이력 |
원래 목표였던 슬로우 쿼리를 조회할 수 있다
기본적으로 1초 이상 걸리는 쿼리를 슬로우 쿼리로 정의한다
캐시 히트율이 매우 낮다
캐시 히트율이 낮다는 것은 캐시를 잘 사용하지 않는다는 건데
추가적인 모니터링
Pinpoint cloud
Cloud Log Analytics
Real User Analytics
728x90