温馨提示×

Debian MongoDB如何监控性能指标

小樊
41
2025-12-30 21:19:14
栏目: 云计算

Debian 上监控 MongoDB 性能指标的实用方案

一 快速排障与命令行工具

  • 服务状态与日志
    • 查看服务是否运行:sudo systemctl status mongod
    • 实时查看日志:tail -f /var/log/mongodb/mongod.log
  • 实时性能概览
    • 安装客户端工具:sudo apt-get install mongodb-clients
    • 运行 mongostat(默认每 2 秒刷新):mongostat --host --port --username --password --authenticationDatabase admin
    • 按集合查看读写耗时:mongotop --host --port --username --password --authenticationDatabase admin
  • 深入指标
    • 在 mongo shell 执行:db.serverStatus(),关注 opcounters、mem、connections、network、asserts、wiredTiger 等关键字段。

二 开启慢查询与日志轮转

  • 慢查询阈值(示例:记录超过 100 ms 的操作)
    • 编辑 /etc/mongod.conf,在 operationProfiling 下设置:
      • slowOpThresholdMs: 100
      • mode: slowOp
  • 日志轮转(示例:按天轮转,保留 7 天)
    • 新建 /etc/logrotate.d/mongodb
      • /var/log/mongodb/mongod.log { daily rotate 7 compress delaycompress missingok notifempty create 640 mongodb adm }
  • 使配置生效
    • 重启服务:sudo systemctl restart mongod

三 Prometheus Grafana 与 MongoDB Exporter

  • 组件与端口
    • Prometheus 抓取指标,MongoDB Exporter 默认暴露 9216 端口,Grafana 用于可视化与告警面板。
  • 安装与启动
    • 安装 Prometheus:sudo apt-get install prometheus
    • 启动 Exporter(示例):./mongodb_exporter --mongodb.uri mongodb://localhost:27017
  • Prometheus 抓取配置示例
    • scrape_configs:
      • job_name: ‘mongodb’ static_configs:
        • targets: [‘localhost:9216’]
  • Grafana
    • 添加 Prometheus 数据源,导入 MongoDB 仪表盘(社区有现成面板可直接使用)。

四 企业级与云监控

  • MongoDB Ops Manager / Cloud Manager:官方企业级监控与管理平台,提供集群健康、性能、备份与自动化运维能力,适合需要完善运维能力的团队。
  • MongoDB Atlas:云托管服务,内置监控、性能建议与告警,适合无自建监控体系的团队。

五 关键指标与告警建议

  • 建议重点关注的指标与阈值示例
指标 含义 建议告警阈值示例 说明
操作延迟(opLatencies) 读写操作延迟 持续高于基线或突增 结合业务 SLA 设置
内存使用(mem.resident / mem.virtual) 物理/虚拟内存占用 接近物理内存上限 关注 page faults 与磁盘换入换出
连接数(connections.current / available) 当前/可用连接 接近 maxIncomingConnections 过高可能触发拒绝连接
锁争用(globalLock.ratio / collection/DB 锁) 锁等待比例 明显升高 结合慢查询与索引优化
复制延迟(replSetGetStatus.optimeDate 差值) 主从/分片复制延迟 超过业务容忍阈值 影响一致性与故障切换
队列长度(globalLock.currentQueue.total) 读写排队 持续大于 0 且增长 表示后端负载瓶颈
页面错误(extra_info.page_faults) 磁盘 I/O 压力 突增 检查工作集是否超出内存
断言错误(asserts.regular / asserts.warning) 异常与告警 非 0 持续增长 需及时排查根因
  • 实施要点
    • 为关键指标设置静态阈值与趋势告警(如环比/同比突增)。
    • 结合 mongostat/mongotop、慢查询日志与 serverStatus 做根因定位。
    • 控制采集频率与数据保留,平衡监控开销与时效性。

0