Ubuntu 上监控 MongoDB 性能的可落地方案
一 快速排障与命令行工具
mongostat --uri="mongodb://root:U8agi79Qa@192.168.184.151:27001/?replicaSet=martin_repl&authSource=admin"。若 locked % 持续偏高,优先排查慢查询与索引缺失。mongotop --uri="mongodb://root:U8agi79Qa@192.168.184.151:27001/?replicaSet=martin_repl&authSource=admin"。二 图形化与可视化监控
mongodb_up、rate(mongodb_op_counters_total[5m])、mongodb_connections、mongodb_db_size_bytes。三 系统层面的资源监控
四 监控项与告警建议
| 指标 | 含义 | 建议告警阈值 | 排查方向 |
|---|---|---|---|
| connections.current / connections.available | 当前/可用连接数 | 使用率 > 80% | 连接泄漏、连接池配置、应用并发 |
| opCounters.insert/query/update/delete(rate) | 每秒操作数 | 突增或异常回落 | 业务峰值、慢查询、批量任务 |
| locked % / globalLock.ratio | 锁等待比例 | 持续 > 10%–20% | 索引缺失、长事务、写冲突 |
| mem.resident / mem.virtual | 常驻/虚拟内存 | 接近物理内存或持续增长 | 工作集过大、内存泄漏 |
| metrics.document.returned / scanned | 查询扫描与返回比 | 扫描远大于返回 | 缺少/低效索引、全表扫描 |
| asserts.regular / asserts.warning | 断言错误 | > 0 持续 | 数据一致性、异常请求 |
| replSet member state / replication lag | 复制状态与延迟 | SECONDARY 延迟持续上升 | 网络、磁盘、Oplog 大小 |
| disk.util / iostat await | 磁盘利用率与等待 | util > 80% 或 await 高 | 磁盘瓶颈、I/O 调度/队列 |
五 权限与安全配置
use admindb.createUser({user:"monitor", pwd:"StrongPass!", roles:[{role:"clusterMonitor", db:"admin"}]})