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 hospedado em nuvem que não requer sobrecarga de instalação e oferece camada grátis para começar.
Visão geral
Use este tutorial para instalar manualmente o MongoDB 7.0 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 o MongoDB 7.0 Community Edition. 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 utilizar 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
O MongoDB 7.0 Community Edition suporta as seguintes versões de 1 bits do Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [2], Rocky Linux e AlmaLinux [86_64] na arquitetura x:
RHEL/CentOS Stream/Oracle/Rocky/AlmaLinux 9
RHEL/CentOS Stream/Oracle/Rocky/AlmaLinux 8
RHEL/CentOS/Oracle 7
O MongoDB é compatível somente com as versões de 64 bits dessas plataformas.
A edição MongoDB 7.0 Community em RHEL/CentOS/Oracle/Rocky/AlmaLinux também suporta a arquitetura ARM64 em plataformas selecionadas.
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 para implantações autogerenciadas, que oferece considerações de desempenho e recomendações de configuração para implantações de produção 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.
Certifique-se de que os binários estejam em um diretório listado na PATH
variável de ambiente.
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.
Faça o download do pacote para a versão de mongosh
de que você precisa no Centro de Download do MongoDB e descompacte o pacote.
Execute o MongoDB Community Edition
ulimit
A maioria dos sistemas operacionais do tipo Unix limita os recursos do sistema que um processo pode usar. Esses limites podem impacto negativamente a operação do MongoDB e devem ser ajustados. Consulte Configurações do UNIX ulimit
para sistemas autogerenciados para obter as configurações recomendadas para sua plataforma.
Observação
Se o valor ulimit
para o número de arquivos abertos estiver em 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
Aviso
Uma política do SELinux configurada incorretamente pode ser insegura ou impedir que sua instância mongod
funcione.
Se o SELinux estiver no modo enforcing
, você deverá personalizar sua política do SELinux para MongoDB para
Permitir acesso a
cgroup
Permitir acesso a
netstat
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
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.*> 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> 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>
Importante
Além dos itens anteriores, se o SELinux estiver no modo enforcing
, você também precisará personalizar ainda mais sua política do SELinux para cada uma dessas situações:
Você está usando um caminho de diretório personalizado em vez de usar o caminho padrão para qualquer combinação de:
Você está usando uma porta personalizada em vez de usar a porta MongoDB padrão.
Se você fez outras modificações na instalação do MongoDB.
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
que esteja sendo executado em seu host local com a porta padrão 27017.
mongosh
Para obter mais informações sobre como se conectar usando mongosh
, como se conectar 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 fornece Guias de Introdução em várias edições de driver. Para obter a documentação do driver, consulte Iniciar o desenvolvimento com o MongoDB.
Informações adicionais
Vinculação ao localhost por padrão
By default, MongoDB launches with bindIp
set to 127.0.0.1
, which binds to the localhost network interface. This means that the mongod
can only accept connections from clients that are running on the same machine. Remote clients will not be able to connect to the mongod
, and the mongod
will not be able to initialize a replica set unless this value is set to a valid network interface which is accessible from the remote clients.
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 sua instância a um endereço IP acessível publicamente, você deve 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 para implantações autogerenciadas. No mínimo, considere habilitar a autenticação e fortalecer a infraestrutura de rede.
Para obter mais informações sobre como configurar bindIp
, consulte Vinculação de IP em implementações autogerenciadas.