Importante
MongoDB 8.2 es la última versión menor. A partir de MongoDB 8.2, hay versiones menores disponibles para implementaciones locales (MongoDB Community y Enterprise) para casos de uso específicos. Para más información, consulte Control de versiones de MongoDB.
Para instalar la última versión de MongoDB compatible para uso on-premises, consulta las instrucciones de instalación.
Overview
Utilice este tutorial para instalar manualmente MongoDB 8.2 Enterprise Edition en Red Hat Enterprise Linux, CentOS Linux u Oracle Linux []1 mediante un paquete descargado. .tgz archivo tar.
MongoDB Enterprise Edition está disponible en plataformas seleccionadas e incluye soporte para varias características relacionadas con la seguridad y la supervisión.
Versión de MongoDB
Este tutorial instala MongoDB 8.2 Enterprise Edition. Para instalar una versión diferente de MongoDB Enterprise, utilice el menú desplegable de versiones en Self-Managed Deployments en el lado izquierdo de esta página para seleccionar la documentación para esa versión.
Método de instalación
Aunque MongoDB se puede instalar manualmente mediante un tarball .tgz descargado, como se describe en este documento, se recomienda utilizar el administrador de paquetes yum del sistema para instalar MongoDB, si es posible. El uso de un administrador de paquetes instala automáticamente todas las dependencias necesarias, proporciona un archivo mongod.conf de ejemplo para que comience y simplifica las tareas futuras de actualización y mantenimiento.
➤ Consulte Instalar MongoDB usando el administrador de paquetes yum para obtener instrucciones.
Considerations
MongoDB Shell, mongosh
Cuando utilice el paquete .tgz para instalar el servidor, debe seguir las instrucciones de instalación de mongosh para descargar e instalar mongosh por separado.
Soporte de plataforma
MongoDB 8.2 Enterprise Edition admite lo siguiente 64Versiones de bits de Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [],1 Rocky Linux y AlmaLinux []2 en la arquitectura x8664 _:
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 9
RHEL / CentOS Stream / Oracle / Rocky / AlmaLinux 8
MongoDB solo soporta las versiones de 64 bits de estas plataformas.
MongoDB 8.2 Enterprise Edition en RHEL / CentOS / Oracle / Rocky / Alma Linux también admite la arquitectura ARM64 en plataformas seleccionadas.
Consulte Soporte de plataforma para obtener más información.
| [1] | (1, 2) MongoDB solo admite Oracle Linux que ejecuta el Red Hat Compatible Kernel (RHCK). MongoDB no es compatible con el Unbreakable Enterprise Kernel (UEK). |
| [2] | Los productos on-premises de MongoDB lanzados para la versión 8.0+ de RHEL son compatibles y están soportados en Rocky Linux versión 8.0+ y AlmaLinux versión 8.0+, siempre que esas distribuciones cumplan con su obligación de ofrecer compatibilidad total con RHEL. |
Notas de producción
Antes de implementar MongoDB en un entorno de producción, considera el documento Notas de Producción para Implementaciones Autogestionadas, que ofrece consideraciones de rendimiento y recomendaciones de configuración para implementaciones de MongoDB en producción.
Instale MongoDB Enterprise Edition
Requisitos previos
Utilice el siguiente comando para instalar las dependencias necesarias para el archivo tarball .tgz de MongoDB Enterprise:
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
Procedimiento
Siga estos pasos para instalar manualmente MongoDB Enterprise Edition desde .tgz.
Descarga el archivo tarball.
Después de haber instalado los paquetes de requisitos previos necesarios, descargue el archivo tarball de MongoDB Enterprise tgz desde el siguiente enlace:
En el menú desplegable Version, selecciona la versión de MongoDB que deseas descargar.
En el menú desplegable Platform, seleccione su versión del sistema operativo y la arquitectura.
En el menú desplegable Package, selecciona tgz.
Haga clic en Download.
(Opcional) Asegúrate de que los binarios estén en el PATH.
Los binarios de MongoDB están en el directorio bin/ del archivo tarball. Puedes elegir entre:
Se deben copiar los binarios en un directorio listado en la variable
PATH, como/usr/local/bin(Actualizar/path/to/the/mongodb-directory/con el directorio de instalación, según corresponda)sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/ Cree enlaces simbólicos a los binarios desde un directorio listado en su variable
PATH, como/usr/local/bin(Actualice/path/to/the/mongodb-directory/con su directorio de instalación según corresponda):sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
(Opcional) Instala MongoDB Shell (mongosh).
Instalar mongosh Luego use MongoDB Shell para conectarse a su implementación.
Descarga el paquete para la versión de mongosh que necesita desde el MongoDB Download Center y descomprime el paquete.
Ejecute MongoDB Enterprise Edition
ulimit
La mayoría de los sistemas operativos similares a Unix limitan los recursos del sistema que un proceso puede utilizar. Estos límites pueden tener un impacto negativo en la operación de MongoDB y deben ajustarse. Se debe consultar Configuraciones de UNIX ulimit para implementaciones autogestionadas y conocer las configuraciones recomendadas para la plataforma.
Nota
Si el valor ulimit para el número de archivos abiertos es inferior a 64000, MongoDB genera una advertencia de inicio.
Rutas de directorio
Para usar directorios por defecto
Por defecto, MongoDB se ejecuta utilizando la cuenta de usuario mongod y emplea los siguientes directorios por defecto:
/var/lib/mongo(el directorio de datos)/var/log/mongodb(el directorio de registros)
Cree los directorios de datos y registros de MongoDB:
sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb
Por defecto, MongoDB se ejecuta utilizando la cuenta de usuario mongod. Cree un mongod y un grupo mongodb. Asegúrese de que mongod pertenezca al grupo y, a continuación, establezca el propietario y el grupo de estos directorios en mongod:
sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongodb
Para usar directorios no por defecto
Para utilizar un directorio de datos y/o un directorio de registros diferentes a los directorios por defecto:
Cree el nuevo directorio o directorios.
Edite el archivo de configuración
/etc/mongod.confy modifique los siguientes campos en consecuencia:storage.dbPathpara especificar una nueva ruta de directorio de datos (p. ej.,/some/data/directory)systemLog.pathpara especificar una nueva ruta de entrada de registro (por ejemplo,/some/log/directory/mongod.log)
Asegúrese de que el usuario que ejecuta MongoDB tenga acceso al directorio o a los directorios:
sudo chown -R mongod:mongod <directory> Si cambia el usuario que ejecuta el proceso de MongoDB, debe conceder al nuevo usuario acceso a estos directorios.
Configure SELinux si se requiere. Consulte Configurar SELinux.
Configure SELinux
Advertencia
Una política de SELinux configurada incorrectamente podría ser insegura o podría hacer que su instancia de mongod deje de funcionar.
Si SELinux está en modo enforcing, debe personalizar su política de SELinux para MongoDB
Permitir el acceso a
cgroupPermitir el acceso a
netstat
Permitir el acceso a cgroup
La política actual de SELinux no permite que el proceso de MongoDB acceda a /sys/fs/cgroup, lo cual es necesario para determinar la memoria disponible en su sistema. Si tiene la intención de ejecutar SELinux en el modo enforcing, deberá realizar el siguiente ajuste en su política de SELinux:
Asegúrese de que su sistema tenga instalado el paquete
checkpolicy:sudo yum install checkpolicy Cree un archivo de política personalizado
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 Una vez creado, compile y cargue el módulo de política personalizada ejecutando estos tres comandos:
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
El proceso de MongoDB ahora puede acceder a los archivos correctos con SELinux configurado en enforcing.
Permitir acceso a netstat para FTDC
La política actual de SELinux no permite que el proceso de MongoDB abra y lea /proc/net/netstat, lo cual es necesario para la Full Time Diagnostic Data Capture (FTDC). Si se pretende ejecutar SELinux en modo enforcing, se deberá realizar el siguiente ajuste en la política de SELinux:
Asegúrese de que su sistema tenga instalado el paquete
checkpolicy:sudo yum install checkpolicy Cree un archivo de política personalizado
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 Una vez creado, compile y cargue el módulo de política personalizada ejecutando estos tres comandos:
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
Uso de una ruta de directorio personalizada de MongoDB
Actualice la política de SELinux para permitir que el servicio
mongoduse el nuevo directorio:sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*> Especifique uno de los siguientes tipos según corresponda:
mongod_var_lib_tpara el directorio de datosmongod_log_tpara el directorio de archivos de registromongod_var_run_tpara el directorio de archivos pid
Nota
Asegúrese de incluir el
.*al final del directorio.Actualice la política de usuario de SELinux para el nuevo directorio:
sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory> Especifique uno de los siguientes tipos según corresponda:
mongod_var_lib_tpara el directorio de datosmongod_log_tpara el directorio de registromongod_var_run_tpara el directorio de archivos pid
Aplique las políticas actualizadas de SELinux al directorio:
sudo restorecon -R -v </some/MongoDB/directory>
Por ejemplo:
Tip
Asegúrese de incluir el .* al final del directorio para las operaciones de semanage fcontext.
Si utiliza una ruta de datos de MongoDB que no sea por defecto de
/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' Si utiliza un directorio de registros de MongoDB no por defecto de
/mongodb/log(por ejemplo, si la ruta de entrada de registro es/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'
Uso de un puerto personalizado de MongoDB
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>
Importante
Además de lo anterior, si SELinux está en modo enforcing, también deberá personalizar aún más su política de SELinux para cada una de estas situaciones:
Se está utilizando una ruta de directorio personalizada en lugar de usar la ruta por defecto para cualquier combinación de:
Está utilizando un puerto personalizado en lugar de utilizar el puerto MongoDB por defecto.
Si ha realizado otras modificaciones en su instalación de MongoDB.
Procedimiento
Se deben seguir estos pasos para ejecutar MongoDB Enterprise Edition en el sistema. Estas instrucciones asumen que se está utilizando la configuración por defecto.
Cree los directorios de datos y de registros.
Cree un directorio donde la instancia de MongoDB almacene sus datos. Por ejemplo:
sudo mkdir -p /var/lib/mongo
Cree un directorio donde la instancia de MongoDB almacene su registro. Por ejemplo:
sudo mkdir -p /var/log/mongodb
El usuario que inicia el proceso de MongoDB debe tener permisos de lectura y escritura en estos directorios. Por ejemplo, si se tiene la intención de ejecutar MongoDB como el propio usuario:
sudo chown `whoami` /var/lib/mongo # Or substitute another user sudo chown `whoami` /var/log/mongodb # Or substitute another user
Verifica que MongoDB se haya iniciado correctamente.
Verifique que MongoDB haya comenzado correctamente comprobando la salida del proceso para la siguiente línea en el archivo de registro /var/log/mongodb/mongod.log:
[initandlisten] waiting for connections on port 27017
Puede que vea advertencias no críticas en la salida del proceso. Siempre que vea la línea de registro que se muestra arriba, puede ignorar con seguridad estas advertencias durante su evaluación inicial de MongoDB.
Comienza a utilizar MongoDB.
Inicia una sesiónmongosh en la misma máquina host que el mongod. Puedes ejecutar mongosh sin opciones de línea de comandos para conectarse a un mongod que se ejecuta en su localhost con el puerto por defecto 27017.
mongosh
Para obtener más información sobre cómo conectarse usando mongosh, por ejemplo, para conectarse a una instancia mongod que se ejecuta en un host y/o puerto diferente, consulta la documentación de mongosh.
Para ayudarle a empezar a usar MongoDB, MongoDB provee Guías para comenzar para varias ediciones de controladores. Para la documentación del controlador, consulte Comience a desarrollar con MongoDB.
Información Adicional
Vinculación a localhost por defecto
Por defecto, MongoDB se inicia con bindIp establecido en 127.0.0.1, que se vincula a la interfaz de red localhost. Esto significa que mongod solo puede aceptar conexiones de clientes que se ejecutan en el mismo equipo. Los clientes remotos no podrán conectarse a mongod, y mongod no podrá inicializar un set de réplicas a menos que este valor se establezca en una interfaz de red válida.
Este valor se puede configurar:
en el archivo de configuración de MongoDB con
bindIp, omediante el argumento de la línea de comandos
--bind_ip
Advertencia
Antes de vincular la instancia a una dirección IP de acceso público, se debe asegurar el clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, se debe consultar Checklist de seguridad para implementaciones autogestionadas. Como mínimo, se debe considerar habilitar la autenticación y reforzar la infraestructura de red.
Para obtener más información sobre cómo configurar bindIp, consulta Vinculación de IP en Implementaciones Autogestionadas.