Instale o MongoDB Enterprise Edition no Red Hat ou CentOS
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 o MongoDB 5.0 Enterprise Edition no Red Hat Enterprise Linux, CentOS Linux ou Oracle Linux [1] usando o gerenciador de pacotes yum
.
O MongoDB Enterprise Edition está disponível em plataformas selecionadas e contém suporte para vários recursos relacionados à segurança e ao monitoramento.
Versão do MongoDB
Este tutorial instala MongoDB 5.0 Enterprise Edition. Para instalar uma versão diferente do MongoDB Enterprise, 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
EOL Notice
MongoDB 5.0 A edição Enterprise suporta as seguintes versões de 64bits do Red Hat Enterprise Linux (RHEL), CentOS Linux, Oracle Linux [1], Rocky Linux e AlmaLinux [2] em x86_64 arquitetura:
RHEL /CentOS/Oracle/Rocky/Alma 8
RHEL/CentOS/Oracle 7
O MongoDB é compatível somente com as versões de 64 bits dessas plataformas.
MongoDB 5.0 Enterprise Edition em RHEL / CentOS / Oracle / Rocky / Alma Linux 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 Enterprise Edition
Siga estas etapas para instalar o MongoDB Enterprise Edition usando o gerenciador de pacotes yum
.
Configurar o repositório
Crie um arquivo /etc/yum.repos.d/mongodb-enterprise-5.0.repo
para instalar o MongoDB Enterprise diretamente utilizando o yum
:
[mongodb-enterprise-5.0] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/8/mongodb-enterprise/5.0/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-5.0.asc
[mongodb-enterprise-5.0] name=MongoDB Enterprise Repository baseurl=https://repo.mongodb.com/yum/redhat/7/mongodb-enterprise/5.0/$basearch/ gpgcheck=1 enabled=1 gpgkey=https://pgp.mongodb.com/server-5.0.asc
Observação
Se você tiver um arquivo mongodb-enterprise.repo
neste diretório a partir de uma instalação anterior do MongoDB, você deverá removê-lo. Utilize o arquivo mongodb-enterprise-5.0.repo
acima para instalar o MongoDB 5.0.
Você também pode baixar os arquivos .rpm
diretamente do Repositório do MongoDB. As transferências são organizadas pela versão Red Hat/CentOS (por exemplo, 9
), em seguida, a versão de lançamento do MongoDB (por exemplo, 5.0
), depois a arquitetura (por exemplo, x86_64
).
Antes do MongoDB 5.0, as versões ímpares do MongoDB, como 4.3
, eram versões de desenvolvimento. Começando com o MongoDB 5.1, o MongoDB tem Rapid Releases trimestralmente. Para obter mais informações sobre as diferenças entre versões de suporte rápido e de longo prazo, consulte MongoDB Versioning.
Instalar o MongoDB Enterprise Edition
Para instalar a versão estável mais recente do MongoDB Enterprise 5.0, emita o seguinte comando:
sudo yum install -y mongodb-enterprise
Para instalar uma versão específica, você deve especificar cada pacote de componente individualmente junto com o número da versão, como no exemplo a seguir:
sudo yum install -y mongodb-enterprise-5.0.29 mongodb-enterprise-database-5.0.29 mongodb-enterprise-server-5.0.29 mongodb-enterprise-shell-5.0.29 mongodb-enterprise-mongos-5.0.29 mongodb-enterprise-tools-5.0.29
Observação
Embora você possa especificar qualquer versão disponível do MongoDB Enterprise, o yum
atualiza os pacotes quando uma versão mais nova se tornar disponível. Para evitar atualizações indesejadas, fixe o pacote adicionando a seguinte diretiva exclude
ao seu arquivo /etc/yum.conf
:
exclude=mongodb-enterprise,mongodb-enterprise-database,mongodb-enterprise-server,mongodb-enterprise-shell,mongodb-enterprise-mongos,mongodb-enterprise-tools
Executar o MongoDB Enterprise 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 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)
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 o 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 MongoDB padrão.
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 Enterprise 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 integrado 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.
Inicie o MongoDB.
Você pode iniciar o processo mongod
emitindo o seguinte comando:
sudo systemctl start mongod
Se receber um erro semelhante ao seguinte ao iniciar o mongod
:
Failed to start mongod.service: Unit mongod.service not found.
Execute o seguinte comando primeiro:
sudo systemctl daemon-reload
Em seguida, execute o comando de inicialização acima novamente.
Verifique se o MongoDB foi iniciado com sucesso.
Você pode verificar se o processo mongod
começou com sucesso emitindo o seguinte comando:
sudo systemctl status mongod
Opcionalmente, você pode garantir que o MongoDB iniciará após reinicialização do sistema emitindo o seguinte comando:
sudo systemctl enable mongod
Pare o MongoDB.
Conforme necessário, você pode interromper o processo mongod
emitindo o seguinte comando:
sudo systemctl stop mongod
Reinicie o MongoDB.
Você pode reiniciar o processo mongod
emitindo o seguinte comando:
sudo systemctl restart mongod
Você pode acompanhar o estado do processo em busca de erros ou mensagens importantes
observando o resultado no arquivo /var/log/mongodb/mongod.log
.
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.
Inicie o MongoDB.
Você pode iniciar o processo mongod
emitindo o seguinte comando:
sudo service mongod start
Verifique se o MongoDB foi iniciado com sucesso.
Você pode verificar se o processo mongod
começou com sucesso verificando o conteúdo do arquivo de log em /var/log/mongodb/mongod.log
para uma linha de leitura
[initandlisten] waiting for connections on port <port>
onde <port>
é a porta configurada em /etc/mongod.conf
, 27017
por padrão.
Opcionalmente, você pode garantir que o MongoDB iniciará após reinicialização do sistema emitindo o seguinte comando:
sudo chkconfig mongod on
Pare o MongoDB.
Conforme necessário, você pode interromper o processo mongod
emitindo o seguinte comando:
sudo service mongod stop
Reinicie o MongoDB.
Você pode reiniciar o processo mongod
emitindo o seguinte comando:
sudo service mongod restart
Você pode acompanhar o estado do processo em busca de erros ou mensagens importantes
observando o resultado no arquivo /var/log/mongodb/mongod.log
.
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.
Desinstalar MongoDB
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
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 a um não localhost (por exemplo, acessível IP ), certifique-se de ter protegido seu cluster contra o acesso não autorizado. Para obter uma lista completa de recomendações de segurança, consulte a Lista de verificação de segurança para implementações autogerenciadas. No mínimo, procure 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.
Pacotes do MongoDB Enterprise Edition
A edição MongoDB Enterprise 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-enterprise | Um metapackage que instala automaticamente os pacotes do componente listados abaixo. | ||||||||||
mongodb-enterprise-database | Um
| ||||||||||
mongodb-mongosh | Contém o MongoDB Shell ( mongosh ). | ||||||||||
mongodb-enterprise-tools | Um
|