*O autor selecionou a Corporativa Creative Commons para receber uma doação de $100 como parte do programa Write for DOnations.*

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 opcionalmente, habilitar o acesso remoto.

Pré-requisitos

mongodb illustration for: Pré-requisitos

Para seguir este tutorial, será necessário:

Passo 1 — Como instalar o MongoDB

Os repositórios de pacotes oficiais do Ubuntu incluem uma versão atualizada do MongoDB, ou seja, podemos instalar os pacotes necessários utilizando o apt.

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 -y mongodb

				
			

Este comando instala vários pacotes que contêm a versão estável mais recente 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:

				
					
[secondary_label 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

				
			

De acordo com o systemd, o servidor MongoDB está funcionando.

Podemos verificar isso mais adiante ao conectarmos ao servidor de banco de dados e executarmos um comando de diagnóstico

Execute este comando:

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

				
			

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:

				
					
[secondary_label 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<^>

}

				
			

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 MongoDB instala como um serviço systemd, o que significa que você pode gerenciar ele utilizando comandos systemd padrões ao lado de todos os outros serviços de sytem no Ubuntu.

Para verificar o estado do serviço, digite:

				
					
sudo systemctl status mongodb

				
			

É possível parar o servidor a qualquer momento digitando:

				
					
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 um único comando:

				
					
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

				
			

Habilitá-lo novamente também é fácil. Para fazer isso, utilize:

				
					
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)

Ao assumirmos que tenha seguido 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 recebidas em ufw.

Para permitir o acesso ao MongoDB em sua porta padrão 27017de todos os lugares, utilize o 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 realizar esta tarefa, permita o acesso na porta padrão do MongoDB enquanto especifica o endereço IP de outro servidor que será explicitamente permitido para se conectar:

				
					
sudo ufw allow from &lt;^&gt;your_other_server_ip&lt;^&gt;/32 to any port &lt;^&gt;27017&lt;^&gt;  

				
			

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 na saída:

				
					
[label Output]

Status: active



To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere

&lt;^&gt;27017                      ALLOW       Anywhere&lt;^&gt;

OpenSSH (v6)               ALLOW       Anywhere (v6)

&lt;^&gt;27017 (v6)                 ALLOW       Anywhere (v6)&lt;^&gt;

				
			

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 *na saída.

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 agora está escutando apenas o endereço local 127.0.0.1. Para permitir conexões remotas, adicione o endereço IP publicly-routable do seu servidor ao arquivo mongod.conf.

Abra o arquivo de configuração do MongoDB no seu editor:

				
					
sudo nano /etc/mongodb.conf

				
			

Adicione o endereço IP do seu servidor ao valor do bindIP:

				
					
[label ]

...

logappend=true



bind_ip = 127.0.0.1&lt;^&gt;,your_server_ip&lt;^&gt;

#port = 27017



...

				
			

Certifique-se de colocar uma vírgula entre o endereço IP existente e o que você adicionou.

Salve o arquivo, saia do editor e reinicie o MongoDB:

				
					
sudo systemctl restart mongodb

				
			

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

Conclusão

Você pode encontrar tutoriais mais aprofundados sobre como configurar e utilizar o MongoDB nestes artigos da comunidade the cloud provider. A documentação MongoDB oficial também é um ótimo recurso sobre as possibilidades que o MongoDB proporciona.