Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

MongoDB 성능 모니터링을 위한 필수 도구 6가지

앞서 Ubuntu 18.04에 MongoDB를 설치하는 방법을 소개한 적이 있습니다. 데이터베이스 배포를 성공적으로 마쳤다면, 운영 중인 시스템의 성능을 지속적으로 모니터링해야 합니다. 이는 데이터베이스 관리 업무에서 가장 중요한 작업 중 하나입니다.

다행히 MongoDB는 자체 성능과 활동 상태를 확인할 수 있는 다양한 방법을 제공합니다. 이 글에서는 실행 중인 MongoDB 인스턴스의 상태 통계를 확인할 수 있는 모니터링 유틸리티와 데이터베이스 명령어를 살펴보겠습니다.

1. Mongostat

Mongostat은 Linux, FreeBSD, Solaris, MacOS 등 주요 Unix 계열 운영체제에서 사용할 수 있는 vmstat 모니터링 도구와 유사한 기능을 제공합니다. 데이터베이스 상태를 한눈에 빠르게 파악할 수 있으며, 실행 중인 mongod 또는 mongos 인스턴스의 실시간 동적 뷰를 보여줍니다. 삽입(insert), 조회(query), 갱신(update), 삭제(delete) 등 유형별 데이터베이스 작업 횟수를 확인할 수 있습니다.

아래와 같이 mongostat을 실행할 수 있습니다. 참고로 인증 기능이 활성화되어 있다면, 특수 문자가 포함된 경우 오류가 발생하지 않도록 사용자 비밀번호를 반드시 작은따옴표(')로 감싸야 합니다.

$ mongostat -u "root" -p '=@!#@%$admin1' --authenticationDatabase "admin"
MongoDB 성능 모니터링을 위한 필수 도구 6가지

더 많은 mongostat 사용 옵션이 궁금하다면 아래 명령어를 입력하세요.

$ mongostat --help

2. Mongotop

Mongotop 역시 실행 중인 MongoDB 인스턴스의 실시간 동적 뷰를 제공합니다. MongoDB 인스턴스가 데이터를 읽고 쓰는 데 소요되는 시간을 추적하며, 기본적으로 매 초마다 결과값을 반환합니다.

$ mongotop -u "root" -p '=@!#@%$admin1' --authenticationDatabase "admin"
MongoDB 성능 모니터링을 위한 필수 도구 6가지

더 많은 mongotop 사용 옵션이 궁금하다면 아래 명령어를 입력하세요.

$ mongotop --help

3. serverStatus 명령어

먼저 아래 명령어를 실행해 mongo 셸에 로그인합니다.

$ mongo -u "root" -p '=@!#@%$admin1' --authenticationDatabase "admin"

그다음 serverStatus 명령어를 실행하면, 인스턴스에 대한 통계를 수집해 데이터베이스 상태의 전체적인 개요를 확인할 수 있습니다.

>db.runCommand( { serverStatus: 1 } )
또는
>db.serverStatus()

4. dbStats 명령어

dbStats 명령어는 특정 데이터베이스의 저장소 통계를 반환합니다. 사용 중인 저장 공간 크기, 데이터베이스에 담긴 데이터 양, 그리고 객체·컬렉션·인덱스 개수 등을 확인할 수 있습니다.

>db.runCommand({ dbStats: 1 } )
또는
>db.stats()

5. collStats

collStats 명령어는 dbStats에서 제공하는 것과 유사한 통계를 컬렉션 단위로 수집합니다. 출력 결과에는 컬렉션 내 객체 수, 컬렉션 크기, 디스크 사용량, 그리고 해당 컬렉션의 인덱스 관련 정보가 포함됩니다.

>db.runCommand( { collStats : "aurthors", scale: 1024 } )

6. replSetGetStatus 명령어

replSetGetStatus 명령어는 해당 명령을 처리한 서버 관점에서 복제 세트(replica set)의 상태를 출력합니다. 이 명령어는 반드시 admin 데이터베이스에 대해 아래 형식으로 실행해야 합니다.

>db.adminCommand( { replSetGetStatus : 1 } )

위에서 소개한 유틸리티와 데이터베이스 명령어 외에도, 지원되는 서드파티 모니터링 도구를 직접 사용하거나 자체 플러그인을 통해 활용할 수 있습니다. 대표적인 예로 mtop, munin, nagios가 있습니다.

자세한 내용은 MongoDB 공식 문서의 Monitoring for MongoDB 항목을 참고하시기 바랍니다.

지금까지 실행 중인 MongoDB 인스턴스의 상태 통계를 확인할 수 있는 유용한 모니터링 유틸리티와 데이터베이스 명령어를 살펴보았습니다. 궁금한 점이나 의견이 있다면 아래 피드백 폼을 통해 알려주세요.