在 Red Hat Enterprise 或 CentOS 上安装 MongoDB Enterprise

在本页面

概观

使用本教程在.rpm软件包中的 Red Hat Enterprise Linux,CentOS Linux 或 Oracle Linux [1]版本 6 和 7 上安装MongoDB 企业版

平台支持 本安装指南仅支持 64-bit 系统。有关详细信息,请参见 Platform Support MongoDB 3.4 删除了对 Red Hat Enterprise Linux 5 的支持。

[1]MongoDB 仅支持 Oracle Linux 运行 Red Hat Compatible Kernel(RHCK)。 MongoDB **不支持 Unbreakable Enterprise Kernel(UEK)。

MongoDB 在自己的 repository 中提供官方支持的 Enterprise 包。该 repository 包含以下包:

包裹名字描述
mongodb-enterprise一个metapackage将自动安装下面列出的四个 component 包。
mongodb-enterprise-server包含mongod守护程序以及关联的 configuration 和 init 脚本。
mongodb-enterprise-mongos包含mongos守护程序。
mongodb-enterprise-shell包含mongo shell。
mongodb-enterprise-tools包含以下 MongoDB 工具:mongoimport bsondumpmongodumpmongoexportmongofilesmongoperfmongorestoremongostatmongotop

默认情况下,程序包提供的默认/etc/mongod.conf configuration 文件bind_ip设置为127.0.0.1。在初始化副本集之前,根据您的环境需要修改此设置。

安装 MongoDB Enterprise

注意 要安装 MongoDB 的其他 version,请参阅 version 的文档。要安装以前的 version,请参阅 version 3.4的教程。

如果可能,请使用本页所述的提供的分发包。这些包将自动安装所有 MongoDB 的依赖项,并且是推荐的安装方法。

配置 repository。

创建一个/etc/yum.repos.d/mongodb-enterprise.repo文件,以便您可以使用yum直接安装 MongoDB enterprise。

对于 MongoDB Enterprise 的 3.6 version

使用以下 repository 文件:

[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.6/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

每个版本的.repo files 也可以找到在 repository 本身。请记住,odd-numbered 次要版本(e.g. 3.5)是开发版本,不适合 production 部署。

安装 MongoDB Enterprise 软件包。

安装 MongoDB Enterprise 的 3.6 release candidate version。

发出以下命令:

sudo yum install -y mongodb-enterprise

安装 MongoDB Enterprise 的特定版本。

要安装特定版本,必须单独指定每个 component 软件包以及 version number,如下面的示例所示:

sudo yum install -y mongodb-enterprise-3.6.14 mongodb-enterprise-server-3.6.14 mongodb-enterprise-shell-3.6.14 mongodb-enterprise-mongos-3.6.14 mongodb-enterprise-tools-3.6.14

如果只安装mongodb-enterprise=3.6.14并且不包含 component 软件包,则无论您指定了什么 version,都将安装每个 MongoDB 软件包的最新 version。

固定 MongoDB Enterprise 的特定 version。

虽然您可以指定 MongoDB Enterprise 的任何可用 version,但yum将在更新的 version 可用时升级包。要防止意外升级,请通过将以下exclude指令添加到/etc/yum.conf文件来固定包:

exclude=mongodb-enterprise,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools

从 Tarball 安装 MongoDB Enterprise

虽然您应该使用前面描述的.rpm包,但您也可以使用 tarball 手动安装 MongoDB。有关详细信息,请参阅从 Tarball 安装 MongoDB Enterprise

Run MongoDB 企业版

先决条件

ulimit

大多数 Unix-like 操作系统限制了 session 可能使用的系统资源。这些限制可能会对 MongoDB 操作产生负面影响。有关更多信息,请参见UNIX ulimit 设置

目录 Paths

使用默认目录

默认情况下,MongoDB 使用mongod用户帐户运行并使用以下默认目录:

  • /var/lib/mongo(数据目录)

  • /var/log/mongodb(log 目录)

  • ➤如果通过包 manager 安装,

    • 创建默认目录,并将这些目录的所有者和 group 设置为mongod
  • ➤如果通过下载 tarball 安装,

    • 未创建默认的 MongoDB 目录。要创建 MongoDB 数据和 log 目录:

小费 根据您的用户权限,您可能需要使用sudo来执行这些操作。

mkdir -p /var/lib/mongo
mkdir -p /var/log/mongodb

默认情况下,MongoDB 使用mongod用户帐户运行。创建后,将这些目录的所有者和 group 设置为mongod

chown -R mongod:mongod <directory>

使用 Non-Default 目录

要使用默认目录以外的数据目录 and/or log 目录:

小费 根据您的用户权限,您可能需要使用sudo来执行这些操作。

  • 创建新目录。

  • 编辑 configuration 文件/etc/mongod.conf并相应地修改以下字段:

  • storage.dbPath指定新的数据目录路径(e.g. /some/data/directory)

  • systemLog.path指定新的 log 文件路径(e.g. /some/log/directory/mongod.log)

  • 确保用户 running MongoDB 可以访问一个或多个目录:

chown -R mongod:mongod <directory>

如果更改运行 MongoDB process 的用户,则必须**允许新用户访问这些目录。

配置 SELinux

重要

  • 你不**使用默认的 MongoDB 目录(对于 RHEL 7.0),and/or

  • 不是使用默认 MongoDB 端口

Non-Default MongoDB 目录 Path(s)
  • 更新 SELinux policy 以允许mongod服务使用新目录:
semanage fcontext -a -t <type> </some/MongoDB/directory.*>

在适当的地方指定以下类型之一:

  • mongod_var_lib_t表示数据目录

  • 用于 log 文件目录

  • mongod_var_run_t用于 pid 文件目录

注意 请务必在目录末尾包含.*

  • 更新新目录的 SELinux 用户 policy:
chcon -Rv -u system_u -t <type> </some/MongoDB/directory>

在适当的地方指定以下类型之一:

  • mongod_var_lib_t表示数据目录

  • 用于 log 目录

  • mongod_var_run_t用于 pid 文件目录

  • 将更新的 SELinux policies 应用于目录:

restorecon -R -v </some/MongoDB/directory>

举些例子:

小费

  • 根据您的用户权限,您可能需要使用sudo来执行这些操作。

  • 确保在semanage fcontext操作的目录末尾包含.*

  • 如果使用/mongodb/data的 non-default MongoDB 数据路径:

semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*'
chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data'
restorecon -R -v '/mongodb/data'
  • 如果使用/mongodb/log的 non-default MongoDB log 目录(e.g. 如果 log 文件路径为/mongodb/log/mongod.log):
semanage fcontext -a -t mongod_log_t '/mongodb/log.*'
chcon -Rv -u system_u -t mongod_log_t '/mongodb/log'
restorecon -R -v '/mongodb/log'

Non-Default MongoDB 端口

小费 根据您的用户权限,您可能需要使用sudo来执行操作。

semanage port -a -t mongod_port_t -p tcp <portnumber>

可选的。抑制 FTDC 警告

当前 SELINUX Policy 不允许 MongoDB process 打开并读取/proc/net/netstat for 诊断参数(FTDC)。因此,audit log 可能包含许多关于无法访问此路径的消息。

要跟踪建议的修复,请参阅https://github.com/fedora-selinux/selinux-policy-contrib/pull/79

(可选)作为临时修复,您可以手动调整 SELinux Policy:

  • 创建 policy 文件mongodb_proc_net.te
cat > mongodb_proc_net.te <<EOF
module mongodb_proc_net 1.0;

require {
    type proc_net_t;
    type mongod_t;
    class file { open read };
}

#============= mongod_t ==============
allow mongod_t proc_net_t:file { open read };
EOF
  • 创建后,编译并加载自定义 policy 模块

小费 根据您的用户权限,您可能需要使用sudo来执行semodule操作。

checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te
semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod
semodule -i mongodb_proc_net.pp

程序

启动 MongoDB。

您可以通过发出以下命令来启动mongod process:

sudo service mongod start

验证 MongoDB 是否已成功启动

您可以通过检查/var/log/mongodb/mongod.log处的 log 文件的内容来验证mongod process 是否已成功启动以获取 line 读数

[initandlisten] waiting for connections on port <port>

其中<port>/etc/mongod.conf中配置的 port,默认为27017

您可以选择通过发出以下命令来确保 MongoDB 在系统重新启动后启动:

sudo chkconfig mongod on

停止 MongoDB。

根据需要,您可以通过发出以下命令来停止mongod process:

sudo service mongod stop

重启 MongoDB。

您可以通过发出以下命令重新启动mongod process:

sudo service mongod restart

您可以通过观察/var/log/mongodb/mongod.log文件中的输出来跟踪 process 的 state 以查找错误或重要消息。

开始使用 MongoDB。

在与mongod相同的 host 机器上启动mongo shell。使用--host command line 选项指定mongod侦听的 localhost 地址和 port:

mongo --host 127.0.0.1:27017

稍后,要停止 MongoDB,请在mongod实例正在运行的终端中按Control+C

卸载 MongoDB

要从系统中完全删除 MongoDB,必须删除 MongoDB applications 本身,configuration files 以及包含数据和日志的任何目录。以下部分将引导您完成必要的步骤。

警告此 process 将完全删除 MongoDB,其 configuration 和所有数据库。此 process 不可逆,因此请确保在继续之前备份所有 configuration 和数据。

停止 MongoDB。

通过发出以下命令停止mongod process:

sudo service mongod stop

删除包。

删除以前安装的所有 MongoDB 包。

sudo yum erase $(rpm -qa | grep mongodb-enterprise)

删除数据目录。

删除 MongoDB 数据库和 log files。

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo