使用 .tgz Tarball 在 Red Hat 或 CentOS 上安装 MongoDB 企业版
概述
使用本教程手动安装MongoDB 8.0企业版在Red Hat Enterprise Linux、CentOS Linux或Oracle Linux版本上使用下载的.tgz
归档文件。
MongoDB企业版 可在选定平台上使用,并包含与安全性和监控相关的多个功能。
MongoDB版本
本教程安装MongoDB 8.0版本。企业版要安装不同版本的MongoDB企业版,请使用页面左上角的版本下拉菜单选择该版本的文档。
安装方法
虽然可以像本文档中所述那样通过下载的 .tgz
归档文件手动安装MongoDB,但如果可能,建议使用系统上的 yum
软件包管理器安装MongoDB。使用软件包管理器会自动安装所有所需依赖项,提供示例 mongod.conf
文件以帮助您开始,并简化未来的升级和维护任务。
➤请参阅使用yum软件包管理器安装MongoDB 以获取说明。
考虑因素
MongoDB Shell, mongosh
当您使用 .tgz
软件包安装服务器时,需要按照 mongosh 安装说明 分别下载和安装 mongosh。
平台支持
MongoDB 8.0 企业版支持以下64位版本的 Red Hat 企业 Linux (RHEL)、CentOS Linux、Oracle Linux [1]、Rocky Linux 和 AlmaLinux [2] 在 x86_64 架构上
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 9
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 8
MongoDB 只支持这些平台的 64 位版本。
MongoDB 8.0 企业版在 RHEL / CentOS / Oracle / Rocky / Alma Linux 上也支持在某些平台上 ARM64 架构。
有关更多信息,请参阅 平台支持。
[1] | (1, 2) MongoDB 仅支持运行 Red Hat 兼容内核 (RHCK) 的 Oracle Linux。MongoDB 不支持 Unbreakable Enterprise Kernel (UEK)。 |
[2] | MongoDB 在 RHEL 8.0+ 版本上发布的本地产品与 Rocky Linux 8.0+ 和 AlmaLinux 8.0+ 兼容,并且在这些发行版满足其提供完整 RHEL 兼容性的义务后得到支持。 |
生产注意事项
在生产环境中部署 MongoDB 之前,请考虑自托管部署的生产注意事项文档,该文档提供了生产 MongoDB 部署的性能考虑和建议配置。
安装 MongoDB 企业版
先决条件
使用以下命令安装 MongoDB 所需的依赖项企业版 .tgz
压缩包
sudo yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl openldap openssl xz-libs
sudo yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl openldap openssl xz-libs
sudo yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl openldap openssl xz-libs
步骤
按照以下步骤手动安装MongoDB企业版从 .tgz
版本。
下载软件包。
安装所需的先决软件包后,下载MongoDB企业版 tgz
软件包。
➤ 从以下链接
在版本 下拉菜单中,选择要下载的MongoDB版本。
在 平台 下拉菜单中,选择您的操作系统版本和架构。
在 软件包 下拉菜单中,选择 tgz。
点击 下载。
确保二进制文件位于您的 PATH
环境变量中列出的目录。
MongoDB 二进制文件位于 tarball 的 bin/
目录中。您可以
将二进制文件复制到您的
PATH
变量中列出的目录,例如/usr/local/bin
(根据需要将/path/to/the/mongodb-directory/
替换为您的安装目录)sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/ 从您的
PATH
变量中列出的目录创建二进制文件的符号链接,例如/usr/local/bin
(根据需要将/path/to/the/mongodb-directory/
替换为您的安装目录)sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
安装 MongoDB Shell(mongosh
)。
安装 mongosh
然后使用 MongoDB Shell 连接到您的部署。
从 MongoDB 下载中心 下载您需要的 mongosh
版本的包并解压。
运行 MongoDB 企业版
ulimit
大多数类Unix操作系统会对进程可能使用的系统资源进行限制。这些限制可能会对MongoDB的操作产生负面影响,并应进行调整。请参阅自管理部署的UNIX ulimit
设置推荐以获取您平台的推荐设置。
注意
如果打开文件的ulimit
值小于64000
,MongoDB将生成启动警告。
目录路径
使用默认目录
默认情况下,MongoDB使用mongod
用户账户运行,并使用以下默认目录
/var/lib/mongo
(数据目录)/var/log/mongodb
(日志目录)
创建MongoDB数据和日志目录
sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb
默认情况下,MongoDB 使用 mongod
用户账户运行。创建一个 mongod
和一个 mongodb
组。确保 mongod
属于该组,然后将这些目录的所有者和组设置为 mongod
sudo chown -R mongod:mongodb /var/lib/mongo sudo chown -R mongod:mongodb /var/log/mongodb
使用非默认目录
要使用除默认目录以外的数据目录和/或日志目录
创建新的目录或目录。
编辑配置文件
/etc/mongod.conf
并相应地修改以下字段storage.dbPath
指定新的数据目录路径(例如,/some/data/directory
)systemLog.path
指定新的日志文件路径(例如,/some/log/directory/mongod.log
)
确保运行 MongoDB 的用户有权访问这些目录
sudo chown -R mongod:mongod <directory> 如果您更改运行 MongoDB 进程的用户,您必须**必须**给新用户访问这些目录的权限。
如果强制实施,请配置 SELinux。参见配置 SELinux。
配置 SELinux
警告
配置不当的 SELinux 策略可能不安全,或者可能阻止您的 mongod
实例运行。
如果 SELinux 处于 enforcing
模式,您必须根据以下内容自定义 MongoDB 的 SELinux 策略
允许访问
cgroup
允许访问
netstat
允许访问 cgroup
当前的 SELinux 政策不允许 MongoDB 进程访问 /sys/fs/cgroup
,这是确定系统可用内存所必需的。如果您打算在 enforcing
模式下运行 SELinux,您需要调整 SELinux 政策进行以下操作
确保您的系统已安装
checkpolicy
包sudo yum install checkpolicy 创建一个自定义策略文件
mongodb_cgroup_memory.te
cat > mongodb_cgroup_memory.te <<EOF module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read }; EOF 创建后,通过运行以下三个命令编译和加载自定义策略模块
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod sudo semodule -i mongodb_cgroup_memory.pp
MongoDB 进程现在能够在 SELinux 设置为 enforcing
时访问正确的文件。
允许访问 netstat
以支持 FTDC
当前的 SELinux 政策不允许 MongoDB 进程打开和读取 /proc/net/netstat
,这是 全时诊断数据捕获 (FTDC) 所必需的。如果您打算在 enforcing
模式下运行 SELinux,您需要调整 SELinux 政策进行以下操作
确保您的系统已安装
checkpolicy
包sudo yum install checkpolicy 创建一个自定义策略文件
mongodb_proc_net.te
cat > mongodb_proc_net.te <<EOF module mongodb_proc_net 1.0; require { type cgroup_t; type configfs_t; type file_type; type mongod_t; type proc_net_t; type sysctl_fs_t; type var_lib_nfs_t; class dir { search getattr }; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir { search getattr } ; allow mongod_t cgroup_t:file { getattr open read }; allow mongod_t configfs_t:dir getattr; allow mongod_t file_type:dir { getattr search }; allow mongod_t file_type:file getattr; allow mongod_t proc_net_t:file { open read }; allow mongod_t sysctl_fs_t:dir search; allow mongod_t var_lib_nfs_t:dir search; EOF 创建后,通过运行以下三个命令编译和加载自定义策略模块
checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod sudo semodule -i mongodb_proc_net.pp
使用自定义 MongoDB 目录路径
更新 SELinux 政策,允许
mongod
服务使用新目录sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*> 根据需要指定以下类型之一
mongod_var_lib_t
用于数据目录mongod_log_t
用于日志文件目录mongod_var_run_t
用于进程ID文件目录
注意
确保在目录末尾包含
.*
。更新新目录的SELinux用户策略
sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory> 根据需要指定以下类型之一
mongod_var_lib_t
用于数据目录mongod_log_t
用于日志目录mongod_var_run_t
用于进程ID文件目录
将更新的SELinux策略应用于目录
sudo restorecon -R -v </some/MongoDB/directory>
例如
提示
对于 semanage fcontext
操作,确保在目录末尾包含 .*
。
如果使用非默认的MongoDB数据路径
/mongodb/data
sudo semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*' sudo chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data' sudo restorecon -R -v '/mongodb/data' 如果使用非默认的MongoDB日志目录
/mongodb/log
(例如,如果日志文件路径为/mongodb/log/mongod.log
)sudo semanage fcontext -a -t mongod_log_t '/mongodb/log.*' sudo chcon -Rv -u system_u -t mongod_log_t '/mongodb/log' sudo restorecon -R -v '/mongodb/log'
使用自定义MongoDB端口
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>
重要
除了上述操作外,如果SELinux处于 enforcing
模式,您还需要进一步自定义每种情况的SELinux策略。
您正在使用 自定义目录路径,而不是使用任何组合的默认路径
您正在使用 自定义端口,而不是使用 默认MongoDB端口。
如果您对MongoDB安装进行了其他修改。
程序
按照以下步骤运行MongoDB企业版系统上的版本。这些说明假定您正在使用默认设置。
开始使用MongoDB。
在运行mongod
的同一台主机上启动一个mongosh
会话。您可以通过不使用任何命令行选项来连接到运行在您本地主机上的默认端口27017的mongod
。
mongosh
有关使用mongosh
连接的更多信息,例如连接到运行在不同主机和/或端口的mongod
实例,请参阅mongosh 文档。
为了帮助您开始使用MongoDB,MongoDB为各种驱动版本提供了入门指南。有关驱动程序文档,请参阅开始使用 MongoDB 开发。
更多信息
默认绑定到本地主机
默认情况下,MongoDB以bindIp
设置为127.0.0.1
启动,这绑定到本地主机网络接口。这意味着mongod
只能接受同一台机器上运行的客户端的连接。远程客户端将无法连接到mongod
,除非将此值设置为有效的网络接口,否则mongod
无法初始化副本集。
此值可以通过以下方式配置:
在MongoDB配置文件中使用
bindIp
,或通过命令行参数
--bind_ip
有关配置bindIp
的更多信息,请参阅自管理部署中的IP绑定。