Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Instale o MongoDB Community Edition no Red Hat ou CentOS
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 o MongoDB 5.0 MongoDB Community Edition no Red Hat Enterprise Linux, CentOS Linux ou Oracle Linux [1] usando o gerenciador de pacotes yum
.
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.
Considerações
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
Siga estas etapas para instalar o MongoDB Community Edition usando o gerenciador de pacotes yum
.
Configure o sistema de gerenciamento de pacotes (yum
).
Crie um arquivo /etc/yum.repos.d/mongodb-org-5.0.repo
para instalar o MongoDB diretamente utilizando o yum
:
Você também pode baixar os .rpm
arquivos diretamente do repositório MongoDB. Os downloads são organizados pela versão do Red Hat / CentOS (por exemplo, 8
), depois pela versão do MongoDB (por exemplo, 5.0
) e depois pela arquitetura (por exemplo, x86_64
).
Instale os pacotes do MongoDB.
Para instalar a versão estável mais recente do MongoDB, emita o seguinte comando:
sudo yum install -y mongodb-org
Como alternativa, para instalar uma versão específica do MongoDB, especifique cada pacote de componente individualmente e anexe o número da versão ao nome do pacote , como no exemplo a seguir:
sudo yum install -y mongodb-org-5.0.26 mongodb-org-database-5.0.26 mongodb-org-server-5.0.26 mongodb-org-shell-5.0.26 mongodb-org-mongos-5.0.26 mongodb-org-tools-5.0.26
Observação
yum
atualiza pacotes automaticamente quando novas versões são disponibilizadas. Se você quiser impedir atualizações do MongoDB, fixe o pacote adicionando a seguinte diretriz exclude
ao seu arquivo /etc/yum.conf
:
exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools
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)
O gerenciador de pacotes cria os diretórios padrão durante a instalação. O proprietário e o nome do grupo são mongod
.
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.
Sistema de Inicialização
Para executar e gerenciar seu processo do mongod
, você utilizará o sistema de inicialização embutido do sistema operacional. Versões recentes do Linux tendem a utilizar systemd (que utiliza o comando systemctl
), enquanto versões mais antigas do Linux tendem a utilizar System V init (que utiliza o comando service
).
Se você não tiver certeza de qual sistema de inicialização sua plataforma usa, execute o seguinte comando:
ps --no-headers -o comm 1
Em seguida, selecione a aba apropriada abaixo com base no resultado:
systemd
- selecione a aba systemd (systemctl) abaixo.init
- selecione a aba System V Init (service) abaixo.
Desinstale o MongoDB Community Edition
Para remover completamente o MongoDB de um sistema, você deve remover os próprios aplicativos MongoDB, os arquivos de configuração e quaisquer diretórios que contenham dados e registros. A seção a seguir orienta você nas etapas necessárias.
Aviso
Esse processo removerá completamente o MongoDB, sua configuração e todos os bancos de dados. Este processo não é reversível, portanto, certifique-se de fazer backup de todas as suas configurações e dados antes de continuar.
Pare o MongoDB.
Interrompa o processo mongod
com o seguinte comando:
sudo service mongod stop
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.
Pacotes do MongoDB Community Edition
O MongoDB Community Edition está disponível em seu próprio repositório dedicado e contém os seguintes pacotes com suporte oficial:
Nome do Pacote | Descrição | ||||||||
---|---|---|---|---|---|---|---|---|---|
mongodb-org | Um metapackage que instala automaticamente os pacotes do componente listados abaixo. | ||||||||
mongodb-org-database | Um
| ||||||||
mongodb-mongosh | Contém o Shell do MongoDB ( mongosh ). | ||||||||
mongodb-org-tools | Um
|