#!/bin/bash
soft_dir="/tmp"
soft_name="mongodb-linux-x86_64-rhel70-4.4.14.tgz"
#安装依赖
yum install libcurl openssl xz-libs wget -y
#下载安装包
cd $soft_dir
[ -f $soft_name ] || wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.14.tgz
tar xvf $soft_name -C /usr/local
cd /usr/local
ln -s mongodb-linux-x86_64-rhel70-4.4.14 mongodb
#设置环境变量
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> /etc/profile
#增加mongodb启动用户
groupadd mongod
useradd -r -g mongod mongod
echo "mongod" | passwd --stdin mongod
#内核参数配置
echo "mongo hard cpu unlimited" >> /etc/security/limits.conf
echo "mongo soft cpu unlimited" >> /etc/security/limits.conf
echo "mongo hard memlock unlimited" >> /etc/security/limits.conf
echo "mongo soft memlock unlimited" >> /etc/security/limits.conf
echo "mongo hard nofile 65535 " >> /etc/security/limits.conf
echo "mongo soft nofile 65535 " >> /etc/security/limits.conf
echo "mongo hard nproc 192276 " >> /etc/security/limits.conf
echo "mongo soft nproc 192276 " >> /etc/security/limits.conf
echo "mongo hard fsize unlimited" >> /etc/security/limits.conf
echo "mongo soft fsize unlimited" >> /etc/security/limits.conf
echo "mongo hard as unlimited" >> /etc/security/limits.conf
echo "mongo soft as unlimited" >> /etc/security/limits.conf
# vi /root/.bashrc
echo "ulimit -u unlimited" >> /root/.bashrc
#调整网络参数
#编辑/etc/sysctl.conf或者/etc/sysctl.d/mongodb-sysctl.conf
echo "net.core.somaxconn = 4096" >> /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_intvl = 30" >> /etc/sysctl.conf
echo "net.ipv4.tcp_keepalive_time = 120" >> /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 4096" >> /etc/sysctl.conf
##可以使用一下命令查看参数的值
##$ sysctl net.core.somaxconn
##net.core.somaxconn = 4096
#时间同步
(crontab -l;echo '0 1 * * * ntpdate -u 223.5.5.5 > /tmp/null') | crontab
#创建数目录和日志目录,并给mongod权限
mkdir -p /data/mongo_data/data
mkdir -p /data/mongo_data/log
chown -R mongod:mongod /data/ /usr/local/mongodb
#设置配置文件
echo "systemLog:
quiet: false
destination: file
logAppend: true
path: /data/mongo_data/log/mongod.log
storage:
dbPath: /data/mongo_data/data
directoryPerDB: true
journal:
enabled: true
wiredTiger:
engineConfig:
directoryForIndexes: true
processManagement:
fork: true # fork and run in background
pidFilePath: /data/mongo_data/mongod.pid # location of pidfile
net:
port: 27017
bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
#security:
# authorization: enabled
# javascriptEnabled: false" > /etc/mongod.conf
chown mongod:mongod /etc/mongod.conf
#设置启动脚本
echo '
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/local/mongodb/bin/mongod $OPTIONS
PIDFile=/data/mongo_data/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# 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
' > /usr/lib/systemd/system/mongod.service
chmod 644 /usr/lib/systemd/system/mongod.service
source /etc/profile
systemctl daemon-reload
systemctl enable mongod
systemctl restart mongod.service
systemctl status mongod.service
##安装工具
wget https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel70-x86_64-100.5.2.rpm
rpm -ivh mongodb-database-tools-rhel70-x86_64-100.5.2.rpm