Docs Menu
Docs Home
/ /
Instale en Linux
/ / / / /

Instale MongoDB Enterprise Edition en Red Hat o CentOS

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.

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.

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.

Nota

EOL Notice

  • MongoDB 5.0 Enterprise Edition elimina el soporte para RHEL / CentOS / Oracle 6 en x86_64

  • MongoDB Enterprise Edition eliminó la compatibilidad con RHEL 7 /CentOS/Oracle PPC64LE entre las versiones 4.0 5.0y. Sin embargo, estas arquitecturas son compatibles con las 5.0 versiones.X.

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.

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.

Sigue estos pasos para instalar MongoDB Enterprise Edition usando el gestor de paquetes yum.

1

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.

2

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

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.

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 utilizar un directorio de datos y/o un directorio de registros diferentes a los directorios por defecto:

  1. Cree el nuevo directorio o directorios.

  2. Edite el archivo de configuración /etc/mongod.conf y modifique los siguientes campos en consecuencia:

    • storage.dbPath para especificar una nueva ruta de directorio de datos (p. ej., /some/data/directory)

    • systemLog.path para especificar una nueva ruta de entrada de registro (por ejemplo, /some/log/directory/mongod.log)

  3. 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.

  4. Configure SELinux si se requiere. Consulte Configurar 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:

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:

  1. Asegúrese de que su sistema tenga instalado el paquete checkpolicy:

    sudo yum install checkpolicy
  2. 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
  3. 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.

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:

  1. Asegúrese de que su sistema tenga instalado el paquete checkpolicy:

    sudo yum install checkpolicy
  2. 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
  3. 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:

  1. Actualice la política de SELinux para permitir que el servicio mongod use 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_t para el directorio de datos

    • mongod_log_t para el directorio de archivos de registro

    • mongod_var_run_t para el directorio de archivos pid

    Nota

    Asegúrese de incluir el .* al final del directorio.

  2. 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_t para el directorio de datos

    • mongod_log_t para el directorio de registro

    • mongod_var_run_t para el directorio de archivos pid

  3. 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'
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.

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ón

  • init - selecciona la pestaña System V Init (service) a continuación.


1

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.

2

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
3

Según sea necesario, puedes detener el proceso mongod ejecutando el siguiente comando:

sudo systemctl stop mongod
4

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.

5

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.

1

Puedes iniciar el proceso mongod emitiendo el siguiente comando:

sudo service mongod start
2

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
3

Según sea necesario, puedes detener el proceso mongod ejecutando el siguiente comando:

sudo service mongod stop
4

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.

5

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.

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.

1

Detenga el proceso de mongod emitiendo el siguiente comando:

sudo service mongod stop
2

Remueva cualquier paquete de MongoDB que haya instalado anteriormente.

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

Remueva bases de datos de MongoDB y entradas de registro.

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

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, o

  • mediante 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.

MongoDB Enterprise Edition está disponible en su propio repositorio dedicado, y contiene los siguientes paquetes oficialmente soportados:

Nombre del paquete
Descripción

mongodb-enterprise

Un metapackage que instala automáticamente los paquetes de componentes enumerados a continuación.

mongodb-enterprise-database

Un metapackage que instala automáticamente los paquetes de componentes enumerados a continuación.

Nombre del paquete
Descripción

mongodb-enterprise-server

Contiene el mongod demonio y los scripts de configuración y de inicio asociados.

mongodb-enterprise-mongos

Contiene el demonio mongos.

mongodb-enterprise-shell

Contiene el mongo shell.

mongodb-enterprise-cryptd

Contiene el binario mongocryptd

mongodb-mongosh

Contiene el MongoDB Shell (mongosh).

mongodb-enterprise-tools

Un metapackage que instala automáticamente los paquetes de componentes enumerados a continuación:

Nombre del paquete
Descripción

mongodb-database-tools

Contiene las siguientes herramientas de la base de datos MongoDB:

mongodb-enterprise-database-tools-extra

Contiene las siguientes herramientas de soporte de MongoDB:

Volver

Instale en Linux

En esta página