Nota
MongoDB Atlas
MongoDB Atlas es una opción de servicio MongoDB alojado en la nube que no requiere instalación y ofrece un nivel gratuito para comenzar.
Overview
Utilice este tutorial para instalar MongoDB 5.0 Enterprise Edition en Red Hat Enterprise Linux, CentOS Linux u Oracle Linux []1 mediante el yum gestor de paquetes
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 5.0 Enterprise Edition. Para instalar una versión diferente de MongoDB Enterprise, utilice el menú desplegable de versiones en la esquina superior izquierda de esta página para seleccionar la documentación correspondiente.
Considerations
Soporte de plataforma
Nota
EOL Notice
MongoDB 5.0 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/Oracle/Rocky/Alma 8
RHEL/CentOS/Oracle 7
MongoDB solo soporta las versiones de 64 bits de estas plataformas.
MongoDB 5.0 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
Sigue estos pasos para instalar MongoDB Enterprise Edition usando el gestor de paquetes yum.
Configura el repositorio.
Cree un archivo /etc/yum.repos.d/mongodb-enterprise-5.0.repo para que pueda instalar MongoDB Enterprise directamente usando yum:
[mongodb-enterprise-5.0] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/8/mongodb-enterprise/5.0/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-5.0.asc
[mongodb-enterprise-5.0] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/7/mongodb-enterprise/5.0/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-5.0.asc
Nota
Si tienes un archivo mongodb-enterprise.repo en este directorio de una instalación anterior de MongoDB, debes removerlo. Utiliza el archivo mongodb-enterprise-5.0.repo de arriba para instalar MongoDB 5.0.
También se pueden descargar los archivos de .rpm directamente del repositorio de MongoDB. Las descargas están organizadas por versión de Red Hat / CentOS (por ejemplo, 9), luego la versión de lanzamiento de MongoDB (p. ej., 5.0), luego arquitectura (p. ej., x86_64).
Antes de MongoDB,5.0 las versiones impares,4.3 como, eran versiones de desarrollo. A partir de MongoDB,5.1 MongoDB publica versiones rápidas trimestrales. Para más información sobre las diferencias entre las versiones rápidas y las de soporte a largo plazo, consulte Control de versiones de MongoDB.
Instala MongoDB Enterprise servidor.
Para instalar la última versión estable de MongoDB Enterprise 5.0, emita el siguiente comando:
sudo yum install -y mongodb-enterprise
Para instalar una versión específica, debe especificar cada paquete de componente individualmente junto con el número de versión, como en el siguiente ejemplo:
sudo yum install -y mongodb-enterprise-5.0.29 mongodb-enterprise-database-5.0.29 mongodb-enterprise-server-5.0.29 mongodb-enterprise-shell-5.0.29 mongodb-enterprise-mongos-5.0.29 mongodb-enterprise-tools-5.0.29
Nota
Aunque se puede especificar cualquier versión disponible de MongoDB Enterprise, yum actualiza los paquetes cuando hay una versión más nueva disponible. Para evitar actualizaciones no deseadas, fijar el paquete añadiendo la siguiente directiva de exclude a su archivo de /etc/yum.conf:
exclude=mongodb-enterprise,mongodb-enterprise-database,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools
Ejecute MongoDB Enterprise Edition
Requisitos previos
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)
El administrador de paquetes crea los directorios por defecto durante la instalación. El propietario y el nombre del grupo son mongod.
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
Importante
Si SELinux está en modo enforcing, debe personalizar su política de SELinux para MongoDB realizando los siguientes dos ajustes de política:
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
Importante
Además de lo anterior, también necesitará personalizar aún más su política de SELinux en los siguientes dos casos si SELinux está en modo enforcing:
Está utilizando una ruta de directorio personalizada en lugar de usar la
dbPathruta predeterminada,systemLog.pathopidFilePathen RHEL.7 0 o posterior, y/oEstás utilizando un puerto personalizado en lugar de utilizar los puertos MongoDB predeterminados.
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.*> donde 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> donde 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>
Nota
Es posible que sea necesario reiniciar para que se reconozca el puerto mongod personalizado.
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.
Sistema de inicialización
Para ejecutar y gestionar el proceso de mongod, se usará el sistema de inicialización incorporado del sistema operativo. Las versiones recientes de Linux tienden a usar systemd (que utiliza el comando systemctl), mientras que las versiones más antiguas de Linux tienden a usar System V init (que utiliza el comando service).
Si no está seguro de qué sistema de inicialización utiliza su plataforma, ejecute el siguiente comando:
ps --no-headers -o comm 1
Luego, seleccione la pestaña adecuada a continuación según el resultado:
systemd- selecciona la pestaña systemd (systemctl) a continuacióninit- selecciona la pestaña System V Init (service) a continuación.
Inicia MongoDB.
Puedes iniciar el proceso mongod emitiendo el siguiente comando:
sudo systemctl start mongod
Si recibe un error similar al siguiente al iniciar mongod:
Failed to start mongod.service: Unit mongod.service not found.
Ejecute primero el siguiente comando:
sudo systemctl daemon-reload
Luego ejecuta de nuevo el comando de inicio mencionado arriba.
Verifica que MongoDB se haya iniciado correctamente.
Puedes verificar que el proceso mongod ha comenzado correctamente emitiendo el siguiente comando:
sudo systemctl status mongod
Puedes asegurarte opcionalmente de que MongoDB se inicie después de un reinicio del sistema emitiendo el siguiente comando:
sudo systemctl enable mongod
Detenga MongoDB.
Según sea necesario, puedes detener el proceso mongod ejecutando el siguiente comando:
sudo systemctl stop mongod
Reinicia MongoDB.
Puedes reiniciar el proceso mongod emitiendo el siguiente comando:
sudo systemctl restart mongod
Puedes seguir el estado del proceso para detectar errores o mensajes importantes observando la salida en el archivo /var/log/mongodb/mongod.log.
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.
Inicia MongoDB.
Puedes iniciar el proceso mongod emitiendo el siguiente comando:
sudo service mongod start
Verifica que MongoDB haya iniciado correctamente
Puedes verificar que el proceso mongod se ha iniciado correctamente comprobando el contenido de la entrada de registro en /var/log/mongodb/mongod.log para una lectura de línea
[initandlisten] waiting for connections on port <port>
donde <port> es el puerto configurado en /etc/mongod.conf, 27017 por defecto.
Puedes asegurarte opcionalmente de que MongoDB se inicie después de un reinicio del sistema emitiendo el siguiente comando:
sudo chkconfig mongod on
Detenga MongoDB.
Según sea necesario, puedes detener el proceso mongod ejecutando el siguiente comando:
sudo service mongod stop
Reinicia MongoDB.
Puedes reiniciar el proceso mongod emitiendo el siguiente comando:
sudo service mongod restart
Puedes seguir el estado del proceso para detectar errores o mensajes importantes observando la salida en el archivo /var/log/mongodb/mongod.log.
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.
Desinstale MongoDB
Para remover completamente MongoDB de un sistema, debe remover las aplicaciones de MongoDB, los archivos de configuración y cualquier directorio que contenga datos y registros. La siguiente sección le presenta una guía a través de los pasos necesarios.
Advertencia
Este proceso completamente removerá MongoDB, su configuración y todas las bases de datos. Este proceso no es reversible, así que asegúrese de que toda su configuración y datos estén respaldados antes de continuar.
Detenga MongoDB.
Detenga el proceso de mongod emitiendo el siguiente comando:
sudo service mongod stop
Información Adicional
Vinculación a localhost por defecto
By default, MongoDB launches with bindIp set to 127.0.0.1, which binds to the localhost network interface. This means that the mongod can only accept connections from clients that are running on the same machine. Remote clients will not be able to connect to the mongod, and the mongod will not be able to initialize a replica set unless this value is set to a valid network interface which is accessible from the remote clients.
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 una dirección IP que no sea local (por ejemplo, de acceso público), asegúrese de proteger su clúster contra accesos no autorizados. Para obtener una lista completa de recomendaciones de seguridad, consulte la Lista de verificación de seguridad para implementaciones autogestionadas. Como mínimo, considere 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.
Paquetes de MongoDB Enterprise Edition
MongoDB Enterprise Edition está disponible en su propio repositorio dedicado, y contiene los siguientes paquetes oficialmente soportados:
Nombre del paquete | Descripción | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Un | ||||||||||
| Un
| ||||||||||
| Contiene el MongoDB Shell ( | ||||||||||
| Un
|