由于项目上需要对mongodb进行监控,所以需要先熟悉下什么是mongobd以及mongodb的简单操作
mongodb的安装:
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz # 下载 tar -zxvf mongodb-linux-x86_64-3.0.6.tgz # 解压 mv mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb # 将解压包拷贝到指定目录
MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
mkdir -p /data/db
启动mongodb ----- mongod 如果安装路径不是默认的,那么可以--dbpath 指定路径
进入交互式模式 mongo ----(MongoDB Shell是MongoDB自带的交互式Javascript shell) 它默认会链接到 test 文档(数据库)在里面的操作默认都会存放到test数据库里面去 如下
将数字 10 插入到 runoob 集合的 x 字段中。
--"show dbs" 命令可以显示所有数据的列表。
--“db” 可以显示当前数据库的信息
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库。
- admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
- local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
- config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
mongodb的连接方式
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
-
mongodb:// 这是固定的格式,必须要指定。
-
username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库
-
host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
-
portX 可选的指定端口,如果不填,默认为27017
-
/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
-
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
创建数据库:如果不存在就新创建一个
use DATABASE_NAME
可以看到,我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。
注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。
创建集合(理解为创建一个表)可以参考 http://www.runoob.com/mongodb/mongodb-create-collection.html
常用的操作集合
##暴力重启操作
killall mongod killall mongos rm -f /usr/local/mongodb/config/data/mongod.lock rm -f /usr/local/mongodb/shard1/data/mongod.lock rm -f /usr/local/mongodb/shard2/data/mongod.lock rm -f /usr/local/mongodb/shard3/data/mongod.lock mongod --repair --dbpath=/usr/local/mongodb/config/data mongod --repair --dbpath=/usr/local/mongodb/shard1/data/ mongod --repair --dbpath=/usr/local/mongodb/shard2/data/ mongod --repair --dbpath=/usr/local/mongodb/shard3/data/
#mongod服务启动 mongod -f /usr/local/mongodb/conf/config.conf mongod -f /usr/local/mongodb/conf/shard1.conf mongod -f /usr/local/mongodb/conf/shard2.conf mongod -f /usr/local/mongodb/conf/shard3.conf mongos -f /usr/local/mongodb/conf/mongos.conf
# 查看mongodb状态 加入了验证之后
./mongostat -h0.0.0.0:20000 -uroot -p123456 --authenticationDatabase=admin #创建用户 db.createUser( { user:"root", pwd:"zfno11", roles:[{role:"root",db:"admin"}] } ) # 查看mongodb的状态----配置zabbix做监控 ./mongo --port 20000 -uroot -pabc123 --authenticationDatabase=admin ./mongostat -h0.0.0.0:20000 -uroot -pabc123 --authenticationDatabase=admin echo "db.serverStatus()" | /opt/mongodb/bin/mongo --port 20000 -uroot -pabc123 --authenticationDatabase=admin admin