Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / / /

Instalar o MongoDB Community no Red Hat ou CentOS usando .tgz Tarball

Nesta página

  • Visão geral
  • Considerações
  • Instale o MongoDB Community Edition
  • Execute o MongoDB Community Edition
  • Informações adicionais

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.

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.

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.

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.

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.

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.

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.

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

Siga estas etapas para instalar manualmente o MongoDB Community Edition a partir do .tgz.

1

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

  1. Na menu suspenso Version, selecione a versão do MongoDB para baixar.

  2. No menu suspenso Platform, selecione a versão e arquitetura do sistema operacional.

  3. No menu suspenso Package, selecione tgz.

  4. Clique em Download.

2

Por exemplo, a partir de uma shell do sistema, você pode extrair utilizando o comando tar:

tar -zxvf mongodb-linux-*-7.0.14.tgz
3

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/
4

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.

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.

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 um diretório de dados e/ou diretório de registros diferente dos diretórios padrão:

  1. Crie o novo diretório ou diretórios.

  2. 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)

  3. 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.

  4. Configure o SELinux, se aplicado. Consulte Configurar o 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

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:

  1. Verifique se o seu sistema tem o pacote checkpolicy instalado:

    sudo yum install checkpolicy
  2. 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
  3. 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.

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:

  1. Verifique se o seu sistema tem o pacote checkpolicy instalado:

    sudo yum install checkpolicy
  2. 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
  3. 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
  1. 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 dados

    • mongod_log_t para diretório do arquivo de log

    • mongod_var_run_t para o diretório de arquivo de pid

    Observação

    Certifique-se de incluir o .* no final do diretório.

  2. 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 dados

    • mongod_log_t para diretório de log

    • mongod_var_run_t para o diretório de arquivo de pid

  3. 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'
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.

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.

1

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
2

Para executar MongoDB, execute o processo mongod no prompt do sistema.

mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork

Para detalhes sobre as opções de linha de comando --dbpath e --logpath, consulte Opções.

3

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.

4

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.

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, ou

  • por 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.

Voltar

Instale no Red Hat