1. 使用MongoDB自带工具监控
mongo命令连接MongoDB实例,执行以下核心命令获取性能指标:
db.serverStatus():返回服务器状态概览(包括进程信息、内存使用、连接数、索引访问情况、复制集状态等),是全面了解数据库健康状况的基础命令。db.stats():查看当前数据库的存储指标(如数据大小、集合数量、索引占用空间、对象数量等),帮助评估数据库容量使用情况。db.collection.stats()(替换collection为具体集合名):针对特定集合的详细统计(如文档数量、平均文档大小、存储大小、索引数量等),用于定位集合级别的性能瓶颈。mongostat:以表格形式实时展示每秒的操作统计(插入、查询、更新、删除次数、命令执行数、连接数、脏页比例、网络流量等),快速识别高频率操作或异常波动。mongotop:实时显示每个集合的读写耗时(按命名空间分组),帮助定位慢查询或高负载集合(如某集合的read时间过长可能需优化索引)。2. 查看MongoDB日志文件
MongoDB默认将日志输出到/var/log/mongodb/mongod.log(路径可通过/etc/mongod.conf中的systemLog.path配置调整)。使用sudo tail -f /var/log/mongodb/mongod.log实时查看日志,可捕获错误信息(如连接失败、磁盘空间不足)、警告(如索引未使用、查询慢)及慢查询记录(需开启operationProfiling.slowOpThresholdMs配置),是排查问题的重要线索。
3. 第三方监控工具(可视化与长期跟踪)
serverStatus、dbStats等指标转换为Prometheus可识别的格式(默认端口9333)。启动命令:./mongodb_exporter --mongodb.uri="mongodb://localhost:27017"。mongodb_up(实例健康状态)、mongodb_stats_memory_resident(常驻内存使用量)、mongodb_ops_inserts(插入操作速率)、mongodb_storage_data_size(数据存储大小)等指标,支持告警配置(如内存使用超过80%触发通知)。wget https://downloads.mongodb.com/compass/mongodb-compass_xxx_amd64.deb && sudo dpkg -i mongodb-compass_xxx_amd64.deb),连接实例即可查看性能指标(如索引使用率、查询性能、集合大小),适合快速排查问题。4. 系统层面监控(补充)
使用Ubuntu系统工具监控MongoDB进程的资源占用情况:
top/htop:查看MongoDB进程的CPU、内存使用率(按P键按CPU排序,M键按内存排序)。vmstat 1:监控系统整体资源使用(如内存交换、IO等待、CPU空闲),识别系统瓶颈。iostat -x 1:查看磁盘IO性能(如await响应时间、%util利用率),判断磁盘是否成为性能瓶颈(如%util接近100%需升级SSD)。