千家信息网

MongoDB 安装、主从配置、以及监控

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,1、安装#添加安装源[mongodb]name=MongoDB Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os
千家信息网最后更新 2025年11月08日MongoDB 安装、主从配置、以及监控

1、安装


#添加安装源

[mongodb]name=MongoDB Repositorybaseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/gpgcheck=0enabled=1
#yum 安装
yum install -y mongo-10gen mongo-10gen-server

#添加到开机自动启动

chkconfig mongod on

2、启动,停止,重启命令


service mongod startservice mongod stopservice mongod restart

3、测试


使用mongoperf 查看磁盘IO性能

#mongoperf -h

usage: mongoperf < myjsonconfigfile{  nThreads:,   // number of threads (default 1)  fileSizeMB:,  // test file size (default 1MB)  sleepMicros:, // pause for sleepMicros/nThreads between each operation (default 0)  mmf:,    // if true do i/o's via memory mapped files (default false)  r:,     // do reads (default false)  w:,     // do writes (default false)  recSizeKB:,  // size of each write (default 4KB)  syncDelay:   // secs between fsyncs, like --syncdelay in mongod. (default 0/never)}

进行测试:

[root@php1 ~]# cat

{  nThreads:1,  fileSizeMB:1,  sleepMicros:0,  mmf:'true',  r:'true',  w:'true',  recSizeKB:4,  syncDelay:0 }

#参考Real world MongoDB benchmarks with benchRun

https://blog.serverdensity.com/real-world-mongodb-benchmarks-with-benchrun/

运行mongo

#mongo

>db.foo.insert( { _id : 1 } )>ops = [{ op :"findOne", ns :"test.foo", query : { _id : 1 } }, { op :"update", ns :"test.foo", query : { _id : 1 } , update : { $inc : { x : 1 } } } ][{"op":"findOne","ns":"test.foo","query": {"_id": 1}},{"op":"update","ns":"test.foo","query": {"_id": 1},"update": {"$inc": {"x": 1}}}]>for( x = 1; x<=128; x*=2){...   res = benchRun( { parallel : x ,...            seconds : 5 ,...            ops : ops...           } )...   print("threads: "+ x +"\t queries/sec: "+ res.query )... }threads: 1 queries/sec: 7886.8threads: 2 queries/sec: 12786.2threads: 4 queries/sec: 14891.2threads: 8 queries/sec: 16361.2threads: 16 queries/sec: 19811.6threads: 32 queries/sec: 18343.8threads: 64 queries/sec: 26470.4threads: 128 queries/sec: 36110.4

4、主从配置


php1172.17.16.7
mysql1172.17.16.21

#两个服务器修改hosts:

172.17.16.7 php1.domain.com

#主上添加配置:vim /etc/mongod.conf

master = truesource = php1.dapingmu.conf

#从上添加配置:

#vim /etc/mongod.conf

slave = truesource = php1.dapingmu.com

#查看主从,使用robomongo或直接在服务器上使用命令行工具

#主服务器上

#mongo

>use local>db.slaves.find()/* 0 */{  "_id" : ObjectId("526b44843f12574552e6ce48"),  "config" : {    "host" : "172.17.16.21:29025",    "upgradeNeeded" : true  },  "ns" : "local.oplog.$main",  "syncedTo" : Timestamp(1382870579, 1)}

5、监控管理


#mongostat

The mongostat utility provides a quick overview of the status of a currently running mongod or mongos instance. mongostat is functionally similar to the UNIX/Linux file system utility vmstat, but provides data regarding mongod and mongos instances.


#mongotop

mongotop provides a method to track the amount of time a MongoDB instance spends reading and writing data. mongotop provides statistics on a per-collection level. By default, mongotop returns values every second.


#mongodb连接管理客户端robomongo

下载地址:www.robomongo.org


#MMS管理

管理地址:https://mms.mongodb.com

需要安装pymongo并安装mms agent

1、安装Python 2.6+

2、安装PyMongo

3、下载:mms-monitoring-agent

wget https://mms.mongodb.com/settings/mmsAgent/15f01bbee11f24c1c5b2b31fab30c406/mms-monitoring-agent-(MMS-Group-Name).tar.gz

4、解压并运行

$ nohup python agent.py >> /YOUR_LOG_DIRECTORY/agent.log 2>&1 &

5、添加一个Mongo Node

即可登录MMS管理地址查看MongoDB 节点监控信息图表



0