《MongoDB权威指南》学习整理----MongoDB安装与监控

MongoDB为我们提供了较为简单的管理方式,下面我们对MongoDB的管理进行简单的讲解。

安装

MongDB的安装非常轻量级,甚至可以称之为不是安装的安装:

1,从MongoDB的官网下载适合于本地平台的压缩包

2,解压安装包(下文中我们将解压的目录以MONGO_HOME代替)

上面这两步就完成了MongoDB的安装

启动和停止

从命令行启动

执行MONGO_HOME/bin目录下的mongod.sh/mongod.exe--dbpath mongoDB存储数据的数据目录位置。

使用命令行启动可以有多个选项,可以使用mongod --help命令查看所有选项的意义。

主要执行选项解释

  • --dbpath

指定存储MongoDB数据的目录,默认值是/data/db/(Windows下是C:\data\db)。每个MongoDB进程都需要独立的数据目录,每个MongoDB进程都会在其所拥有的数据目录中创建mongo.lock文件放置其他MongoDB进程访问此数据目录

  • --port

指定服务器监听的端口号,默认是27017。如果运行多个MongoDB进程那么需要对不同的MongoDB指定不同端口号

  • --fork

以守护进程的方式运行MongoDB,创建服务器进程。

  • --logpath

指定日志输出路径,而不是命令行。每次启动MongoDB的时候,MongoDB都会自动将历史的log重命名保存,不会覆盖历史日志。

  • --config

指定配置文件,可方便的在配置文件中批量的设置启动选项,减少启动时的工作量。

配置文件

MongoDB为了减轻我们的工作量提供了配置文件中读入启动选项的功能,主要用于配置选项非常多或者自动化启动MongoDB进程使用。

常见的配置文件格式:

Mongo.conf

port =xxx

logpath=xxx

配置文件都是以key(选项)=value(选项值)的形式,每一行都是一个选项值。注意以下事项:

  • #开头的是注释
  • 文件内容区分大小写,所以选项的key一定要和--help的大小写一致
  • 开关选项的值要设为true/false

停止MongoDB

正确的停止能够保证下次正确的启动。

当MongoDB以前台命令行窗口的方式运行,那么在命令行中使用Ctrl+C可以保证停止。

如果是以后台进程的方式,那么可以使用kill -2 进程号或kill 进程号的方式停止。

也可以使用mongoSehell中的db.shutdownServer()命令停止,这个命令必须在admin库下运行,即useadmin切换到admin库后执行该命令。

监控

对于日常的开发管理人员,我们做的最多的事情就是对MongoDB运行情况的监控,保证其状态和性能。MongoDB为我们考虑好了这些。

使用管理接口

默认情况下,MongoDB为我们提供了一个Web界面接口用来监控(该web接口的默认端口是28017,即mongoDB启动端口+1000)。在使用web端管理接口的时候,需要MongoDB进程在启动的时候提供--rest选项或配置文件中:rest=true

如果不想开启MongoDB的Web管理接口,可以在启动MongoDB进程时使用--nohttpinterface或在配置文件中使用nohttpinterface=true。

也可以使用db.runCommand({'serverStatus':1})来得到当前流程实例名称

状态说明

当使用Web接口或serverStatus命令查看系统状态的时候,系统会返回一个格式化好的系统状态的文档,下面对一些重要的键进行说明:、

  • globalLock

表示全局写入锁占用了服务器多少时间,微秒为单位

  • mem

包含服务器内存映射了多少数据,服务器进程的虚拟内存和常住内存的占用情况

  • indexCounters

表示B树在磁盘索引('misses')和内存检索('hits')的次数。如果该比值过高就需要添加内存了。

  • backgroudFlushing

表示后台做了多少次fsync以及用了多长时间

  • opcounters

包含了每种主要操作的次数

  • asserts

统计了断言的次数

 

上边说到的计数器都是从服务进程启动开始计算,如果数量达到计数器上限,那么asserts中的rollovers会增加,同时计数器置0。

使用mongostat命令

serverState虽然可以比较全面的显示当前进程的状态,但是由于是静态的,即每次只能监控当前的状态无法跟踪显示mongoDB进程运行的动态信息,所以MongoDB还为我们提供了mongostat命令来动态的监控进程运行状态(类似Linux下more和tail -t -n 200的区别(尾部游标))。

mongostat的参数

mongostat命令和mongod、mongo命令属于同一级别命令,都在mongo_home/bin目录中。常见的命令参数:

  • --help

help大家都懂得,就是得到这个命令的帮助、使用信息

  • --verbose/-v

增加命令行返回的内部报告数量。可以通过设置多个v来使得数据更加详细,例如-vvvvvv

  • --version

显示当前mongodbstat命令版本

  • --host

指定mongostat要监测的mongo实例的ip:port,默认情况下链接localhost:27017端口的MongoDB实例。如果要连接的是一个集合,那么可以按如下方式连接:

集合名/IP:PORT,IP1:PORT2…

  • --port

如果MongoDB运行在默认的27017端口,那么不需要指定该端口。如果不是运行在27017端口,那么就需要使用该参数指明端口。

  • --ipv6

启用IPv6支持,默认情况下,MongoDB实例没有开启IPv6网络连接。

  • --ssl

2.4版本的mongostat新加入的命令参数,支持mongostat通过SSL连接MongoDB实例。默认情况下,MongoDB实例不支持SSL连接,需要设置MongoDB支持SSL连接,才能让mongostat通过SSL连接MongoDB

  • --rowcount number,-n number

控制数据输出行数。number的值设定了输出的数据行数,即监听几次,当number为0的时候,那么就是无限次输出行数。

该参数配合sleeptime参数一起使用可以实现,监听number次,每次监听间隔sleeptime秒。

  • --sleeptime

sleeptime参数使用的时候不需要前置参数,数字即可。例如:

mongostatsleeptime

其他参数详见:

http://docs.mongodb.org/manual/reference/program/mongostat/

mongostat返回列说明

mongostat返回的是一个表格形式,下面对返回的值的形式、列做出说明:

  • Inserts

显示每秒插入到数据库中对象数量,如果后边跟着一个*,那么就说明该次是一个复制操作。

  • Query

每秒执行的查询操作数。

  • Update

每秒执行的更新操作数。

  • Delete

每秒执行的删除操作数。

  • Getmore

每秒执行的get more(cursor相关操作)操作的数量。

  • Command

每秒执行的命令数。当在从属节点和辅助节点上执行mongostat命令的时候,这列会以  本地数|复制数  的方式展示。

  • Flushes

每秒系统执行的从内存同步到硬盘的数量。

  • Mapped

映射的数据总量,以M为单位。这个数据在每次调用mongostat时刷新。

  • Size

虚拟内存在最后调用mongostat时,进程使用的兆字节的数量。

  • non-mapped

虚拟内存不包括在最后调用mongostat时所有映射的内存总量,以M为单位。

  • Res

驻留在内存中的,在最后调用mongostat时,进程使用的兆字节的数量。

  • Faults

每秒的页面故障数。

  • Locked

全局写入锁所占的百分比。

  • locked db

时间在每个数据库上下文特定的锁的百分比。此值列出的数据库过度花费在全局锁的时间锁定状态量。正因为如此,取样方法,您可能会看到大于100%的一些值。

  • idx miss

索引尝试访问数据时,错误页面的造成失败的百分比。

  • Qr

等待从MongoDB实例读取数据的客户端队列长度。

  • Qw

等待向MongoDB实例写入数据的客户端队列长度。

  • Ar

执行读取操作的活动客户端的数量。

  • Aw

执行写入操作的活动客户端的数量。

  • netIn

由MongoDB实例接收的网络通信量,以字节为单位。这包括mongostat命令产生的流量。

  • netOut

由MongoDB实例输出的网络通信量,以字节为单位。这包括mongostat命令产生的流量。

  • Conn

所有打开的连接数量。

  • Set

该集合副本的名称,如果使用才会出现。

  • Repl

当前集群成员的复制状态。

Value

Replication Type

M

主节点

SEC

备份节点

REC

恢复节点

UNK

位置状态

SLV

从属节点

 

  • Time

mongostat命令执行的服务器时间。

第三方MongoDB监控

Nagios、Munin、Ganglia(可以监控Hadoop),Cacti。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值