Tutorial

Cómo instalar MongoDB en Ubuntu 18.04

MongoDBNoSQLUbuntu 18.04

El autor seleccionó a Creative Commons Corporation para que recibiese una donación de $100 como parte del programa Write for DOnations.

Introducción

MongoDB es una base de datos de documentos gratuita y de código abierto utilizada comúnmente en las aplicaciones web modernas.

En este tutorial, instalará MongoDB, administrará su servicio y, de forma opcional, habilitará el acceso remoto.

Requisitos previos

Para completar este tutorial, necesitará lo siguiente:

Paso 1: Instalar MongoDB

En los repositorios oficiales de paquetes de Ubuntu se incluye una versión actualizada de MongoDB. Esto significa que podemos instalar los paquetes necesarios utilizando apt.

Primero, actualice la lista de paquetes para tener la versión más reciente de listados de repositorios:

  • sudo apt update

A continuación, instale el propio paquete de MongoDB:

  • sudo apt install -y mongodb

Con este comando. se instalan varios paquetes que contienen la versión estable más reciente de MongoDB, junto con herramientas de administración útiles para el servidor de MongoDB. El servidor de la base de datos se inicia de forma automática tras la instalación.

A continuación, comprobaremos que el servidor esté activo y funcione de forma correcta.

Paso 2: Comprobar el servicio y la base de datos

El proceso de instalación inició MongoDB de forma automática, pero verificaremos que el servicio se inicie y que la base de datos funcione.

Primero, compruebe el estado del servicio:

  • sudo systemctl status mongodb

Verá este resultado:

Output
mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago Docs: man:mongod(1) Main PID: 2312 (mongod) Tasks: 23 (limit: 1153) CGroup: /system.slice/mongodb.service └─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

Según systemd, el servidor MongoDB se encuentra activo y funcionando.

Podemos verificar esto en profundidad estableciendo conexión con el servidor de la base de datos y ejecutando un comando de diagnóstico.

Ejecute este comando:

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Con esto se mostrarán la versión actual de la base de datos, la dirección y el puerto del servidor, y el resultado del comando status:

Output
MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Un valor de 1 para el campo ok en la respuesta indica que el servidor funciona correctamente.

A continuación, veremos la forma de administrar la instancia del servidor.

Paso 3: Gestionar el servicio de MongoDB

MongoDB se instala como un servicio systemd. Esto significa que puede administrarlo utilizando comandos systemd estándares, junto con todos los demás servicios de sistema en Ubuntu.

Para verificar el estado del servicio, escriba lo siguiente:

  • sudo systemctl status mongodb

Puede detener el servidor en cualquier momento escribiendo lo siguiente:

  • sudo systemctl stop mongodb

Para iniciar el servidor cuando esté detenido, escriba lo siguiente:

  • sudo systemctl start mongodb

También puede reiniciar el servidor con un solo comando:

  • sudo systemctl restart mongodb

Por defecto, MongoDB se configura para iniciarse de forma automática con el servidor. Si desea desactivar el inicio automático, escriba lo siguiente:

  • sudo systemctl disable mongodb

Volver a habilitarlo es igualmente sencillo. Para hacerlo, utilice lo siguiente:

  • sudo systemctl enable mongodb

A continuación, ajustaremos la configuración del firewall para nuestra instalación MongoDB.

Paso 4: Ajustar el firewall (opcional)

Suponiendo que siguió las instrucciones del tutorial de configuración inicial para servidores para habilitar el firewall en su servidor, no será posible acceder al servidor de MongoDB desde Internet.

Si tiene intención de usar el servidor de MongoDB solo a nivel local con aplicaciones que se ejecuten en el mismo servidor, este es el ajuste recomendado y seguro. Sin embargo, si desea poder conectarse con su servidor MongoDB desde Internet, deberá permitir las conexiones entrantes en ufw.

Para permitir el acceso a MongoDB en su puerto predeterminado 27017 desde cualquier parte, podría utilizar sudo ufw allow 27017. Sin embargo, permitir el acceso a Internet al servidor de MongoDB en una instalación predeterminada proporciona acceso ilimitado al servidor de la base de datos y a sus datos.

En la mayoría de los casos, solo se debe acceder a MongoDB desde determinadas ubicaciones de confianza, como otro servidor que aloje una aplicación. Para realizar esta tarea, puede permitir el acceso en el puerto predeterminado de MongoDB mientras especifique la dirección IP de otro servidor que, de forma explícita, tendrá permitido conectarse:

  • sudo ufw allow from your_other_server_ip/32 to any port 27017

Puede verificar el cambio en los ajustes del firewall con ufw:

  • sudo ufw status

Debería ver la habilitación del tráfico hacia el puerto 27017 en el resultado:

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
27017                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
27017 (v6)                 ALLOW       Anywhere (v6)

Si decidió permitir que solo una dirección IP determinada se conecte con el servidor de MongoDB, en el resultado se enumerará la dirección IP de la ubicación autorizada en lugar de Anywhere.

Puede encontrar ajustes de firewall más avanzados para restringir el acceso a servicios en Aspectos básicos de UFW: Reglas y comandos comunes de firewall.

Aunque el puerto esté abierto, MongoDB solo escucha en la dirección local 127.0.0.1. Para permitir conexiones remotas, agregue la dirección IP pública de su servidor al archivo mongod.conf.

Abra el archivo de configuración de MongoDB en su editor:

  • sudo nano /etc/mongodb.conf

Agregue la dirección IP de su servidor al valor bindIP:

...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Asegúrese de situar una coma entre la dirección IP existente y la que agregó.

Guarde el archivo, cierre el editor y reinicie MongoDB:

  • sudo systemctl restart mongodb

MongoDB ahora recibirá conexiones remotas, pero cualquiera podrá acceder a él. Siga la parte 2 de Cómo instalar y proteger MongoDB en Ubuntu 16.04 para agregar un usuario administrativo y ampliar el bloqueo.

Conclusión

Puede encontrar tutoriales más detallados sobre cómo configurar y utilizar MongoDB en estos artículos de la comunidad de DigitalOcean. La documentación oficial de MongoDB también es un gran recurso en el que se abordan las posibilidades que ofrece MongoDB.

Creative Commons License