MongoDB es de código abierto, una de las bases de datos orientadas a documentos (NoSQL) más populares. En MongoDB, los datos se almacenan en documentos similares a JSON con esquemas dinámicos, a diferencia de las tablas y filas de una base de datos relacional.
MongoDB está diseñado teniendo en cuenta tanto la escalabilidad como la agilidad del desarrollador. Está disponible para Windows, Linux, OS X, Solaris y FreeBSD.
En esta publicación, veremos cómo instalar MongoDB en CentOS 8 / RHEL 8.
MongoDB Inc lanza dos ediciones de servidor de MongoDB para sus usuarios finales.
Aquí veremos cómo instalar la edición comunitaria de MongoDB. El servidor de la comunidad MongoDB se publica bajo la Licencia pública del lado del servidor (SSPL).
MongoDB Inc proporciona un repositorio de software dedicado para descargar e instalar la base de datos de MongoDB.
Agregue el repositorio MongoDB en su sistema.
Una vez que haya agregado el repositorio de MongoDB, use el comando dnf para instalar MongoDB.
mongob-org (Metapaquete que se instala debajo de los componentes) |
mongodb-org-servidor | Paquete de servidor |
mongodb-org-mongos | Demonio compartido |
mongodb-org-shell | Interfaz de línea de comandos |
mongodb-org-herramientas | Herramientas MongoDB (importar, exportar, restaurar, volcar y otras herramientas) |
SELinux
Para ejecutar MongoDB con SELinux habilitado (modo obligatorio), siga las instrucciones para personalizar la política de SELinux para MongoDB. Omita los pasos a continuación, en caso de que haya desactivado SELinux en su sistema.
Instale el paquete checkpolicy con el comando dnf.
dnf install -y checkpolicy
Cree un archivo de política de SELinux para permitir que el proceso de MongoDB acceda al cgroup para determinar la memoria disponible en su sistema.
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
Compile y cargue nuestro módulo de política SELinux personalizado usando los siguientes 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
semodule -i mongodb_cgroup_memory.pp
Pasos posteriores a la instalación
Configuración de Ulimit
De forma predeterminada, la mayoría de los sistemas tienen un límite establecido para la cantidad de procesos, archivos abiertos, memoria, etc. que puede tener un usuario en particular (fid de aplicación), y estos límites pueden causar problemas en la operación de MongoDB.
MongoDB ahora proporciona configuraciones de límite recomendadas en el archivo de unidad systemd. Por lo tanto, no necesitamos establecer los límites manualmente.
Habilitar control de acceso
Si toma bases de datos relacionales como MySQL o PostgreSQL, etc. viene con al menos algún nivel de autenticación para el cual los usuarios deben autenticarse para realizar actividades de base de datos.
Pero, en el caso de MongoDB, no es así. Todos los usuarios pueden acceder a cualquier base de datos y realizar cualquier operación sin autenticación.
Para resolver este problema, primero cree un usuario administrador para la operación diaria.
Luego, debemos habilitar el control de acceso editando el archivo de configuración de MongoDB.
vi /etc/mongod.conf
Agregue las siguientes líneas.
security:
authorization: enabled
Desactivar páginas enormes
Las páginas grandes transparentes a menudo crean problemas de rendimiento para las cargas de trabajo de la base de datos. Por lo tanto, MongoDB recomienda deshabilitar las páginas grandes para obtener el mejor rendimiento.
Cree un directorio, coloque un archivo de perfil ajustado para deshabilitar las páginas grandes.
mkdir /etc/tuned/virtual-guest-no-thp
Crea un archivo.
vi /etc/tuned/virtual-guest-no-thp/tuned.conf
Coloque las siguientes líneas en el archivo capaz.
[main]
include=virtual-guest
[vm]
transparent_hugepages=never
Habilite nuestro perfil recién creado.
tuned-adm profile virtual-guest-no-thp
Iniciar servicio MongoDB
Para iniciar el servicio MongoDB, ejecute:
systemctl start mongod
Para verificar el estado del servicio MongoDB, ejecute:
systemctl status mongod
Salida:● mongod.service - Servidor de base de datos MongoDB Cargado:cargado (/usr/lib/systemd/system/mongod.service; habilitado; valor predeterminado del proveedor:deshabilitado) Activo:activo (en ejecución) desde el lunes 10 de agosto de 2020 13:10:15 EDT; Hace 11 segundos Documentos:https://docs.mongodb.org/manual Proceso:3147 ExecStart=/usr/bin/mongod $OPCIONES (código=salido, estado=0/ÉXITO) Proceso:3145 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (código=salido, estado=0/ÉXITO) Proceso:3143 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (código=salido, estado=0/SU> Proceso :3141 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (código=salido, estado=0/ÉXITO) PID principal:3149 (mongod) Memoria:61,1 M CGroup:/system.slice/mongod.service └─3149 /usr/bin/mongod -f /etc/mongod.conf10 de agosto 13:10:14 centos8.itzgeek.local systemd[1]:Iniciando el servidor de base de datos MongoDB... 10 de agosto 13:10:14 centos8.itzgeek .local mongod[3147]:a punto de bifurcar el proceso secundario, esperando hasta el servicio> 10 de agosto 13:10:14 centos8.itzgeek.local mongod[3147]:proceso bifurcado:3149 10 de agosto 13:10:15 centos8.itzgeek.local mongod [3147]:el proceso secundario se inició correctamente, el padre salió> 10 de agosto 13:10:15 centos8.itzgeek.local systemd[1]:se inició el servidor de base de datos MongoDB.
Compruebe la versión de MongoDB.
mongod --version
Salida:versión de base de datos v4.4.0Información de compilación:{ "versión":"4.4.0", "gitVersion":"563487e100c4215e2dce98d0af2a6a5a2d67c5cf", "openSSLVersion":"OpenSSL 1.1.1c FIPS 28 de mayo de 2019", "módulos" :[], "asignador":"tcmalloc", "entorno":{ "distmod":"rhel80", "distarch":"x86_64", "target_arch":"x86_64" }}
Use el comando netstat para verificar si MongoDB está escuchando en el puerto 27017.
netstat -antup | grep -i 27017
Salida:tcp 0 0 127.0.0.1:27017 0.0.0.0:* ESCUCHAR 6898/mongod
LEA: Comando netstat no encontrado en CentOS 7 / RHEL 7 – Solución rápida
Acceder a MongoDB
Conéctese al shell de MongoDB ingresando el siguiente comando.
mongo
Salida:MongoDB shell versión v4.4.0conectando a:mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodbSesión implícita:session { "id" :UUID("3ecdceaa-5050-41a3-96e3-8f821362523b ") }Versión del servidor MongoDB:4.4.0 Bienvenido al shell de MongoDB. Para obtener ayuda interactiva, escriba "ayuda". Para obtener una documentación más completa, consulte https://docs.mongodb.com/Questions? Pruebe los foros de la comunidad de desarrolladores de MongoDB https://community.mongodb.com>
Conclusión
Eso es todo. Espero que, a estas alturas, tenga MongoDB en su sistema CentOS 8/RHEL 8. Comparta sus comentarios en la sección de comentarios.