EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
MongoDBchevron-right

Instalar e configurar o MongoDB no Raspberry Pi

Mark Smith8 min read • Published Feb 07, 2022 • Updated Sep 11, 2024
RaspberryPiMongoDB
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Sou um grande fã do Raspberry Pi desde que a primeira versão foi lançada em 2012. As gerações mais recentes são maravilhosos computadores de automação residencial e prototipagem de IoT, com WiFi integrado, e as versões mais recentes (o Pi 3 e Pi 4) são de 64 bits. Isso significa que eles podem executar o servidor MongoDB, mongod, localmente! O MongoDB ainda fornece uma versão pré-compilada para o processador Raspberry Pi, por isso é relativamente simples instalá-lo.
Atualmente, estou criando um serviço de automação residencial em um Raspberry Pi 4. Seu trabalho é executar tarefas em segundo plano, como solicitar dados periodicamente da Internet e, em seguida, fornecer os dados a vários dispositivos pequenos em minha casa, como alguns monitores inteligentes e, bem, meu moedor de café.
O serviço não tem requisitos de armazenamento de dados supercomplexos e eu poderia ter usado um banco de dados incorporado, como o SQLite. Mas me tornei resistente a modelar tabelas e junções em um banco de dados relacional e trabalhar com linhas planas. A capacidade de armazenar estruturas de dados ricas em um único MongoDB database é um recurso fundamental para mim.

Pré-requisitos

Você precisará de:
  • Um Raspberry Pi 3 ou 4
  • Um cartão Micro SD de tamanho adequado (usei um cartão de 16 Gb)
  • Um computador e um leitor de cartão SD para gravar a imagem do cartão SD. (Pode ser outro Raspberry Pi, mas estou usando meu desktop)
  • Um editor de texto no computador host. (Recomendo VS Code)

O que este tutorial fará

Este tutorial mostrará como:
  • Instale a versão de 64 bits do servidor Ubuntu em seu Raspberry Pi.
  • Configure-o para se conectar ao seu Wi-Fi.
  • Instalar corretamente o MongoDB no seu Pi.
  • Adicione uma conta de usuário para expor o MongoDB com segurança em sua rede doméstica.
Quando terminar, você terá uma instância segura do MongoDB disponível em sua rede doméstica.
Antes de chegarmos muito longe nisso, tenha em mente que você não deseja executar um banco de dados de produção em escala web em um Raspberry Pi. Apesar das melhorias no processador no Pi 4, ele ainda é uma máquina de potência relativamente baixa, com uma quantidade relativamente baixa de RAM para um servidor de banco de dados. Ainda! Para uma instância local e offline do MongoDB, com a facilidade de desenvolvimento que o MongoDB oferece, um Raspberry Pi é uma ótima solução de baixo custo. Se você deseja servir seus dados na Internet, você definitivamente deveria conferir o Atlas, a solução de hospedagem em nuvem do MongoDB. O MongoDB hospedará seu banco de dados e o serviço tem um nível gratuito generoso (e permanente)!

Coisas para não fazer

Não execute apt install mongodb em seu Raspberry Pi ou, de fato, em qualquer computador com Linux! As versões do MongoDB fornecidas com as distribuições Linux estão muito desatualizadas. Elas não funcionarão tão bem e algumas delas são tão antigas que não têm mais suporte.
O MongoDB Server fornece versões do banco de dados, pré-pacote para muitos sistemas operacionais diferentes, e o Ubuntu no Raspberry Pi é um deles.

Instalando o Ubuntu

Baixe e instale o Raspberry Pi Imager em seu computador host.
Faça o download do Raspberry Pi Imager
Execute o rastreamento Raspberry Pi e selecione o servidor Ubuntu 20.04, 64-bit para Raspberry Pi 3/4.
Selecione a imagem correta do Ubuntu
Certifique-se de não selecionar acidentalmente o Ubuntu Core ou uma versão de 32bits.
Insira seu cartão Micro SD em seu computador e selecione-o na janela Raspberry Pi Imager.
Selecione seu cartão SD
Clique em Write e aguarde até que a imagem seja gravada no cartão SD. Isso pode levar algum tempo! Quando terminar, feche o Raspberry Pi Imager. Em seguida, remova o cartão Micro SD do computador e insira-o novamente.
A imagem Ubuntu para Raspberry Pi usa cloud-init para configurar o sistema no momento da inicialização. Isso significa que, no volume system-boot do seu cartão SD, deve haver um arquivo YAML chamado network-config. Abra este arquivo no VS Code (ou em seu editor de texto favorito).
Edite para que fique assim. O recuo é importante e é a seção ‘wifis’ que você está editando para corresponder à sua configuração wifi. Substitua 'YOUR-WIFI-SSD' pelo nome do seu WiFi e 'YOUR-WIFI-PASSWORD' pela sua senha WiFi.
Agora ejete o cartão SD (com segurança! ) do seu computador, insira-o no Pi e ligue-o! Pode levar alguns minutos para iniciar, pelo menos na primeira vez. Você precisará monitorar sua rede para aguardar a conexão do Pi. Quando isso acontecer, ssh no Pi com ssh ubuntu@<raspberry-pi-ip-address>. A senha também é ubuntu.
Você será solicitado a alterar sua senha para algo secreto.
Depois de definir sua senha, atualize o sistema operacional executando os seguintes comandos:

Instale o MongoDB

Agora vamos instalar o MongoDB. Isso é feito da seguinte forma:
As instruções acima foram retiradas principalmente de Instale o MongoDB Community Edition no Ubuntu

Execute o MongoDB

O Ubuntu 20.04 usa o Systemd para executar serviços em segundo plano, portanto, para configurar o mongod para ser executado em segundo plano, você precisa habilitar e iniciar o serviço:
Agora, você pode verificar se o serviço está sendo executado corretamente executando o comando a seguir. Você deve ver algo como a saída abaixo dele:
Se o serviço estiver sendo executado corretamente, você poderá executar o cliente MongoDB, mongo, a partir da linha de comando para se conectar:
Primeiro, verifique os avisos. Você pode ignorar a recomendações de executar o sistema de arquivos XFS, pois esta é apenas uma pequena instalação local. No entanto, o aviso sobre o controle de acesso que não está ativado para o banco de dados é importante! Você corrigirá isso na próxima seção. Nesse ponto, se você quiser, pode ativar o monitoramento gratuito que o MongoDB oferece, executando db.enableFreeMonitoring() dentro do shell do mongo.

Protegendo o MongoDB

Aqui estão as próximas etapas essenciais, que outros tutoriais não abordam, por algum motivo. Versões recentes do mongod não se conectarão à rede a menos que a autenticação do usuário tenha sido configurada. Por causa disso, no momento, seu banco de dados só está acessível a partir do próprio Raspberry Pi. Isso pode ser bom se, como eu, os serviços que você estiver executando com o MongoDB estiverem sendo executados no mesmo dispositivo. Ainda é uma boa ideia definir um nome de usuário e uma senha no banco de dados.
Veja como fazer isso, dentro de mongo (substitua SUPERSECRETPASSWORD por uma senha real!):
As três funções listadas dão ao usuário admin a capacidade de administrar todas as contas de usuário e dados no MongoDB. Verifique se sua senha é segura. Você pode usar um gerador de senhas aleatório para estar seguro.
Agora você precisa reconfigurar o mongod para rodar com a autenticação habilitada, adicionando algumas linhas a /etc/mongod.conf. Se você se sentir confortável com um editor de texto de terminal, como vi ou emacs, use um deles. Usei nano, porque é um pouco mais simples, com sudo nano /etc/mongod.conf. Adicione as duas linhas a seguir em algum lugar do arquivo. Assim como o arquivo network-config que você editou anteriormente, é um arquivo YAML, portanto o recuo é importante!
E, por fim, reinicie o mongod:
Certifique-se de que a autenticação seja aplicada conectando mongo sem autenticação:
Certifique-se de ter saído de mongo e agora teste se é possível se conectar e autenticar com os detalhes do usuário que você criou:

Disponibilize o MongoDB para sua rede

Esta etapa é opcional! Agora que você configurou a autenticação no servidor, se quiser que o banco de dados esteja disponível para outros computadores na rede, você precisa:
  • Vincular o MongoDb ao endereço IP público do Raspberry Pi
  • Abra a porta 27017 no firewall do Raspberry Pi.
Se não quiser acessar os dados da sua rede, não siga estas etapas! É sempre melhor deixar as coisas mais seguras, se possível.
Primeiro, edite /etc/mongod.conf novamente, da mesma forma que antes. Desta vez, altere o endereço IP para 0.0.0.0:
E reinicie mongod novamente:
Abra a porta 27017 no firewall de seu Raspberry Pi:
Agora, em outro computador na sua rede, com o cliente MongoDB instalado, execute o seguinte para garantir que mongod esteja disponível em sua rede:
Se ele se conectar, então você instalou e configurou com sucesso o MongoDB em seu Raspberry Pi!

Advertências sobre segurança

Essa seção curta é extremamente importante. Não pule isso.
  • Nunca abra uma instância do mongod para a internet sem autenticação habilitada.
  • Configure seu firewall para limitar os endereços IP que podem se conectar à sua porta MongoDB. (Seu Raspberry Pi acabou de ser configurado para permitir conexões de qualquer lugar, partindo do pressuposto de que sua rede doméstica tem um firewall bloqueando o acesso de fora.)
  • Certifique-se de que a senha do usuário de banco de dados que você criou seja segura!
  • Configure diferentes usuários de banco de dados para cada aplicativo que se conecta ao seu servidor de banco de dados, com apenas as permissões exigidas por cada aplicativo.
O MongoDB vem com padrões de segurança adequados. Ele usa TSL, autenticação por senha baseada em SCRAM, e não se vincula à sua porta de rede sem que a autenticação seja configurada. Ainda cabe a você entender como proteger seu Raspberry Pi e quaisquer dados armazenados nele. Leia a Lista de verificação de segurança do MongoDB para obter mais informações sobre como manter seus dados seguros.

Encerrando

Como você pode ver, existem algumas etapas para instalar e configurar adequadamente o MongoDB. Eu não fazia isso há algum tempo e tinha me esquecido de como pode ser complicado! Por isso, você deve considerar usar o MongoDB Atlas, onde muito disso já é resolvido para você. Além do fato de o nível gratuito para sempre ser bastante generoso com pequenos casos de uso, também existem vários serviços extras incluídos, como funções sem servidor, gráficos, pesquisa de texto livre e muito mais!
Você terminou! Vá gravar algum código em sua linguagem de programação favorita, e se você está orgulhoso disso (ou mesmo se está apenas tendo algum problema e gostaria de alguma ajuda) nos avise!. Confira todos os posts legais do blog no MongoDB Developer Hub e certifique-se de marcar a documentação do MongoDB

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

Sincronização inicial retomável no MongoDB 4.4


Sep 11, 2024 | 5 min read
Tutorial

Criar um microsserviço de preços dinâmicos com Vertex AI e MongoDB Atlas


Jun 21, 2024 | 17 min read
Início rápido

Introdução às transações ACID multidocumento em Python


Sep 11, 2024 | 10 min read
Artigo

Mapeando Termos e Conceitos do SQL para o MongoDB


Sep 23, 2022 | 15 min read
Sumário