温馨提示×

MongoDB在Debian怎么监控

小樊
49
2026-07-18 09:50:42
栏目: 云计算

在 Debian 上监控 MongoDB,可以从 系统层 + MongoDB 自身 + 可视化工具 三个层面来做。下面给你一套常用、实用的方案,从简单到进阶。


一、MongoDB 自带监控方式(最基础)

1️⃣ 使用 mongosh / mongo 自带命令

mongosh

常用监控命令:

db.serverStatus()        // 总体状态(内存、连接、锁、操作)
db.stats()               // 当前数据库状态
db.currentOp()           // 当前正在执行的操作
db.runCommand({ top: 1 }) // 热点集合

重点关注字段:

  • connections(连接数)
  • opcounters(增删改查次数)
  • mem(内存使用)
  • globalLock(锁)

✅ 适合:快速排查问题


二、系统级监控(Linux / Debian)

2️⃣ 使用系统工具

top
htop

查看:

  • mongod 进程 CPU / 内存占用
iostat -x 1

查看磁盘 IO(MongoDB 很吃 IO)

free -h

查看内存是否充足(MongoDB 很吃内存)

✅ 适合:看 MongoDB 是否拖慢系统


三、使用 MongoDB 官方工具

3️⃣ mongostat(强烈推荐)

mongostat --host 127.0.0.1 --port 27017

示例输出:

insert query update delete getmore command dirty used flushes

重点指标:

  • dirty:WiredTiger 脏页(>5% 要警惕)
  • used:内存使用
  • conn:连接数

✅ 适合:实时性能监控


4️⃣ mongotop

mongotop

查看:

  • 每个集合的读写耗时

✅ 适合:找出慢集合


四、日志监控(非常重要)

5️⃣ MongoDB 日志

Debian 默认路径:

/var/log/mongodb/mongod.log

查看慢查询:

grep "slow" /var/log/mongodb/mongod.log

开启慢查询日志(推荐):

db.setProfilingLevel(1, { slowms: 100 })

✅ 适合:排查慢 SQL / 慢操作


五、生产级监控(推荐)

6️⃣ Prometheus + Grafana(最常用)

架构

MongoDB → mongodb_exporter → Prometheus → Grafana

安装 exporter

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"

Prometheus 配置

scrape_configs:
  - job_name: "mongodb"
    static_configs:
      - targets: ["localhost:9216"]

✅ 优点:

  • 图形化
  • 可设置告警
  • 企业级标准

六、MongoDB Atlas / Ops Manager(官方)

7️⃣ MongoDB Atlas(云)

  • 自动监控
  • 自动告警
  • 性能分析

8️⃣ Ops Manager(企业版)

  • 备份
  • 监控
  • 自动化部署

✅ 适合:企业环境


七、推荐监控组合(实用)

场景 推荐
本地开发 mongostat + mongotop
单台服务器 mongostat + 日志
生产环境 Prometheus + Grafana
云环境 Atlas

八、常见告警阈值(经验值)

  • 连接数 > 80% max
  • dirty > 5%
  • 慢查询 > 100ms
  • CPU > 70%
  • 磁盘 IO wait > 20%

如果你愿意,我可以:

  • ✅ 给你 Debian MongoDB 监控一键脚本
  • ✅ 帮你 配置 Prometheus + Grafana 面板
  • ✅ 按 单机 / 副本集 / 分片 给你定制方案

你现在 MongoDB 是 单机还是集群?生产还是测试?

0