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