Thursday, January 17, 2019

mongostat 摘要

mongostat 可說是 MongoDB 最重要的 monitor 指令。不管你是用 command line 或是 GUI效能監控工具,都必須對 mongostat 的結果欄位有正確的認識。

指令常用選項
mongostat -u <acct> -p <pw> --port <pNum> --authenticationDatabase <db> <sec>  
MEMORY 欄位
mapped: 僅 MMAPv1 Storage Engine 有效,代表 'total data size'. WiredTiger 為 0
res (resident memory): mongod process 所使用的 memory
vsize (virtual memory): MMAPv1 Storage Engine 為2倍 mapped mem。 WiredTiger, 一般略大於 res,但 connection thread stack 也會佔據相當程度的 vsize。

指令類型欄位
用以分析每秒有幾次 insert, query, update, delete, getmore 以及 command 指令。

READ:
getmore: 執行 'cursor' 時,一次取得的資料已用完,需再次向 server “getmore”。但在secondary node 這是 replication process 的一部分。
query

WRITE: 
insert / update / delete

command: 除了 'insert' 'update' 'delete' 之外的所有指令


*星號,代表 'replicated operation'




ref:
https://stackoverflow.com/questions/52002939/what-is-number-of-command-operations-reported-by-mongostat

Thursday, January 10, 2019

MongoDB 官方版管理工具 - Ops Manager

Ops Manager 是 MongoDB 官方出版的工具軟體,包含監控、佈署與備份功能,雖然已有方便的雲端版本,但很多時候還是需在私有機房建置。在此分享一下其建置前的觀念與規劃、快速安裝步驟,以及初步的監控功能。

目的是讓你秒速建立起 Ops Manager 環境,立即體驗。


重點摘要

1. Preparation
2. OS & MongoDB, Configuration & Installation
3. Install Ops Manager Packages
4. Configure the Ops Manager

1. Preparation

1.1  環境規劃
在 "練習" 的環境中,只要準備一台 Linux server 就可以了,記憶體至少需 4GB。
但在 "生產" 環境,就要考慮到 HA (high availability)、Performance、Capacity 等的因素了。

以下試著來規劃一台 all-in-one 的練習環境。

自動與監控功能,folder in /var/lib/mongo/appdb, port 27017
備份功能,folder in /var/lib/mongo/backup, port 27018

1.2 系統準備
* 取得 sudo permission

2. Customized Install & Config MongoDB

$sudo vi /etc/yum.repos.d/mongodb-org-4.0.repo
 ----將下列內容貼上並儲存
---------------------------------
 [mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

--------------------------------
$sudo yum install -y mongodb-org

-----安裝完後進行客製化調整
$sudo chkconfig mongod off
$sudo mkdir /var/lib/mongo/appdb; sudo mkdir /var/lib/mongo/backup
$sudo chown -R mongod:mongod  /var/lib/mongo/
$sudo -u mongod mongod --port 27017 --dbpath /var/lib/mongo/appdb --logpath /var/log/mongodb/mongodb-app.log --wiredTigerCacheSizeGB 1 --fork &
$sudo -u mongod mongod --port 27018 --dbpath /var/lib/mongo/backup --logpath /var/log/mongodb/mongodb-backup.log --wiredTigerCacheSizeGB 1 --fork &

*note: MongoDB best practice 有很多環境設定步驟如 file system, ulimit, read-ahead, huge-page 等,在此都先忽略不管。

3. Install Ops Manager Packages

3.1 安裝
-----下載後並將 Ops Manager Packages 放置目錄 /tmp
$cd /tmp
-----格式為 rpm -ivh mongodb-mms-<version>.x86_64.rpm
$sudo rpm -ivh mongodb-mms-4.0.1.50101.20180801T1117Z-1.x86_64.rpm

-----using default connection string Ops Manager uses to connect to the database.
-----start service
$sudo service mongodb-mms start

3.2 verify log
檢查 '/opt/mongodb/mms/logs/' 目錄裡的安裝日誌,確認無異常



4. Configure the Ops Manager

4.1 開啟管理網頁並註冊第一位使用者
open browser, http://<OpsManagerHost>:8080, then ‘Register’
account info : acct@abc.com / P@ssw0rd
4.2 configure Ops Manager pages

Appendix

Reference:

Official steps,

Install All-In_One