Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Instalar o MongoDB Community no Red Hat ou CentOS usando .tgz Tarball
Nesta página
Observação
MongoDB Atlas
O MongoDB Atlas é uma opção de serviço MongoDB hospedada na nuvem que não requer nenhuma sobrecarga de instalação e oferece uma camada grátis para começar.
Visão geral
Use este tutorial para instalar manualmente o MongoDB 5.0 MongoDB Community Edition no Red Hat Enterprise Linux, CentOS Linux ou Oracle Linux [1] usando um .tgz
tarball baixado.
Versão do MongoDB
Este tutorial instala a MongoDB Community Edition 5.0. Para instalar uma versão diferente do MongoDB Community, use o menu suspenso de versão no canto superior esquerdo desta página para selecionar a documentação dessa versão.
Método de instalação
Embora o MongoDB possa ser instalado manualmente através de um .tgz
tarball baixado, conforme descrito neste documento, é recomendado utilizar o gerenciador de pacotes do yum
em seu sistema para instalar o MongoDB, se possível. A utilização de um gerenciador de pacotes instala automaticamente todas as dependências necessárias, fornece um arquivo de exemplo mongod.conf
para você começar e simplifica futuras tarefas de atualização e manutenção.
➤ Consulte Instalar o MongoDB usando o Gerenciador de pacotes yum para obter instruções.
Considerações
MongoDB Shell, mongosh
Ao usar o pacote .tgz
para instalar o servidor, você precisa seguir as instruções de instalação do mongosh para baixar e instalar o mongosh separadamente.
Suporte a plataformas
Observação
MongoDB 5.0 MongoDB Community Edition suporta as seguintes versões 64-bit do Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [1], Rocky Linux e AlmaLinux [2] em x86_64 arquitetura:
RHEL /CentOS/Oracle/Rocky/AlmaLinux 8
RHEL/CentOS/Oracle 7
MongoDB 5.0 MongoDB Community Edition também suporta a arquitetura ARM64 em RHEL / CentOS / Oracle / Rocky / AlmaLinux 8.
Consulte Suporte da Plataforma para obter mais informações.
[1] | (1, 2) O MongoDB é compatível apenas com o Oracle Linux que executa o Red Hat Compatible Kernel (RHCK). O MongoDB não suporta o Unbreakable Enterprise Kernel (UEK). |
[2] | Os produtos locais do MongoDB lançados para RHEL versão 8.0+ são compatíveis e suportados no Rocky Linux versão 8.0+ e AlmaLinux versão 8.0+, dependendo dessas distribuições cumprirem sua obrigação de fornecer compatibilidade total com RHEL. |
Notas de produção
Antes de implantar o MongoDB em um ambiente de produção, considere o documento Notas de Produção que oferece considerações de desempenho e recomendações de configuração para produção de sistemas do MongoDB.
Instale o MongoDB Community Edition
Pré-requisitos
Use o comando a seguir para instalar as dependências necessárias para o tarball MongoDB Community .tgz
:
sudo yum install libcurl openssl xz-libs
Procedimento
Siga estas etapas para instalar manualmente o MongoDB Community Edition a partir do .tgz
.
Baixar o tarball.
Após instalar os pacotes de pré-requisitos exigidos, baixe o MongoDB Community tgz
tarball a partir do seguinte link:
➤ Centro de downloads do MongoDB
Na menu suspenso Version, selecione a versão do MongoDB para baixar.
No menu suspenso Platform, selecione a versão e arquitetura do sistema operacional.
No menu suspenso Package, selecione tgz.
Clique em Download.
Verifique se os binários estão em um diretório listado em sua variável de ambiente do PATH
.
Os binários do MongoDB estão no diretório bin/
do tarball. Você também pode:
Copiar os binários em um diretório listado em sua variável
PATH
, como/usr/local/bin
(atualize/path/to/the/mongodb-directory/
com seu diretório de instalação conforme apropriado)sudo cp /path/to/the/mongodb-directory/bin/* /usr/local/bin/ Crie links simbólicos para os binários a partir de um diretório listado na variável sua
PATH
, como/usr/local/bin
(atualize/path/to/the/mongodb-directory/
com seu diretório de instalação conforme apropriado):sudo ln -s /path/to/the/mongodb-directory/bin/* /usr/local/bin/
Instale o MongoDB Shell (mongosh
).
Instalar mongosh
em seguida, use o MongoDB Shell para conectar à sua implantação.
Execute o MongoDB Community Edition
Pré-requisitos
ulimit
A maioria dos sistemas operacionais do tipo Unix limita os recursos do sistema que um processo pode usar. Esses limites podem impactar negativamente a operação do MongoDB e devem ser ajustados. Consulte Configurações do UNIX ulimit
para obter as configurações recomendadas para sua plataforma.
Observação
Se o valor ulimit
para o número de arquivos abertos estiver abaixo 64000
, o MongoDB gerará um aviso de inicialização.
Caminhos de Diretório
Para Usar Diretórios Padrão
Por padrão, o MongoDB é executado com a conta de usuário mongod
e utiliza os seguintes diretórios padrão:
/var/lib/mongo
(o diretório de dados)/var/log/mongodb
(o diretório log)
Criar os dados MongoDB e diretórios de log:
sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb
Por padrão, o MongoDB é executado com a conta de usuário mongod
. Crie um grupo mongod
e um grupo mongodb
. Certifique-se de que o mongod
pertence ao grupo e, em seguida, defina o proprietário e o grupo destes diretórios como mongod
:
sudo chown -R mongod:mongod /var/lib/mongo sudo chown -R mongod:mongod /var/log/mongodb
Para Usar Diretórios Não Padrão
Para usar um diretório de dados e/ou diretório de registros diferente dos diretórios padrão:
Crie o novo diretório ou diretórios.
Edite o arquivo de configuração
/etc/mongod.conf
e modifique os campos de acordo:storage.dbPath
para especificar um novo caminho de diretório de dados (por exemplo,/some/data/directory
)systemLog.path
para especificar um novo caminho de arquivo de log (por exemplo,/some/log/directory/mongod.log
)
Certifique-se de que o usuário que executa o MongoDB tenha acesso ao diretório ou diretórios:
sudo chown -R mongod:mongod <directory> Se você alterar o usuário que executa o processo MongoDB,deverá conceder ao novo usuário acesso a esses diretórios.
Configure o SELinux, se aplicado. Consulte Configurar o SELinux.
Configurar SELinux
Importante
Se o SELinux estiver no modo enforcing
, você deverá personalizar sua política do SELinux para MongoDB fazendo os dois ajustes de política a seguir:
Permitir acesso a cgroup
A política atual do SELinux não permite que o processo do MongoDB acesse /sys/fs/cgroup
, que é necessário para determinar a memória disponível no seu sistema. Se você pretende executar o SELinux no modo enforcing
, terá que fazer o seguinte ajuste em sua política do SELinux:
Verifique se o seu sistema tem o pacote
checkpolicy
instalado:sudo yum install checkpolicy Crie um arquivo de política personalizado
mongodb_cgroup_memory.te
:cat > mongodb_cgroup_memory.te <<EOF module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read }; EOF Depois de criado, compile e carregue o módulo de política personalizada executando estes três comandos:
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod sudo semodule -i mongodb_cgroup_memory.pp
O processo MongoDB agora pode acessar os arquivos corretos com SELinux configurado para enforcing
.
Permitir acesso a netstat
para FTDC
A política atual do SELinux não permite que o processo do MongoDB abra e leia /proc/net/netstat
, o que é necessário para a captura de dados de diagnóstico em tempo integral (FTDC). Se você pretende executar o SELinux no modo enforcing
, terá que fazer o seguinte ajuste em sua política do SELinux:
Verifique se o seu sistema tem o pacote
checkpolicy
instalado:sudo yum install checkpolicy Crie um arquivo de política personalizado
mongodb_proc_net.te
:cat > mongodb_proc_net.te <<EOF module mongodb_proc_net 1.0; require { type cgroup_t; type configfs_t; type file_type; type mongod_t; type proc_net_t; type sysctl_fs_t; type var_lib_nfs_t; class dir { search getattr }; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir { search getattr } ; allow mongod_t cgroup_t:file { getattr open read }; allow mongod_t configfs_t:dir getattr; allow mongod_t file_type:dir { getattr search }; allow mongod_t file_type:file getattr; allow mongod_t proc_net_t:file { open read }; allow mongod_t sysctl_fs_t:dir search; allow mongod_t var_lib_nfs_t:dir search; EOF Depois de criado, compile e carregue o módulo de política personalizada executando estes três comandos:
checkmodule -M -m -o mongodb_proc_net.mod mongodb_proc_net.te semodule_package -o mongodb_proc_net.pp -m mongodb_proc_net.mod sudo semodule -i mongodb_proc_net.pp
Importante
Além dos itens anteriores, você também precisará personalizar ainda mais sua política do SELinux nos dois casos a seguir, se o SELinux estiver no modo enforcing
:
Você está usando um caminho de diretório personalizado em vez de usar o padrão
dbPath
,systemLog.path
oupidFilePath
em RHEL 7.0 ou posterior e/ouVocê está usando uma porta personalizada em vez de usar as portas padrão do MongoDB.
Usando um caminho de diretório personalizado do MongoDB
Atualize a política SELinux para permitir que o serviço do
mongod
utilize o novo diretório:sudo semanage fcontext -a -t <type> </some/MongoDB/directory.*> onde especifique um dos seguintes tipos conforme apropriado:
mongod_var_lib_t
para diretório de dadosmongod_log_t
para diretório do arquivo de logmongod_var_run_t
para o diretório de arquivo de pid
Observação
Certifique-se de incluir o
.*
no final do diretório.Atualize a política de usuário do SELinux para o novo diretório:
sudo chcon -Rv -u system_u -t <type> </some/MongoDB/directory> onde especifique um dos seguintes tipos conforme apropriado:
mongod_var_lib_t
para diretório de dadosmongod_log_t
para diretório de logmongod_var_run_t
para o diretório de arquivo de pid
Aplique as políticas atualizadas do SELinux ao diretório:
sudo restorecon -R -v </some/MongoDB/directory>
Por exemplo:
Dica
Certifique-se de incluir o .*
no final do diretório para as operações do semanage fcontext
.
Se utilizar um caminho de dados MongoDB não padrão do
/mongodb/data
:sudo semanage fcontext -a -t mongod_var_lib_t '/mongodb/data.*' sudo chcon -Rv -u system_u -t mongod_var_lib_t '/mongodb/data' sudo restorecon -R -v '/mongodb/data' Se estiver usando um diretório de log MongoDB não padrão do
/mongodb/log
(por exemplo, se o caminho do arquivo de log for/mongodb/log/mongod.log
):sudo semanage fcontext -a -t mongod_log_t '/mongodb/log.*' sudo chcon -Rv -u system_u -t mongod_log_t '/mongodb/log' sudo restorecon -R -v '/mongodb/log'
Usando uma porta MongoDB personalizada
sudo semanage port -a -t mongod_port_t -p tcp <portnumber>
Observação
Talvez seja necessário reiniciar o mongod
para que a porta personalizada seja reconhecida.
Procedimento
Siga estas etapas para executar o MongoDB Community Edition em seu sistema. Estas instruções pressupõem que você esteja usando as configurações padrão.
Crie os dados e diretórios de log.
Crie um diretório onde a instância do MongoDB armazenará seus dados. Por exemplo:
sudo mkdir -p /var/lib/mongo
Crie um diretório em que a instância do MongoDB armazene seu log. Por exemplo:
sudo mkdir -p /var/log/mongodb
O usuário que inicia o processo do MongoDB deve ter permissão de leitura e gravação nesses diretórios. Por exemplo, se você pretende executar o MongoDB como você mesmo:
sudo chown `whoami` /var/lib/mongo # Or substitute another user sudo chown `whoami` /var/log/mongodb # Or substitute another user
Verifique se o MongoDB foi iniciado com sucesso.
Verifique se o MongoDB começou com sucesso verificando a saída do processo para a seguinte linha no arquivo de log /var/log/mongodb/mongod.log
:
[initandlisten] waiting for connections on port 27017
Você poderá ver avisos não críticos como resultado do processo. Desde que veja a linha de registro mostrada acima, você pode ignorar com segurança esses avisos durante sua avaliação inicial do MongoDB.
Comece a usar o MongoDB.
Inicie uma sessão mongosh
na mesma máquina host que o mongod
. Você pode executar mongosh
sem nenhuma opção de linha de comando para se conectar a um mongod
em execução em seu localhost com a porta padrão 27017.
mongosh
Para obter mais informações sobre como conectar-se usando mongosh
, como conectar-se a uma instância mongod
em execução em um host e/ou porta diferente, consulte a documentação do mongosh.
Para ajudá-lo a começar a usar o MongoDB, o MongoDB oferece guias de introdução em várias edições de drivers. Para obter a documentação do driver, consulte Começar a desenvolver com MongoDB.
Informações adicionais
Vinculação ao localhost por padrão
Por padrão, o MongoDB é iniciado com bindIp
definido como 127.0.0.1
, que se vincula à interface de rede localhost. Isso significa que o mongod
só pode aceitar conexões de clientes que estejam executando na mesma máquina. Os clientes remotos não conseguirão se conectar ao mongod
e o mongod
não conseguirá inicializar um conjunto de réplicas, a menos que esse valor seja definido como uma interface de rede válida que seja acessível aos clientes remotos.
Este valor pode ser configurado de duas maneiras:
no arquivo de configuração do MongoDB com
bindIp
, oupor meio do argumento linha de comando
--bind_ip
Aviso
Antes de vincular a um endereço IP não localhost (por exemplo, acessível publicamente), certifique-se de proteger seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte Lista de verificação de segurança. No mínimo, procure habilitar a autenticação e fortalecer a infraestrutura de rede.
Para obter mais informações sobre como configurar bindIp
, veja Vinculação de IP.