MongoDB的安装使用与监控


下载

https://www.mongodb.com/try/download/community

我这边习惯于下载 Windows 的 MSI 进行安装
Linux 喜欢下载 tgz包. 这样便于迁移与快速部署.

安装

解压缩
然后将bin目录下的文件复制到 /usr/bin目录下

添加用户 useradd monogdb
添加文件 mkdir -p /data/mongodb/{data,logs}
修改用户属主
chown mongodb /data/mongodb -R

验证服务启动

验证是否可以启动服务:
mongod --dbpath /data/mongodb/data/ --logpath /data/mongodb/logs/mongodb.log --fork
about to fork child process, waiting until server is ready for connections.
forked process: 397168
child process started successfully, parent exiting

查看默认端口已经打开:
lsof -i:27017
COMMAND    PID    USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
mongod  397168 mongodb   14u  IPv4 7741989      0t0  TCP localhost:27017 (LISTEN)

设置外网访问

创建配置文件:
cat >/etc/mongod.conf <<EOF
dbpath=/data/mongodb/data  
logpath=/data/mongodb/logs/mongodb.log 
pidfilepath=/data/mongodb/master.pid  
directoryperdb=true  
logappend=true  
bind_ip=0.0.0.0
port=27017  
fork=true  
#auth=true
EOF
chown monogdb /etc/monogd.conf 
启动方式:
mongod -f /etc/mongod.conf

添加用户

# 可以使用 navicat 连接, 也可以在bind IP之前使用 命令行登录
# 下载mongodb 的shell
https://www.mongodb.com/try/download/compass
下载mongodb shell


show databases ; 
use admin;

db.createUser({user:"admin",pwd:"Test20131127",roles:["root"]})

db.system.users.find()

# 注意添加完用户之后 将配置文件里面的 auth 的注释放开, 重启数据库.

mongod -f /etc/mongod.conf --shutdown 关闭数据库
mongod -f /etc/mongod.conf 启动数据库

设置服务以及开机启动

注意 使用 systemd 管理mongodb 服务的话 需要将配置文件里面的 fork 参数注释掉. 

cat >/usr/lib/systemd/system/mongodb.service <<EOF
[Unit]
Description=mongodb
After=network.target
[Service]
Type=simple
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod -f /etc/mongod.conf 
ExecStop=/usr/bin/mongod -f /etc/mongod.conf  --shutdown
Restart=always
[Install]
WantedBy=multi-user.target
EOF

systemctl enable --now mongodb 
验证服务可以使用

下载使用exporter

https://github.com/percona/mongodb_exporter

chmod 777 mongodb_exporter-linux-amd64
scp mongodb_exporter-linux-amd64 /usr/bin/mongodb_exporter
Grafana 的ID为: 
16490

cat >/usr/lib/systemd/system/mongodb_exporter.service <<EOF
[Unit]
Description=mongodb_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/mongodb_exporter --mongodb.uri=mongodb://admin:Test20131127@192.168.254.217:27017 --web.listen-address=:9162  --collect-all 
Restart=always
[Install]
WantedBy=multi-user.target
EOF

systemctl enable --now mongodb_exporter.service

prometheus使用

- job_name: "mongodb"
    static_configs:
    - targets:
      - "192.168.254.217:9162"
Grafana 导入 16490