Cómo instalar MongoDB en CentOS 7

En este artículo explicaremos cómo instalar MongoDB en CentOS 7 paso a paso, un servicio de bases de datos NoSQL cada vez más popular en el desarrollo web, que podrás hacer funcionar en tu servidor o VPS CentOS en unos instantes.

Antes de instalar MongoDB en CentOS 7

Si quieres seguir esta breve guía de instalación de MongoDB en CentOS 7 sólo tienes que comprobar que cumples estos mínimos requerimientos:

  • Una instalación actualizada de CentOS 7.
  • Acceso a consola con un usuario con permisos de sudo, o el mismo root.
  • Conexión a Internet.

Cómo instalar MongoDB en CentOS 7

Si quieres instalar MongoDB en CentOS 7 comprobarás que los únicos paquetes disponibles pertenecen al repositorio EPEL y corresponden a la versión 2.6, bastante obsoletos teniendo en cuenta que las últimas versiones oficiales son las 4.2.x (en el momento de redactar este tutorial).

Por ello es mejor instalar el repositorio oficial de MongoDB en CentOS 7 para tenerlo como fuente de estos paquetes y futuras actualizaciones.

Empezaremos creando un nuevo archivo de repositorio:

~$ sudo nano /etc/yum.repos.d/mongodb.org-4.2.repo

El contenido será el siguiente:

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

Guardados los cambios, actualizaremos las listas de paquetes:

~$ sudo yum update

El paquete que necesitamos es mongodb-org, que podemos instalar con yum:

~$ sudo yum install -y mongodb-org

Tras la descarga e instalación del paquete mongodb-org y sus dependencias se crea un nuevo servicio en CentOS 7, mongod.service o mongod, que no queda en ejecución ni tampoco habilitado.

Puedes arrancar por primera vez el servicio mongod con systemctl:

~$ sudo systemctl start mongod

Y si quieres tener el servicio MongoDB siempre disponible y que inicie automáticamente con CentOS 7, lo habilitaremos también con systemctl:

~$ sudo systemctl enable mongod

Puedes comprobar en cualquier momento el estado del servicio MongoDB en CentOS 7 con el comando systemctl status mongod:

como instalar mongodb en centos 7

Comprobamos que el servicio está en ejecución, a la espera de conexiones. Podemos conectar localmente usando el cliente de consola mongo:

~$ mongo
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("754942ba-b362-413a-9508-04dae156f746") }
MongoDB server version: 4.2.1
Server has startup warnings:
... I  CONTROL  [initandlisten]
... I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
... I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
... I  CONTROL  [initandlisten]
... I  CONTROL  [initandlisten]
... I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
... I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
... I  CONTROL  [initandlisten]
... I  CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
... I  CONTROL  [initandlisten] **        We suggest setting it to 'never'
... I  CONTROL  [initandlisten]
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

>

Bastante información de golpe, ¿no?

Cómo configurar MongoDB en CentOS 7

La última parte de todo el texto que acabamos de ver al conectar localmente a MongoDB con el cliente habla sobre un servicio que monitoriza nuestra actividad con fines estadísticos y de mejora del producto.

Si quieres activar este servicio, usa el siguiente comando:

> db.enableFreeMonitoring()

Pero si prefieres no activar ese servicio y que no aparezcan más estos avisos e información, lanza este comando:

> db.disableFreeMonitoring()

Cómo desactivar THP o Transparent Huge Pages en CentOS 7

Por otro lado nos econtramos con un par de alertas sobre THP o «Transparent Huge Pages«, en el que los valores de enabled y defrag son ambos always cuando lo recomendable por rendimiento es que fueran never:

~$ cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

Y:

~$ cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

Vamos a crear un servicio que desactive estos valores de THP:

~$ sudo nano /etc/systemd/system/disable-thp.service

El contenido será algo como esto:

[Unit]
Description=Desactivación de Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enable$

[Install]
WantedBy=multi-user.target

Ahora haremos que nuestro servicio esté disponible de inmediato:

~$ sudo systemctl daemon-reload

Como cualquier otro servicio podemos iniciarlo manualmente:

~$ sudo systemctl start disable-thp

Para ver si ha funcionado, podemos volver a comprobar los valores de THP:

~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

Y:

~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

Efectivamente, se han desactivado estos valores.

Para que MongoDB actulice esta información es necesario reiniciar el servicio mongod:

~$ sudo systemctl restart mongod

Podremos comprobar que el servicio ya no nos lanza estas alertas al iniciar la conexión:

~$ mongo
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("7dbb8058-ab5d-4de5-a19b-1202b8481332") }
MongoDB server version: 4.2.1
Server has startup warnings:
... I  CONTROL  [initandlisten]
... I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
... I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
... I  CONTROL  [initandlisten]
>

Si la máquina CentOS 7 va a hacer un uso intensivo y permanente de MongoDB, entonces será buena idea habilitar el servicio que desactiva THP:

~$ sudo systemctl enable disable-thp

Acceso remoto a MongoDB en CentOS 7

Para acceder remotamente al servicio MongoDB en CentOS 7 debemos editar la configuración del servicio:

~$ sudo nano /etc/mongod.conf

Buscaremos la directiva bindIp (importan las mayúsculas):

...
  bindIp: 127.0.0.1  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
...

Tal y como describe el comentario, sustituyendo el valor 127.0.0.1 por 0.0.0.0 dejará de ser un servicio local para convertirse en un servicio al que pueda conectarse remotamente:

...
  bindIp: 0.0.0.0
...

Guardados los cambios, habrá que reiniciar el servicio mongod:

~$ sudo systemctl restart mongod

Cómo configurar el firewall de CentOS 7 para MongoDB

Si tienes activado el firewall de CentOS 7, como ocurre por defecto, necesitarás añadir una regla para el puerto 27017 TCP en el que espera conexiones MongoDB:

~$ sudo firewall-cmd --permanent --add-service=mongodb

Aplicamos los cambios recargando la configuración del firewall:

~$ sudo firewall-cmd --reload

Ahora podremos conectar desde otro sistema que tenga instalado el cliente mongo añadiendo como parámetro la dirección de la máquina CentOS 7 en la que hemos instalado el servicio MongoDB.

como configurar mongodb en centos 7

Conclusión

Ahora que sabes cómo instalar y configurar MongoDB en CentOS 7 ya puedes empezar a trabajar con este servicio de bases de datos NoSQL en tu servidor o VPS.

Si te ha surgido alguna duda, pregunta, sugerencia, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya tienes el servicio funcionando gracias a esta guía de instalación y configuración de MongoDB en CentOS 7? Si es así y te apetece agradecérnoslo, cualquier mínima contribución ayuda al mantenimiento de este sitio y creación de nuevos tutoriales de CentOS 7 y MongoDB. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies