Como instalar o MongoDB a partir dos repositórios APT padrão no Ubuntu 20.04

Introdução

O MongoDB é um banco de dados de documento NoSQL de código aberto e gratuito usado habitualmente em aplicativos Web modernos.

Neste tutorial, você irá instalar o MongoDB, gerenciar seus serviços e, de maneira opcional, habilitar o acesso remoto.

Nota: no momento em que este artigo está sendo escrito, este tutorial instala a versão 3.6 do MongoDB, que é a versão disponível nos repositórios padrão do Ubuntu. No entanto, geralmente recomendamos a instalação da versão mais recente do MongoDB — versão 4.4 no momento em que este artigo está sendo escrito — ao invés disso. Se quiser instalar a versão mais recente do MongoDB, encorajamos que siga este guia sobre Como instalar o MongoDB no Ubuntu 20.04 da origem.

Pré-requisitos

Para seguir este tutorial, será necessário:

  • Um servidor Ubuntu 20.04 configurado seguindo o Guia de configuração inicial de servidor, incluindo um usuário não root com privilégios administrativos e um firewall configurado com o UFW.

Passo 1 — Como instalar o MongoDB

Os repositórios de pacotes oficiais do Ubuntu incluem o MongoDB, ou seja, podemos instalar os pacotes necessários utilizando o apt. Como mencionado na introdução, a versão disponível dos repositórios padrão não é a mais recente. Para instalar a versão mais recente do Mongo, siga este tutorial.

Primeiramente, atualize a lista de pacotes para ter a versão mais recente dos registros:

  • sudo apt update

Agora, instale o pacote MongoDB:

  • sudo apt install mongodb

Esse comando solicitará que você confirme se deseja instalar o pacote mongodb e suas dependências. Para fazer isso, pressione Y e então ENTER.

Esse comando instala vários pacotes que contêm uma versão estável do MongoDB, junto com ferramentas de gerenciamento úteis para o servidor MongoDB. O servidor de banco de dados é iniciado automaticamente após a instalação.

Em seguida, vamos verificar se o servidor está funcionando corretamente.

Passo 2 — Como verificar o serviço e o banco de dados

O processo de instalação iniciou o MongoDB automaticamente, mas vamos verificar se o serviço está iniciado e que o banco de dados está funcionando.

Primeiramente, verifique o estado do serviço:

  • sudo systemctl status mongodb

Você 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 Thu 2020-10-08 14:23:22 UTC; 49s ago Docs: man:mongod(1) Main PID: 2790 (mongod) Tasks: 23 (limit: 2344) Memory: 42.2M CGroup: /system.slice/mongodb.service └─2790 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf

De acordo com esse resultado, o servidor MongoDB está em funcionamento.

Podemos verificar isso mais adiante ao nos conectarmos ao servidor de banco de dados e executarmos um comando de diagnóstico. Isso mostrará a versão atual do banco de dados, o endereço e a porta do servidor, e o resultado do comando de estado:

  • mongo --eval 'db.runCommand({ connectionStatus: 1 })'
Output
MongoDB shell version v3.6.8 connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("e3c1f2a1-a426-4366-b5f8-c8b8e7813135") } MongoDB server version: 3.6.8 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }

Um valor de 1 para o campo ok na resposta indica que o servidor está funcionando corretamente.

Em seguida, vamos ver como gerenciar a instância do servidor.

Passo 3 — Como gerenciar o serviço MongoDB

O processo de instalação mostrado no Passo 1 configura o MongoDB como um serviço systemd, ou seja, você pode gerenciá-lo usando comandos systemctl padrão junto com todos os outros serviços de sistema no Ubuntu.

Para verificar o estado do serviço, digite:

  • sudo systemctl status mongodb

Para interromper o servidor a qualquer momento, digite:

  • sudo systemctl stop mongodb

Para iniciar o servidor quando ele for parado, digite:

  • sudo systemctl start mongodb

Você também pode reiniciar o servidor com o comando a seguir:

  • sudo systemctl restart mongodb

Por padrão, o MongoDB está configurado para iniciar automaticamente com o servidor. Se quiser desativar o inicializador automático, digite:

  • sudo systemctl disable mongodb

Você pode habilitar novamente a inicialização automática a qualquer momento com o seguinte comando:

  • sudo systemctl enable mongodb

Em seguida, vamos ajustar as configurações de firewall para nossa instalação do MongoDB.

Passo 4 — Como ajustar o Firewall (opcional)

Considerando que você seguiu todas as instruções do tutorial de configuração inicial do servidor para habilitar o firewall no seu servidor, então o servidor MongoDB estará inacessível pela internet.

Se quiser usar o servidor MongoDB apenas localmente com aplicativos funcionando no mesmo servidor, esta é a configuração recomendada e segura. Entretanto, se quiser poder se conectar ao seu servidor MongoDB pela internet, será necessário permitir as conexões de entrada adicionando uma regra UFW.

Para permitir o acesso ao MongoDB em sua porta padrão 27017 de todos os lugares, utilize o comando sudo ufw allow 27017. Entretanto, habilitar o acesso à internet ao servidor MongoDB em uma instalação padrão dá a qualquer um acesso ilimitado ao servidor de banco de dados e seus dados.

Na maioria dos casos, o MongoDB deve ser acessado apenas por certos locais confiáveis, como outro servidor que hospeda um aplicativo. Para permitir o acesso à porta padrão do MongoDB apenas por outro servidor confiável, especifique o endereço IP do servidor remoto no comando ufw. Dessa forma, apenas essa máquina será explicitamente autorizada a se conectar:

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

Verifique a mudança nas configurações do firewall com o ufw:

  • sudo ufw status

Você deve ver o tráfego permitido para a porta 27017 no resultado. Se tiver decidido permitir que apenas um certo endereço IP se conecte ao servidor MongoDB, o endereço IP do local permitido estará listado ao invés de Anywhere no resultado do comando:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 27017 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 27017 (v6) ALLOW Anywhere (v6)

Você pode encontrar configurações de firewall mais avançadas para restringir o acesso a serviços em Essenciais do UFW: regras e comandos comuns do firewall.

Embora a porta esteja aberta, o MongoDB estará escutando apenas no endereço local 127.0.0.1. Para permitir conexões remotas, adicione o endereço IP roteável publicamente do seu servidor ao arquivo mongodb.conf.

Abra o arquivo de configuração do MongoDB em seu editor de texto preferido. Este comando de exemplo usa o nano:

  • sudo nano /etc/mongodb.conf

Adicione o endereço IP do seu servidor MongoDB ao valor bindIP. Certifique-se de colocar uma vírgula entre o endereço IP existente e o que você adicionou:

/etc/mongodb.conf
...
logappend=true

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

...

Salve o arquivo e saia do editor. Se você usou o nano para editar o arquivo, faça isso pressionando CTRL + X, Y, depois ENTER.

Em seguida, reinicie o serviço MongoDB:

  • sudo systemctl restart mongodb

O MongoDB agora está escutando conexões remotas, mas qualquer um pode acessá-lo. Siga Como proteger o MongoDB no Ubuntu 20.04 para adicionar um usuário administrativo e bloquear as coisas mais adiante.

Conclusão

Encontre tutoriais mais aprofundados sobre como configurar e usar o MongoDB nestes artigos da comunidade DigitalOcean. A documentação oficial do MongoDB também é um ótimo recurso sobre as possibilidades que o MongoDB proporciona.

Recent Articles

Related Stories

Stay on op - Ge the daily news in your inbox