1. 程式人生 > >centos7下MongoDB3.4安裝並解決告警

centos7下MongoDB3.4安裝並解決告警

MongoDB官網下載安裝包 
3.6.8版本
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.8.tgz
3.4.18版本
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.18.tgz
解壓
tar zxf mongodb-linux-x86_64-rhel62-3.4.18.tgz
mv mongodb-linux-x86_64-rhel62-3.4.18 /usr/local/mongodb
echo 'export PATH=$PATH:/usr/local/mongodb/bin'>> /etc/profile
source /etc/profile
groupadd mongo
useradd -g mongo mongo
mkdir -p /server/mongodb27017/data
mkdir -p /server/mongodb27017/log
chown -R mongo.mongo /server/mongodb27017/
chown -R mongo.mongo   /usr/local/mongodb
vim /server/mongodb27017/mongodb27017.cnf

配置檔案

#SERVER
fork = true
port = 27017
quiet = true 
dbpath = /server/mongodb27017/data
logpath = /server/mongodb27017/log/mongod.log
logappend = true
journal = true
#auth = true   #開啟認證 
# <=3.4
nohttpinterface = true
directoryperdb = true

#SLOW_LOG
profile = 1
slowms = 500

#RS
replSet = rs01
oplogSize = 4096

# add for 3.4
# shardsvr = true

#SCO
#cinfigsvr = true
#configdb = MSCHOST

#USER
#keyFile=/
#setParameter=enableLocalhostAuthBypass=1
storageEngine=wiredTiger
wiredTigerCacheSizeGB=1
wiredTigerCollectionBlockCompressor=snappy

#mongo_version=mongodb34

啟動

sudo -u mongo mongod -f /server/mongodb27017/mongodb27017.cnf

進入命令列

mongo 127.0.0.1:27017

敲命令報錯

image.png

"errmsg" : "not master and slaveOk=false",

初始化

rs.initiate({_id:'rs01',version:1,members:[{_id:0,host:'10.238.162.33:27017'}]}) ;

完成

安裝完成後進入MongoDB的shell命令列後出現了很多報警如下,雖然都是一些warning,不影響使用,但是感覺就像是一個人處於亞健康狀態,當資料庫壓力過大的時候這些warning有可能導致資料庫出現error。所以下面挨著每個解決一下。

image.png

告警1 

** WARNING: You are running this process as the root user, which is not recommended.

解決:啟動MongoDB的時候使用普通使用者,而不用root使用者執行

sudo -u mongo mongod -f /server/mongodb27017/mongodb27017.cnf


告警2


2018-11-15T17:21:03.335+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2018-11-15T17:21:03.335+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2018-11-15T17:21:03.335+0800 I CONTROL  [initandlisten]
2018-11-15T17:21:03.335+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2018-11-15T17:21:03.335+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'

解決

echo "never" >> /sys/kernel/mm/transparent_hugepage/enabled

echo  "never" >>  /sys/kernel/mm/transparent_hugepage/defrag

並新增到  /etc/rc.local


告警3 

** WARNING: soft rlimits too low. rlimits set to 4096 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.
解決
vim /etc/security/limits.conf
mongo soft nofile  65535
mongo hard nofile  65535
mongo soft nproc 65535
mongo hard nproc  65535
mongo soft stack 1024
mongo hards tack 1024
vim /etc/security/limits.d/90-nproc.conf
soft nproc 65535


告警4 

WARNING: Access control is not enabled for the database.
2018-11-15T17:38:44.181+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
use admin
db.createUser(
{
user: "root", //使用者名稱
pwd: "root", //密碼
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] //許可權
}

在配置檔案中新增
auth = true


依次解決後進入shell命令列,真的乾淨!沒有任何告警資訊,簡直是強迫症患者福音 O(∩_∩)O哈哈~

image.png


再見 各位~