1. MongoDB 로그 수집/분석

* MongoDB 모니터링 전략

1. DB활동을 실시간 리포팅하는 유틸리티 활용

2. DB명령 활용(현재 DB상태에 대한 통계확인가능)

3. MMS 모니터링 서비스(MMS Monitoring Service) 활용

: 데이터에 대한 시각화 및 경고등을 제공하는 무료 서비스

* MongoStat

: MongoDB가 동작하는 내부 상황에 대한 정보를 확인하는 툴

: CRUD와 메모리 상태 등의 정보를 확인

: 1초에 한번씩 mongod, mongos 성능을 측정

: 커맨드 라인에서 mongostat이라고 입력

: rowcount를 통해 row 수 지정 가능


> mongostat -rowcount 50


* MongoStat 명령어

- 레이블 (*)중요표시

: inserts, query, update, delete : 초당 해당 작업 수

: getmore : 초당 발생 작업 수

: command : Slave를 포함하여 초당 실행되는 명령어 수

: flushe : 초당 fsync flush 되는 수

: mapped : 메모리상에 매핑되는 메모리 크기 단위 (MB)

: vsize : 프로세스의 가상 크기 (MB)

: res : 프로세스의 resident 크기 (MB)

: *faults : 초당 발생하는 페이지 폴트 수

: *locked : 글로벌 write락이 발생하는 전체시간에 대한 비율 (%)

: Idx miss : Btree index를 로드하며 인덱스를 읽을 때 페이지 폴트가 나는 비율(%)

: *qr : MongoDB인스턴스로부터 Data를 읽기를 기다리기 위한 client의 queue 길이

: qw : MongoDB인스턴스로부터 Data를 쓰기를 기다리기 위한 client의 queue 길이

: ar : 읽기 작업을 수행중인 Active 클라이언트 수

: aw : 쓰기 작업을 진행중인 Active 클라이언트 수

: netIn : MongoDB로 received된 네트워크 트래픽 양

: netOut : MongoDB에서 밖으로 sent된 네트워크 트래픽 양

: conn : 접속된 connection 수

: set : Replica 이름

: repl : 리플리케이션 유형

: mongotop 은 컬랙션 단위의 응답 속도 확인이 가능함

: 갑자기 page fault가 증가하고 서비스가 지연된다면, full scan쿼리를 날렸을 가능성이 높음

: 쓰기 요청이 많을 경우 qr수치가 높아지고 읽기 대기중인 상태가 많아져 지연된다고 느껴진다.

: 이로써 발생하는 원인을 추정하고 대비하자.

* MongoTop

: 리눅스에서 시스템 상황을 확인할 수 있는 Top과 유사

: DB 인스턴스 내 모든 콜랙션에 대한 read/write 확인 가능

: Mongostat 처럼 몇가지 데이터 컬럼이 존재하는데 stat처럼 복잡하지 않아서 한눈에 알아보기 쉬움


> mongotop 5     //    5초마다 refresh 하라는 뜻


- 레이블

: Ns : DB명 + 컬랙션 명

: Db : DB명

: Total : Mongod프로세스가 해당 콜랙션에서 수행한 작업 총 시간

: Read : Mongod 프로세스가 해당 콜랙션에서 읽기 작업을 수행한 총 시간

: Write : Mongod 프로세스가 해당 콜랙션에서 쓰기 작업을 수행한 총 시간 

: 시간 : 분석 결과를 반환한 시간

* 웹 모니터링 도구

: 위의 도구들은 DB라면 제공하는 기본 명령어

: 웹상에서 모니터링 할수있는 환경을 제공함

: 활성화 시키고 싶다면, mongodb 데몬을 실행할때 -rest옵션을 주면됨.

> mongod --dbpath 경로 --rest

> http://localhost:28071 접근    //    웹에서 확인

* Log 수집

: 장애가 발생했을 경우나 정기적인 점검과정에서 필요

: MongDB 데몬 실행시 logpath 옵션을 사용하면, MongoDB 로그를 저장가능한 상태가 됨

: 많은 정보를 저장하기 때문에 log파일명을 일정시간 단위로 바꾸어 주어야 한다.

> mongod --dbpath 경로 --logpath 경로/testlog.txt    //    textlog.txt에 로그가 저장됨

2. MongDB 로그 수집/분석 방법

* mongostat

: mongod, mongos 성능 측정

> mongostat

> mongostat 30     //    30초 주기 측정

> mongostat --rowcount 20 1 // 20개의 row를 1초 주기로 측정

> mongostat -n 20 1    //    1초주기로 20번 출력하고 종료

* mongotop

: Read / Write / Total I/O 정보 조회

> mongotop

> mongotop 30    //    30초 주기로 조회

> mongotop --locks    //    DB의 Lock상황을 조회








'프로그래밍 > NoSQL - MongoDB' 카테고리의 다른 글

MongoDB 모니터링 도구  (0) 2017.04.04
MongoDB 개발 팁 - 튜닝방법&보안팁  (0) 2017.04.04
MongoDB 운영방법 - 백업/복구  (0) 2017.04.04
MongoDB 집계 명령 & 리모트 명령  (0) 2017.04.04
MapReduce  (0) 2017.04.04

+ Recent posts