温馨提示×

centos mongodb如何监控

小樊
36
2026-10-02 22:33:16
栏目: 云计算

在 CentOS 上监控 MongoDB,可以从系统层、MongoDB 自身、第三方工具三个维度来做。下面给你一套实用方案。


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

1. mongostat

实时监控 MongoDB 状态(增删改查、刷盘、连接数等)

mongostat --host 127.0.0.1 --port 27017 -u admin -p password --authenticationDatabase admin

常用字段:

  • insert/query/update/delete
  • flushes
  • conn(连接数)
  • qr|qw(队列)

2. mongotop

查看每个集合的读写耗时

mongotop 5

3. MongoDB Shell 命令

mongo
db.serverStatus()
db.stats()
db.currentOp()

重点关注:

  • connections
  • opcounters
  • mem
  • repl(副本集)

二、CentOS 系统层监控

1. 基础命令

top
htop
iostat -x 1
df -h
free -m

MongoDB 对 磁盘 IO 和内存 非常敏感。


2. systemd 状态

systemctl status mongod
journalctl -u mongod -f

三、日志监控(很重要)

MongoDB 日志默认在:

/var/log/mongodb/mongod.log

实时监控:

tail -f /var/log/mongodb/mongod.log

关注:

  • slow query
  • connection refused
  • rollback
  • election

可开启慢查询:

operationProfiling:
  slowOpThresholdMs: 100
  mode: slowOp

四、可视化和专业监控(推荐)

1. 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 zxvf mongodb_exporter-*.tar.gz
./mongodb_exporter --mongodb.uri=mongodb://user:pass@localhost:27017

Prometheus 配置

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

Grafana

  • 导入 Dashboard:https://grafana.com/grafana/dashboards/12079

✅ 可监控:

  • QPS
  • 连接数
  • 复制延迟
  • 磁盘 IO
  • 慢查询

2. PMM(Percona Monitoring and Management)

非常适合生产环境

docker run -p 8080:80 percona/pmm-server

客户端:

pmm-admin add mongodb --username=admin --password=xxx

五、生产环境建议

✅ 必做:

  • 开启慢查询日志
  • 监控连接数(防爆连接)
  • 监控复制延迟(副本集)
  • 监控磁盘剩余空间
  • 告警(Prometheus + Alertmanager)

✅ 常见告警指标:

  • 连接数 > 80% max
  • 复制延迟 > 10s
  • CPU > 85%
  • 磁盘 > 85%

如果你愿意,可以告诉我:

  • 单机 / 副本集 / 分片?
  • 是否生产环境?
  • 是否已有 Prometheus?

我可以直接给你一套可复制的配置。

0 踩