一.安装
1.下载并解压
#安装依赖
[root@mongodb01 ~]# yum install libcurl openssl -y
#下载安装包
[root@mongodb01 ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.14.tgz
#解压到/opt目录下
[root@mongodb01 ~]# tar xf mongodb-linux-x86_64-rhel70-4.0.14.tgz -C /opt/
#切换目录并设置软链接
[root@mongodb01 ~]# cd /opt/
[root@mongodb01 /opt]# ln -s mongodb-linux-x86_64-rhel70-4.0.14 mongodb
2.创建文件目录以及数据目录
[root@mongodb01 /opt]# mkdir -p /opt/mongo_27017/{conf,log,pid}
[root@mongodb01 /opt]# mkdir -p /data/mongo_27017
二. 配置启动mongo
1.创建配置文件
[root@mongodb01 ~]# cat >/opt/mongo_27017/conf/mongodb.conf<<EOF
systemLog:
destination: file
logAppend: true
path: /opt/mongo_27017/log/mongodb.log
storage:
journal:
enabled: true
dbPath: /data/mongo_27017
directoryPerDB: true
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
pidFilePath: /opt/mongo_27017/pid/mongod.pid
net:
port: 27017
bindIp: 127.0.0.1,10.0.0.72
EOF
2.启动mongo
[root@mongodb01 ~]# /opt/mongodb/bin/mongod -f /opt/mongo_27017/conf/mongodb.conf
3.检查是否启动
[root@mongodb01 ~]# netstat -lntup|grep 27017
三.配置登录mongo
1.写入环境变量
[root@mongodb01 ~]# echo 'export PATH=/opt/mongodb/bin:$PATH' >> /etc/profile
[root@mongodb01 ~]# source /etc/profile
2.登录
[root@mongodb01 ~]# mongo
......
2019-12-23T18:58:02.051+0800 I STORAGE [initandlisten] ** WARNING: The configured WiredTiger cache size is more than 80% of available RAM.
2019-12-23T18:58:02.051+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/faq-memory-diagnostics-wt
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten]
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten]
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten]
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten]
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten]
2019-12-23T18:58:02.641+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 3805 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
>
3.关闭
方法1:
#使用localhost登录
[root@mongodb01 ~]# mongo localhost:27017
>use admin
>db.shutdownServer()
方法2:
[root@mongodb01 ~]# mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown
四.优化告警
1.访问控制
WARNING: Access control is not enabled for the database.
Read and write access to data and configuration is unrestricted.
解决方法:
开启安全认证功能
2.以root用户运行
WARNING: You are running this process as the root user, which is not recommended.
解法
解决方法1:创建普通用并切换启动
mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown
useradd mongo
echo '123456'|passwd --stdin mongo
chown -R mongo:mongo /opt/
chown -R mongo:mongo /data/
su - mongo
mongod -f /opt/mongo_27017/conf/mongodb.conf
mongo
解决方法2:创建systemcd启动文件
cat >/lib/systemd/system/mongod.service<<EOF
[Unit]
Description=MongoDB Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=-f /opt/mongo_27017/conf/mongodb.conf"
ExecStart=/opt/mongodb/bin/mongod \$OPTIONS
ExecStartPre=/usr/bin/chown -R mongod:mongod /opt/mongo_27017
ExecStartPre=/usr/bin/chown -R mongod:mongod /data/mongo_27017
PermissionsStartOnly=true
PIDFile=/opt/mongo_27017/pid/mongod.pid
Type=forking
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
EOF
#创建用户
[root@mongodb01 ~]# useradd mongod -M -s /sbin/nologin
#启动mongodb
[root@mongodb01 ~]# systemctl daemon-reload
[root@mongodb01 ~]# systemctl start mongod
3.关闭大内存页技术
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
We suggest setting it to 'never'
WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
We suggest setting it to 'never'
解决方法:
1.临时解决
[root@mongodb01 ~]# echo "never" >/sys/kernel/mm/transparent_hugepage/enabled
[root@mongodb01 ~]# echo "never" >/sys/kernel/mm/transparent_hugepage/defrag
2.写入开机自启动
[root@mongodb01 ~]# chmod +x /etc/rc.d/rc.local
[root@mongodb01 ~]# vim /etc/rc.d/rc.local
echo "never" >/sys/kernel/mm/transparent_hugepage/enabled
echo "never" >/sys/kernel/mm/transparent_hugepage/defrag
验证:
[root@mongodb01 ~]# mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown
[root@mongodb01 ~]# mongod -f /opt/mongo_27017/conf/mongodb.conf
[root@mongodb01 ~]# mongo
4.解决rlimits太低
WARNING: soft rlimits too low. rlimits set to 31771 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
解法
1.解决方法
[root@mongodb01 ~]# vim /etc/profile
ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 64000
ulimit -m unlimited
ulimit -u 64000
#生效配置:
[root@mongodb01 ~]# source /etc/profile
验证:
[root@mongodb01 ~]# mongod -f /opt/mongo_27017/conf/mongodb.conf --shutdown
[root@mongodb01 ~]# mongod -f /opt/mongo_27017/conf/mongodb.conf
[root@mongodb01 ~]# mongo
2.解决方法:创建systemcd启动文件启动
说明:之前已经设置。
5.关闭共享
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).
The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.
To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---
解决办法
> db.disableFreeMonitoring()
五.mongodb 默认存在的库
test:登录时默认存在的库
管理MongoDB有关的系统库
admin库:系统预留库,MongoDB系统管理库
local库:本地预留库,存储关键日志
config库:MongoDB配置信息库
show databases/show dbs
show tables/show collections
use admin
db/select database()
网友评论