Ubuntu如何监控MongoDB性能
导读:Ubuntu上监控MongoDB性能的实用方案 一 快速方法与内置工具 使用命令行工具实时查看关键指标: 连接 Shell:mongo 查看实例状态:db.serverStatus( (涵盖连接数、内存、索引访问、磁盘等) 查看库统计:...
Ubuntu上监控MongoDB性能的实用方案
一 快速方法与内置工具
- 使用命令行工具实时查看关键指标:
- 连接 Shell:mongo
- 查看实例状态:db.serverStatus()(涵盖连接数、内存、索引访问、磁盘等)
- 查看库统计:db.stats()
- 查看集合统计:db.collection.stats()
- 实时监控工具:mongostat(连接/操作/页错误等)、mongotop(按集合读写耗时)
- 图形化工具:
- MongoDB Compass:连接实例后可直观查看性能指标、索引、查询分析等,适合快速排障与日常巡检。
二 自建可视化监控 Prometheus Grafana MongoDB Exporter
- 组件与端口
- Prometheus:时序数据库与抓取调度,默认端口9090
- Grafana:可视化与告警面板,默认端口3000
- MongoDB Exporter:将 MongoDB 指标转换为 Prometheus 格式,常见端口9216或9333
- 部署步骤
- 安装与启动
- Prometheus:下载解压后执行:./prometheus --config.file=prometheus.yml
- Grafana:sudo apt-get update & & sudo apt-get install -y grafana & & sudo systemctl start grafana-server & & sudo systemctl enable grafana-server
- 启动 MongoDB Exporter(示例)
- ./mongodb_exporter --mongodb.uri=“mongodb://localhost:27017”
- 配置 Prometheus 抓取
- scrape_configs:
- job_name: ‘mongodb’
static_configs:
- targets: [‘localhost:9216’] # 或 9333,取决于你的 exporter 实际端口
- job_name: ‘mongodb’
static_configs:
- scrape_configs:
- Grafana 配置
- 访问 http://localhost:3000,添加数据源 Prometheus(URL:http://localhost:9090)
- 导入 MongoDB 仪表板(社区有现成模板,导入后按需调整)
- 安装与启动
- 常用查询示例
- 实例存活:mongodb_up
- 连接数:mongodb_connections{ state=“current”}
- 操作速率:rate(mongodb_op_counters_total[5m])
- 数据库大小:mongodb_db_size_bytes
- 集合数量:mongodb_stats_collection_count[5m]
- 说明
- 若部署在远程主机,请将 localhost 替换为实际主机 IP,并确保 27017/9216(或9333)/9090/3000 端口在防火墙放行。
三 托管与一体化监控
- MongoDB Cloud Manager:官方托管监控与备份平台,提供指标仪表板、慢查询分析、备份/恢复与告警能力,适合需要省心运维与合规审计的团队。
- Percona Monitoring and Management PMM:第三方一体化监控,覆盖 MongoDB、系统、查询分析 等,适合多数据库统一监控场景。
四 关键指标与告警建议
- 建议重点关注的指标与阈值示例
- 连接数使用率:当前连接/最大连接 > 80% 告警
- 操作延迟:rate(mongodb_op_latencies_total[5m]) 明显上升
- 页面错误:page_faults 持续增长(可能内存不足或工作集过大)
- 复制延迟:复制集的 replication lag 超过业务可接受阈值
- 队列与锁:globalLock 相关指标升高(写冲突/锁争用)
- 磁盘空间:dbStats.storageSize 或系统可用空间 < 20% 告警
- 慢查询定位
- 开启 profiling(db.setProfilingLevel(1, { slowms: 100 } )),结合 explain(“executionStats”) 分析执行计划与索引命中。
五 安全与配置要点
- 远程访问:在 /etc/mongod.conf 中设置 bindIp: 0.0.0.0(或指定网段),并放行 27017 防火墙端口
- 身份验证:启用 security.authorization: enabled,创建管理员与最小权限用户
- 最小暴露面:仅开放必要端口(如 27017/9216/9333/9090/3000),限制来源 IP
- 数据目录与日志:确保 /var/lib/mongodb 与 /var/log/mongodb 权限正确,便于审计与排障。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu如何监控MongoDB性能
本文地址: https://pptw.com/jishu/755537.html
