在 Debian 上监控 MongoDB,可以从 系统层 + MongoDB 自身 + 可视化工具 三个层面来做。下面给你一套常用、实用的方案,从简单到进阶。
mongosh / mongo 自带命令mongosh
常用监控命令:
db.serverStatus() // 总体状态(内存、连接、锁、操作)
db.stats() // 当前数据库状态
db.currentOp() // 当前正在执行的操作
db.runCommand({ top: 1 }) // 热点集合
重点关注字段:
connections(连接数)opcounters(增删改查次数)mem(内存使用)globalLock(锁)✅ 适合:快速排查问题
top
htop
查看:
mongod 进程 CPU / 内存占用iostat -x 1
查看磁盘 IO(MongoDB 很吃 IO)
free -h
查看内存是否充足(MongoDB 很吃内存)
✅ 适合:看 MongoDB 是否拖慢系统
mongostat(强烈推荐)mongostat --host 127.0.0.1 --port 27017
示例输出:
insert query update delete getmore command dirty used flushes
重点指标:
dirty:WiredTiger 脏页(>5% 要警惕)used:内存使用conn:连接数✅ 适合:实时性能监控
mongotopmongotop
查看:
✅ 适合:找出慢集合
Debian 默认路径:
/var/log/mongodb/mongod.log
查看慢查询:
grep "slow" /var/log/mongodb/mongod.log
开启慢查询日志(推荐):
db.setProfilingLevel(1, { slowms: 100 })
✅ 适合:排查慢 SQL / 慢操作
MongoDB → mongodb_exporter → Prometheus → Grafana
wget https://github.com/percona/mongodb_exporter/releases/download/v0.40.0/mongodb_exporter-0.40.0.linux-amd64.tar.gz
tar -xvf mongodb_exporter-*.tar.gz
./mongodb_exporter --mongodb.uri="mongodb://localhost:27017"
scrape_configs:
- job_name: "mongodb"
static_configs:
- targets: ["localhost:9216"]
✅ 优点:
✅ 适合:企业环境
| 场景 | 推荐 |
|---|---|
| 本地开发 | mongostat + mongotop |
| 单台服务器 | mongostat + 日志 |
| 生产环境 | Prometheus + Grafana |
| 云环境 | Atlas |
如果你愿意,我可以:
你现在 MongoDB 是 单机还是集群?生产还是测试?