Ubuntu下MongoDB監控方法
查看服務運行狀態
使用systemctl命令檢查MongoDB服務是否處于運行狀態,輸出中的“Active: active (running)”表示服務正常:
sudo systemctl status mongodb
查看服務器狀態詳情
通過mongo shell執行serverStatus()命令,獲取內存使用、連接數、鎖等待、復制集狀態等全面信息(需替換為實際數據庫名或省略數據庫名連接默認實例):
mongo --eval 'db.runCommand({ serverStatus: 1 })'
實時性能指標監控
mongostat
mongotop
當前操作查看
使用currentOp()命令查看正在執行的操作(如慢查詢、長時間運行的更新),可配合過濾條件(如secs_running大于10秒的操作)快速定位問題:
db.currentOp({ "secs_running": { "$gt": 10 } })
explain()可視化)。安裝步驟:
./bin/compass啟動應用;mongodb://localhost:27017)即可連接監控。Prometheus + Grafana
mongodb_exporter(MongoDB官方導出器)采集性能指標(如mongodb_memory_usage_bytes、mongodb_operations_inserts_total);Percona Monitoring and Management (PMM)
開源監控解決方案,支持MongoDB、MySQL等多種數據庫。功能包括:
MongoDB Atlas(托管服務)
若使用MongoDB Atlas托管數據庫,可直接使用其內置監控功能:
查看MongoDB日志
默認日志路徑為/var/log/mongodb/mongod.log,使用tail命令實時查看最新日志(如錯誤、警告信息):
sudo tail -f /var/log/mongodb/mongod.log
日志中常見關鍵信息包括:復制集同步錯誤、磁盤空間不足警告、查詢超時記錄。
慢查詢日志分析
在/etc/mongod.conf中開啟慢查詢日志(設置閾值,如超過100毫秒的查詢),通過日志定位低效查詢:
operationProfiling:
mode: slowOp
slowOpThresholdMs: 100
重啟MongoDB服務使配置生效:
sudo systemctl restart mongodb
日志路徑為/var/log/mongodb/mongod.log,可通過grep過濾慢查詢記錄:
grep "slow query" /var/log/mongodb/mongod.log