Cómo instalar y configurar MongoDB en CentOS 8

MongoDB es una base de datos NoSQL que proporciona alto rendimiento, alta disponibilidad y escalado automático. Base de datos NoSQL significa que, a diferencia de MySQL o PostgreSQL, no admite SQL (Structured Query Language) para recuperar o manipular los datos almacenados.

MongoDB no almacena los datos en tablas. En su lugar, almacena los datos en una estructura de «documento» similar a JSON (en MongoDB se llama BSON). MongoDB fue presentado por primera vez en 2009, hace seis años, y actualmente es desarrollado por MongoDB MongoDB Inc.

En este tutorial, te mostraremos cómo instalar y configurar MongoDB 4.4 en el servidor CentOS 8. Instalaremos MongoDB, editaremos algunas configuraciones del sistema para corregir algún error en MongoDB, crearemos el usuario administrador para MongoDB, y luego la autenticación de MongoDB.

Requisitos previos

  • Servidor CentOS 8
  • Privilegios de root
  • Entender los comandos básicos de Linux/CentOS

¿Qué vamos a hacer?

  • Añadir el repositorio de MongoDB
  • Instalar MongoDB en CentOS 8
  • Corregir algunos errores de MongoDB
  • Crear un usuario administrador de MongoDB
  • Habilitar la autenticación de MongoDB
  • Probar

Paso 1 – Añadir el repositorio de MongoDB

En primer lugar, inicia sesión en tu servidor utilizando tu usuario y contraseña SSH, y luego actualiza todos los paquetes a la última versión utilizando el siguiente comando.

ssh [email protected]
sudo dnf update

Ahora ve al directorio ‘/etc/yum.repos.d’ y crea un nuevo archivo de repositorio ‘mongodb-4.4.repo’ utilizando el editor vim.

cd /etc/yum.repos.d/
vim mongodb-4.4.repo

Pega en él el siguiente repositorio de MongoDB 4.4.

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

Guarda y cierra.

A continuación, comprueba todos los repositorios disponibles en el sistema CentOS utilizando el comando dnf que aparece a continuación.

sudo dnf repolist

A continuación se muestra el resultado que obtendrás.

Añadir repositorio MongoDB para CentOS 8

Como resultado, el repositorio de MongoDB se ha añadido al sistema CentOS 8.

Paso 2 – Instalar el servidor de bases de datos MongoDB NoSQL

Para instalar la base de datos MongoDB NoSQL, ejecuta el comando dnf que aparece a continuación.

sudo dnf install -y mongodb-org

Una vez completada la instalación, inicia el servicio MongoDB y añádelo al arranque del sistema.

systemctl start mongod
systemctl enable mongod

El servicio MongoDB está en marcha, compruébalo con el siguiente comando.

ss -plnt
systemctl status mongod

A continuación se muestra el resultado que obtendrás.

Comprobar el estado del servicio MongoDB

Como se puede ver, el servicio MongoDB se está ejecutando en el puerto TCP por defecto ‘27017’.

Paso 3 – Corregir el error de MongoDB

En este momento, el servicio MongoDB está en funcionamiento en el sistema CentOS 8. Y para este paso, mejoraremos nuestra instalación de MongoDB cambiando algunas configuraciones del sistema para solucionar algunos errores.

– Desactivar las páginas transparentes de gran tamaño (THP) mediante Tuned

Para aumentar el rendimiento de la instalación de MongoDB, necesitamos desactivar las THP o Páginas Enormes Transparentes en nuestro sistema. Y en el caso del sistema CentOS, puedes desactivar THP mediante la configuración del perfil tuned.

Crea un nuevo directorio ‘/etc/tuned/virtual-guest-no-thp’ para el perfil ajustado personalizado llamado ‘virtual-guest-no-thp’.

sudo mkdir -p /etc/tuned/virtual-guest-no-thp

A continuación, crea la configuración ‘tuned.conf’ en el directorio ‘/etc/tuned/virtual-guest-no-thp/’ utilizando el editor vim.

vim /etc/tuned/virtual-guest-no-thp/tuned.conf

Pega en él la siguiente configuración.

[main]
include=virtual-guest

[vm]
transparent_hugepages=never

Guarda y cierra.

Ahora activa el nuevo perfil personalizado ‘virtual-guest-no-thp’ utilizando el comando tuned-adm que aparece a continuación.

sudo tuned-adm profile virtual-guest-no-thp

Para verificar el estado de THP en el estado de Linux, comprueba utilizando el siguiente comando.

cat /sys/kernel/mm/transparent_hugepage/enabled

Asegúrate de que obtienes la respuesta ‘[nunca]’ como se indica a continuación.

Desactivar THP con Tuned en CentOS 8

Como se puede ver, se ha desactivado la función de Páginas Enormes Transparentes en el sistema CentOS a través del perfil Tuned.

– Configurar el Ulimit de UNIX

El Ulimit o límite de usuario se utiliza para definir qué cantidad de recursos del sistema puede utilizar un usuario. Para mejorar y potenciar el rendimiento de MongoDB, necesitas aumentar la configuración de ulimit para el servicio MongoDB.

Ahora ve al directorio ‘/etc/security/limits.d/’ y crea una nueva configuración ‘monogd.conf’ utilizando el editor vim.

cd /etc/security/limits.d/
vim mongod.conf

Pega en ella la siguiente configuración.

mongod soft nproc 64000
mongod hard nproc 64000
mongod soft nofile 64000
mongod hard nofile 64000

Guarda y cierra.

Para aplicar la nueva configuración, ejecuta el siguiente comando.

sysctl -p

Ahora asegúrate de que no hay ningún error y de que la configuración de Ulimit para MongoDB se ha completado.

– Desactivar el aviso de monitorización de la nube de MongoDB (opcional)

Esta etapa es opcional. Puedes ignorar la información sobre el servicio de Monitorización de la Nube de MongoDB cuando te conectes al shell de MongoDB.

Para desactivar esta advertencia, entra en el shell de MongoDB utilizando el comando «mongo» que aparece a continuación.

mongo

Ahora ejecuta la siguiente consulta.

db.disableFreeMonitoring()

Escribe«exit» para salir de la shell de MongoDB y ahora reinicia tu servidor.

sudo reboot

Y como resultado, el aviso de los servicios de MongoDB Cloud Monitoring ha desaparecido.

Configurar ulimit y desactivar la monitorización de la nube de mongodb

Paso 4 – Crear el usuario administrador MongoDB

En este paso, crearemos el usuario administrador para MongoDB a través del shell ‘mongo’.

Accede al shell de MongoDB utilizando el comando ‘mongo’ que aparece a continuación.

mongo

Ahora cambia a la base de datos ‘admin’.

use admin

A continuación, crea el nuevo usuario ‘admin’ con la contraseña ‘hakasepasswordformongodbadmin’ utilizando la siguiente consulta.

db.createUser(
  {
    user: "admin",
    pwd: "hakasepasswordformongodbadmin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Una vez creado el usuario en MongoDB, comprueba todos los usuarios en MongoDB utilizando la siguiente consulta.

show users

A continuación se muestra el resultado que obtendrás.

Crear usuario administrador MongoDB

Como resultado, el usuario administrador de MongoDB ha sido creado, escribe ‘exit’ para salir del shell de MongoDB.

Paso 5 – Habilitar la autenticación de MongoDB

Después de crear el usuario administrador, vamos a habilitar la autenticación de MongoDB para evitar que otro usuario sin privilegios suficientes pueda ver los datos de la base de datos.

Para habilitar la autenticación de MongoDB, edita la configuración ‘/etc/mongod.conf’ utilizando el editor vim.

vim /etc/mongod.conf

Descomenta la opción ‘security’ y añade la configuración como se indica a continuación.

security
    authorization: "enabled"

Guarda y cierra.

A continuación, reinicia el servicio MongoDB para aplicar la nueva configuración.

systemctl restart mongod

Asegúrate de que no hay ningún error y de que la autenticación de MongoDB se ha activado.

Activar la autenticación de MongoDB

Paso 6 – Prueba

Para probar nuestra instalación y configuración de la autenticación de MongoDB, puedes comprobarlo a través del shell de MongoDB.

Accede al shell de MongoDB utilizando el siguiente comando.

mongo

A continuación, cambia a la base de datos ‘admin’ y muestra todos los usuarios en MongoDB utilizando las siguientes consultas.

use admin
show users

A continuación se muestra el resultado que obtendrás.

Prueba de autentificación de MongoDB

Como se puede ver, no estás autorizado a mostrar la lista de todos los usuarios en la base de datos ‘admin’.

A continuación, autentifica al servidor MongoDB utilizando la siguiente consulta.

db.auth('admin', 'hakasepasswordformongodbadmin')

Ahora asegúrate de que obtienes el número de respuesta ‘1’, lo que significa que la autenticación es correcta.

A continuación, puedes mostrar y comprobar todos los usuarios disponibles en tu servidor MongoDB utilizando la siguiente consulta.

show users

Y obtendrás el administrador de MongoDB que acabamos de crear en la parte superior.

Prueba de autentificación de MongoDB

Como resultado, la instalación y configuración del servidor de bases de datos MongoDB NoSQL en el sistema CentOS 8 se ha completado con éxito.

También te podría gustar...