Docs Menu
Docs Home
/ /
Instale en Red Hat
/ / / / / /

Instale MongoDB Community en Red Hat o CentOS usando .tgz Tarball

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 manualmente MongoDB 6.0 Community Edition en Red Hat Enterprise Linux, CentOS Linux u Oracle Linux []1 mediante un paquete descargado. .tgz archivo tar.

Este tutorial instala MongoDB 6.0 Community Edition. Para instalar una versión diferente de MongoDB Community, utilice el menú desplegable de versiones en la esquina superior izquierda de esta página para seleccionar la documentación correspondiente.

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.

➤ Ver Instale MongoDB usando el Administrador de paquetes yum para obtener instrucciones.

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.

Nota

EOL Notice

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

  • MongoDB 5.0 Community Edition elimina la compatibilidad con RHEL/CentOS/Oracle 7 en s390x

MongoDB 6.0 Community 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 / AlmaLinux 9 (A partir de 6.0.4 MongoDB)

  • RHEL/CentOS/Oracle/Rocky/AlmaLinux 8

  • RHEL/CentOS/Oracle 7

MongoDB 6.0 Community Edition también admite la arquitectura ARM64 en RHEL / CentOS / Oracle / Rocky / AlmaLinux.8

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.

Utilice el siguiente comando para instalar las dependencias necesarias para el tarball .tgz de MongoDB Community:

sudo yum install libcurl openssl xz-libs

Siga estos pasos para instalar manualmente MongoDB Community Edition desde el .tgz.

1

Después de haber instalado los paquetes previos requeridos, descargue el tarball tgz de MongoDB Community desde el siguiente enlace:

MongoDB Download Center

  1. En el Version En el menú desplegable, seleccione la versión de MongoDB que desea descargar.

  2. En el menú desplegable Platform, seleccione su versión del sistema operativo y la arquitectura.

  3. En el menú desplegable Package, selecciona tgz.

  4. Haga clic en Download.

2

Por ejemplo, desde un shell del sistema, puedes extraer usando el comando tar:

tar -zxvf mongodb-linux-*-6.0.26.tgz
3

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/
4

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.

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)

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

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 cgroup

  • Permitir el acceso a netstat

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

    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>

    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>

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.

Se debe seguir estos pasos para ejecutar MongoDB Community Edition en el sistema. Estas instrucciones asumen que se está utilizando la configuración por defecto.

1

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
2

Para ejecutar MongoDB, ejecute el proceso mongod en el prompt del sistema.

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

Para obtener detalles sobre las opciones de línea de comandos --dbpath y --logpath, consulte Opciones.

3

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.

4

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.

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.

Volver

Instale en Red Hat

En esta página