在 CentOS 上监控 MongoDB,可以从系统层、MongoDB 自身、第三方工具三个维度来做。下面给你一套实用方案。
mongostat实时监控 MongoDB 状态(增删改查、刷盘、连接数等)
mongostat --host 127.0.0.1 --port 27017 -u admin -p password --authenticationDatabase admin
常用字段:
insert/query/update/deleteflushesconn(连接数)qr|qw(队列)mongotop查看每个集合的读写耗时
mongotop 5
mongo
db.serverStatus()
db.stats()
db.currentOp()
重点关注:
connectionsopcountersmemrepl(副本集)top
htop
iostat -x 1
df -h
free -m
MongoDB 对 磁盘 IO 和内存 非常敏感。
systemctl status mongod
journalctl -u mongod -f
MongoDB 日志默认在:
/var/log/mongodb/mongod.log
实时监控:
tail -f /var/log/mongodb/mongod.log
关注:
slow queryconnection refusedrollbackelection可开启慢查询:
operationProfiling:
slowOpThresholdMs: 100
mode: slowOp
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
scrape_configs:
- job_name: mongodb
static_configs:
- targets: ['localhost:9216']
https://grafana.com/grafana/dashboards/12079✅ 可监控:
非常适合生产环境
docker run -p 8080:80 percona/pmm-server
客户端:
pmm-admin add mongodb --username=admin --password=xxx
✅ 必做:
✅ 常见告警指标:
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置。