Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Opções de arquivo de configuração
Nesta página
- Arquivo de configuração
- Formato de arquivo
- Usar o arquivo de configuração
- Opções principais
systemLog
OpçõesprocessManagement
Opçõesnet
Opçõessecurity
OpçõessetParameter
Opçãostorage
OpçõesoperationProfiling
Opçõesreplication
Opçõessharding
OpçõesauditLog
Opçõessnmp
Opçõesmongos
Opções -only- Opções de serviço do Windows
- Opções de MMAPv1 removidas
A página seguinte descreve as opções de configuração disponíveis no MongoDB 5.0. Para obter opções de arquivo de configuração para outras versões do MongoDB, consulte a versão apropriada do Manual do MongoDB.
Observação
Se você estiver utilizando o MongoDB Atlas para gerenciar seus sistemas do MongoDB na nuvem, você não precisará criar um arquivo de configuração. Para aprender como configurar as configurações para sua implantação do MongoDB Atlas, consulte Configurar Configurações Adicionais.
Além de usar as opções do arquivo de configuração, a configuração padrão para os binários do MongoDB também usa as variáveis de ambiente do sistema operacional.
Arquivo de configuração
Você pode configurar as instâncias mongod
e mongos
na inicialização usando um arquivo de configuração. O arquivo de configuração contém configurações que são equivalentes às opções de linha de comando mongod
e mongos
. Consulte Configuração de configurações de arquivo e mapeamento de opções de linha de comando.
O uso de um arquivo de configuração facilita o gerenciamento das opções mongod
e mongos
, especialmente em implementações de grande escala. Você também pode adicionar comentários ao arquivo de configuração para explicar as configurações do servidor.
Se você instalou o MongoDB com um gerenciador de pacote como
yum
ouapt
no Linux oubrew
no macOS, ou com o instalador MSI no Windows, um arquivo de configuração padrão foi fornecido como parte da sua instalação:PLATAFORMAMétodoArquivo de configuraçãoLinuxGerenciador de pacotesapt
,yum
ouzypper
/etc/mongod.conf
macOSbrew
Gerente de pacotes/usr/local/etc/mongod.conf
(em processadores Intel), ou/opt/homebrew/etc/mongod.conf
(nos processadores Apple M )1WindowsInstalador MSI<install directory>\bin\mongod.cfg
Se você instalou o MongoDB por meio de um arquivo
TGZ
ouZIP
baixado, você deverá criar seu próprio arquivo de configuração. A configuração básica de exemplo é um bom ponto de partida.
Formato de arquivo
Os arquivos de configuração do MongoDB usam o YAML formato [1].
O seguinte arquivo de configuração de amostra contém várias configurações do mongod
que você pode adaptar para sua configuração local:
Observação
O YAML não suporta caracteres de tabulação para indentação: em vez disso, use espaços.
systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: journal: enabled: true processManagement: fork: true net: bindIp: 127.0.0.1 port: 27017 setParameter: enableLocalhostAuthBypass: false ...
Os scripts de inicialização do pacote Linux incluídos nos pacotes oficiais do MongoDB dependem de valores específicos para systemLog.path
, storage.dbPath
e processManagement.fork
. Se você modificar essas configurações no arquivo de configuração padrão, mongod
pode não iniciar.
[1] | YAML é um superconjunto de JSON. |
Valores de origem externa
Novo na versão 4.2: O MongoDB oferece suporte ao uso de diretivas de expansão em arquivos de configuração para carregar valores de origem externa. As diretivas de expansão podem carregar valores para opções específicas do arquivo de configuração ou carregar o arquivo de configuração inteiro.
As seguintes diretivas de expansão estão disponíveis:
Diretiva de expansão | Descrição |
---|---|
Permite que os usuários especifiquem um endpoint Se o arquivo de configuração incluir a expansão | |
Permite que os usuários especifiquem um comando shell ou terminal como a origem externa para opções de arquivo de configuração ou o arquivo de configuração completo. Se o arquivo de configuração incluir a expansão |
Para obter a documentação completa, consulte Valores de arquivo de configuração de origem externa.
Usar o arquivo de configuração
Para configurar mongod
ou mongos
usando um arquivo de configuração, especifique o arquivo de configuração com a opção --config
ou a opção -f
, como nos exemplos a seguir:
Por exemplo, o seguinte utiliza mongod --config
<configuration file>
mongos --config
<configuration file>
:
mongod --config /etc/mongod.conf mongos --config /etc/mongos.conf
Você também pode utilizar o alias -f
para especificar o arquivo de configuração, como no seguinte:
mongod -f /etc/mongod.conf mongos -f /etc/mongos.conf
Se você instalou a partir de um pacote e iniciou o MongoDB usando o script de inicialização do sistema, já está usando um arquivo de configuração.
Diretivas de expansão e --configExpand
Se você estiver utilizando diretivas de expansão no arquivo de configuração, você deverá incluir a opção --configExpand
ao iniciar o mongod
ou mongos
. Por exemplo:
mongod --config /etc/mongod.conf --configExpand "rest,exec" mongos --config /etc/mongos.conf --configExpand "rest,exec"
Se o arquivo de configuração incluir uma diretiva de expansão e você iniciar o mongod
/ mongos
sem especificar esta diretiva na opção --configExpand
, a mongod
/ mongos
falhará ao iniciar.
Para obter a documentação completa, consulte Valores de arquivo de configuração de origem externa.
Opções principais
systemLog
Opções
systemLog: verbosity: <int> quiet: <boolean> traceAllExceptions: <boolean> syslogFacility: <string> path: <string> logAppend: <boolean> logRotate: <string> destination: <string> timeStampFormat: <string> component: accessControl: verbosity: <int> command: verbosity: <int> # COMMENT additional component verbosity settings omitted for brevity
systemLog.verbosity
Tipo: inteiro
Padrão: 0
O nível de detalhamento da mensagem de log padrão para componentes. O nível de verbosidade determina a quantidade de mensagens informativas e de depuração que o MongoDB emite. [2]
O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
Para usar um nível de verbosidade diferente para um componente nomeado, use a configuração de verbosidade do componente. Por exemplo, use o
systemLog.component.accessControl.verbosity
para definir o nível de verbosidade especificamente para componentesACCESS
.Consulte as configurações do
systemLog.component.<name>.verbosity
para configurações de verbosidade de componente específicas.Para ver várias maneiras de definir o nível de verbosidade do registro, consulte Configurar níveis de verbosidade do registro.
[2] A partir da versão 4.2, o MongoDB inclui o nível de verbosidade de depuração (1-5) nas mensagens de registro. Por exemplo, se o nível de verbosidade for 2, o MongoDB registrará D2
. Em versões anteriores, as mensagens de registro do MongoDB especificavam somenteD
para o nível de depuração.
systemLog.quiet
Tipo: booleano
Padrão: false
Execute
mongos
oumongod
em um modo silencioso que tente limitar a quantidade de saída.systemLog.quiet
não é recomendado para sistemas de produção, pois pode dificultar muito o rastreamento de problemas durante conexões específicas.
systemLog.traceAllExceptions
Tipo: booleano
Padrão: false
Imprima informações verbais para depuração. Use para registro adicional para solução de problemas relacionados ao suporte.
systemLog.syslogFacility
Tipo: string
Usuário padrão
O nível da instalação utilizado ao registrar mensagens para syslog. O valor especificado deve ser suportado pela implementação de syslog do seu sistema operacional. Para utilizar esta opção, você deve configurar
systemLog.destination
parasyslog
.
systemLog.path
Tipo: string
O caminho do arquivo de registro para o qual o
mongod
oumongos
deve enviar todas as informações de registro de diagnóstico, em vez da saída padrão ou do syslog do host. O MongoDB cria o arquivo de log no caminho especificado.Os scripts de inicialização do pacote Linux não esperam que
systemLog.path
mude dos padrões. Se você usar os pacotes Linux e alterarsystemLog.path
, deverá usar seus próprios scripts de inicialização e desabilitar os scripts integrados.
systemLog.logAppend
Tipo: booleano
Padrão: false
Quando
true
,mongos
oumongod
acrescenta novas entradas ao final do arquivo de log existente quando a instância for reiniciada. Sem esta opção,mongod
oumongos
faz backup do log existente e cria um novo arquivo.
systemLog.logRotate
Tipo: string
Padrão: renomear
Determina o comportamento do comando
logRotate
ao girar o log do servidor e/ou o log de auditoria. Especifiquerename
oureopen
:rename
renomeia o arquivo de log.reopen
fecha e reabre o arquivo de log seguindo o comportamento típico de rotação de registro Linux/Unix. Utilize oreopen
ao usar o utilitário de rotação de registro Linux/Unix para evitar perda de registro.Se você especificar
reopen
, também deverá definirsystemLog.logAppend
paratrue
.
systemLog.destination
Tipo: string
O destino para o qual o MongoDB envia toda a saída de log. Especifique
file
ousyslog
. Se você especificarfile
, também deverá especificarsystemLog.path
.Se você não especificar
systemLog.destination
, o MongoDB enviará toda a saída de log para saída padrão.Aviso
O daemon
syslog
gera carimbos de data/hora quando registra uma mensagem, não quando o MongoDB emite a mensagem. Isso pode levar a carimbos de data/hora enganosos para entradas de log, especialmente quando o sistema está sob carga pesada. Recomendamos usar a opçãofile
para sistemas de produção para garantir carimbos de data/hora precisos.
systemLog.timeStampFormat
Tipo: string
Padrão: iso8601-local
O formato de hora para carimbos de data/hora em mensagens de registro. Especifique um dos valores a seguir:
ValorDescriçãoiso8601-utc
Exibe carimbos de data/hora em Tempo Universal Coordenado (UTC) no formato ISO-8601. Por exemplo, para Nova Iorque no início da Época:1970-01-01T00:00:00.000Z
iso8601-local
Exibe carimbos de data e hora na hora local no formato ISO-8601. Por exemplo, para Nova Iorque no início da Época:1969-12-31T19:00:00.000-05:00
Observação
systemLog.timeStampFormat
não suporta maisctime
. Um exemplo de data formatadactime
é:Wed Dec 31 18:17:54.811
.
systemLog.component
Opções
systemLog: component: accessControl: verbosity: <int> command: verbosity: <int> # COMMENT some component verbosity settings omitted for brevity replication: verbosity: <int> election: verbosity: <int> heartbeats: verbosity: <int> initialSync: verbosity: <int> rollback: verbosity: <int> storage: verbosity: <int> journal: verbosity: <int> recovery: verbosity: <int> write: verbosity: <int>
Observação
A partir da versão 4.2, o MongoDB inclui o nível de verbosidade de depuração (1-5) nas mensagens de registro. Por exemplo, se o nível de verbosidade for 2, o MongoDB registrará D2
. Em versões anteriores, as mensagens de registro do MongoDB especificavam somente D
para o nível de depuração.
systemLog.component.accessControl.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de log para componentes relacionados ao controle de acesso. Consulte componentes do
ACCESS
.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.command.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados a comandos. Consulte
COMMAND
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.control.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados às operações de controle. Consulte
CONTROL
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.ftdc.verbosity
Tipo: inteiro
Padrão: 0
Novo na versão 3.2.
O nível de verbosidade da mensagem de log para componentes relacionados às operações de coleta de dados de diagnóstico. Consulte componentes do
FTDC
.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.geo.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de log para componentes relacionados às operações de análise geoespacial. Consulte
GEO
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.index.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados às operações de indexação. Consulte componentes do
INDEX
.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.network.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados às operações de rede. Consulte
NETWORK
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.query.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados às operações de consulta. Consulte
QUERY
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.replication.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados à replicação. Consulte
REPL
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.replication.election.verbosity
Tipo: inteiro
Padrão: 0
Novidades na versão 4.2.
O nível de verbosidade da mensagem de registro para componentes relacionados à eleição. Consulte
ELECTION
componentes.Se o
systemLog.component.replication.election.verbosity
estiver desmarcado, o nívelsystemLog.component.replication.verbosity
também se aplicará aos componentes da eleição.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.replication.heartbeats.verbosity
Tipo: inteiro
Padrão: 0
Novidade na versão 3.6.
O nível de verbosidade da mensagem de registro para componentes relacionados a batidas cardíacas. Consulte
REPL_HB
componentes.Se
systemLog.component.replication.heartbeats.verbosity
estiver desconfigurado,systemLog.component.replication.verbosity
nível também se aplica aos componentes de batimentos cardíacos.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.replication.initialSync.verbosity
Tipo: inteiro
Padrão: 0
Novidades na versão 4.2.
O nível de verbosidade da mensagem de registro para componentes relacionados ao initialSync. Veja os componentes
INITSYNC
.Se o
systemLog.component.replication.initialSync.verbosity
estiver desmarcado, o nível dosystemLog.component.replication.verbosity
também se aplicará aos componentes do initialSync.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.replication.rollback.verbosity
Tipo: inteiro
Padrão: 0
Novidade na versão 3.6.
O nível de verbosidade da mensagem de registro para componentes relacionados à reversão. Consulte componentes do
ROLLBACK
.Se o
systemLog.component.replication.rollback.verbosity
estiver desmarcado, o nível dosystemLog.component.replication.verbosity
também se aplicará aos componentes de reversão.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.sharding.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados ao sharding. Consulte
SHARDING
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.storage.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados ao armazenamento. Consulte componentes do
STORAGE
.Se o
systemLog.component.storage.journal.verbosity
estiver desmarcado, o nível dosystemLog.component.storage.verbosity
também se aplicará aos componentes do diário.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.storage.journal.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados à diário. Consulte componentes do
JOURNAL
.Se o
systemLog.component.storage.journal.verbosity
estiver desmarcado, os componentes de diário terão o mesmo nível de verbosidade que os componentes de armazenamento pai: ou seja, o nívelsystemLog.component.storage.verbosity
se configurado ou o nível de verbosidade padrão.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.storage.recovery.verbosity
Tipo: inteiro
Padrão: 0
Novidades na versão 4.0.
O nível de verbosidade da mensagem de registro para componentes relacionados à recuperação. Consulte componentes do
RECOVERY
.Se o
systemLog.component.storage.recovery.verbosity
estiver desmarcado, o nível dosystemLog.component.storage.verbosity
também se aplicará aos componentes de recuperação.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.transaction.verbosity
Tipo: inteiro
Padrão: 0
Novidades na versão 4.0.2.
O nível de verbosidade da mensagem de registro para componentes relacionados à transação. Consulte
TXN
componentes.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
systemLog.component.write.verbosity
Tipo: inteiro
Padrão: 0
O nível de verbosidade da mensagem de registro para componentes relacionados às operações de gravação. Consulte componentes do
WRITE
.O nível de verbosidade pode variar de
0
a5
:0
é o nível de detalhamento de log padrão do MongoDB, para incluir mensagens informativas.1
para5
aumenta o nível de verbosidade para incluir mensagens de Depuração.
processManagement
Opções
processManagement: fork: <boolean> pidFilePath: <string> timeZoneInfo: <string>
processManagement.fork
Tipo: booleano
Padrão: false
Ative um modo daemon que execute o processo
mongos
oumongod
em segundo plano. Por padrãomongos
oumongod
não é executado como um daemon. Para usarmongos
oumongod
como daemon, definaprocessManagement.fork
ou use um processo de controle que lide com o processo de daemonização (por exemplo,systemd
).A opção
processManagement.fork
não é suportada no Windows.Os scripts de inicialização do pacote Linux não esperam que
processManagement.fork
mude dos padrões. Se você usar os pacotes Linux e alterarprocessManagement.fork
, deverá usar seus próprios scripts de inicialização e desabilitar os scripts integrados.
processManagement.pidFilePath
Tipo: string
Especifica um local do arquivo para armazenar o ID do processo (PID) do processo
mongos
oumongod
. O usuário que executa o processo domongod
oumongos
deve ser capaz de gravar neste caminho. Se a opçãoprocessManagement.pidFilePath
não for especificada, o processo não criará um arquivo PID. Em geral, essa opção só é útil em combinação com a configuraçãoprocessManagement.fork
.Observação
Linux
No Linux, o gerenciamento de arquivos PID geralmente é de responsabilidade do sistema de inicialização da sua distribuição: geralmente, um arquivo de serviço no diretório
/etc/init.d
ou um arquivo de unidade systemd registrado emsystemctl
. Só use a opçãoprocessManagement.pidFilePath
se não estiver usando um desses sistemas de inicialização. Para obter mais informações, consulte o respectivo Guia de instalação do seu sistema operacional.Observação
macOS
No macOS, o gerenciamento de arquivos PID geralmente é tratado pelo
brew
. Utilize somente a opçãoprocessManagement.pidFilePath
se você não estiver utilizando obrew
em seu sistema macOS. Para obter mais informações, consulte o respectivo Guia de instalação do seu sistema operacional.
processManagement.timeZoneInfo
Tipo: string
O caminho completo a partir do qual carregar o banco de dados de fuso horário. Se esta opção não for fornecida, o MongoDB usará seu banco de dados de fuso horário integrado.
O arquivo de configuração incluído com pacotes Linux e macOS define o caminho do banco de dados de fuso horário para
/usr/share/zoneinfo
por padrão.O banco de dados de fuso horário embutido é uma cópia do banco de dados de fuso horário Olson/IANA . Ele é atualizado junto com as versões do MongoDB, mas o ciclo de lançamento da zona de fuso horário é diferente do ciclo de lançamento do MongoDB. A versão mais recente do banco de dados de fuso horário está disponível em nosso site de download .
Aviso
O MongoDB usa a timelib de terceiros biblioteca para fornecer conversões precisas entre fusos horários. Devido a uma atualização recente,
timelib
pode criar conversões de fuso horário imprecisas em versões mais antigas do MongoDB.Para vincular explicitamente ao banco de dados de fuso horário em versões do MongoDB antes de 5.0, 4.4.7 e 4.2.14, baixe o banco de dados de fuso horário . e utilize o parâmetro
timeZoneInfo
.
net
Opções
Alterado na versão 4.2: MongoDB 4.2 deprecia ssl
opções em favor de opções de tls
com funcionalidade idêntica.
Alterado na versão 5,0: MongoDB remove a opção de configuração do net.serviceExecutor
e a opção correspondente de linha de comando do --serviceExecutor
.
net: port: <int> bindIp: <string> bindIpAll: <boolean> maxIncomingConnections: <int> wireObjectCheck: <boolean> ipv6: <boolean> unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int> tls: certificateSelector: <string> clusterCertificateSelector: <string> mode: <string> certificateKeyFile: <string> certificateKeyFilePassword: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> logVersions: <string> compression: compressors: <string>
net.port
Tipo: inteiro
Padrão:
27017 para
mongod
(se não for um membro do shard ou um membro do servidor de configuração) ou instância domongos
27018 se
mongod
for umshard member
27019 se
mongod
for umconfig server member
A porta TCP na qual a instância do MongoDB escuta conexão de cliente.
net.bindIp
Tipo: string
Padrão: localhost
Os nomes de host e/ou endereços IP e/ou caminhos de soquete de domínio Unix completos nos quais
mongos
oumongod
devem escutar conexões de clientes. Você pode anexarmongos
oumongod
a qualquer interface. Para vincular vários endereços, insira uma lista de valores separados por vírgula.Exemplo
localhost,/tmp/mongod.sock
Você pode especificar endereços IPv4 e IPv6 ou nomes de host que resolvem para um endereço IPv4 ou IPv6.
Exemplo
localhost, 2001:0DB8:e132:ba26:0d5c:2774:e7f9:d513
Observação
Se especificar um endereço IPv6 ou um nome de host que resolva para um endereço IPv6 para
net.bindIp
, você deve começarmongos
oumongod
comnet.ipv6 : true
para habilitar o suporte a IPv6 . A especificação de um endereço IPv6 paranet.bindIp
não habilita o suporte a IPv6 .Se estiver especificando um endereço IPv6 de link local (
fe80::/10
), você deve anexar o índice de zona para esse endereço (ou seja,fe80::<address>%<adapter-name>
).Exemplo
localhost,fe80::a00:27ff:fee0:1fcf%enp0s3
Importante
Para evitar atualizações de configuração devido a alterações de endereço IP, use nomes de host DNS em vez de endereços IP. É particularmente importante usar um nome de host DNS em vez de um endereço IP ao configurar membros de conjunto de réplicas ou membros de cluster fragmentado.
Use nomes de host em vez de endereços IP para configurar clusters em um horizonte de rede dividido. A partir do MongoDB 5.0, os nós que são configurados apenas com um endereço IP falham na validação de inicialização e não iniciam.
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 vinculação de IP, consulte a documentação Vinculação de IP.
Para vincular a todos os endereços IPv4, digite
0.0.0.0
.Para vincular a todos os4 endereços IPv e IPv6 , digite
::,0.0.0.0
ou começando no MongoDB 4.2, um asterisco"*"
(coloque o asterisco entre aspas para diferenciá-lo dos nós de alias YAML). Alternativamente, utilize a configuraçãonet.bindIpAll
.Observação
net.bindIp
enet.bindIpAll
são mutuamente exclusivos. Ou seja, você pode especificar um ou outro, mas não ambos.A opção de linha de comando
--bind_ip
substitui a configuração do arquivo de configuraçãonet.bindIp
.
Para configurar nós de cluster para DNS de horizonte dividido, use nomes de host em vez de endereços IP.
Começando no MongoDB v5,0,
replSetInitiate
ereplSetReconfig
rejeitam configurações que usam endereços IP em vez de nomes de host.Use
disableSplitHorizonIPCheck
para modificar nós que não podem ser atualizados para usar nomes de host. O parâmetro se aplica somente aos comandos de configuração.mongod
emongos
não dependem dedisableSplitHorizonIPCheck
para validação na inicialização. As instâncias herdadasmongod
emongos
que usam endereços IP em vez de nomes de host podem ser iniciadas após uma atualização.As instâncias configuradas com endereços IP registram um aviso para usar nomes de host em vez de endereços IP.
net.bindIpAll
Tipo: booleano
Padrão: false
Novidade na versão 3.6.
Se true, a instância
mongos
oumongod
vincula-se a todos os endereços IPv4 (ou seja,0.0.0.0
). Semongos
oumongod
começar comnet.ipv6 : true
,net.bindIpAll
também se vinculará a todos os endereços IPv6 (ou seja,::
).mongos
oumongod
só é compatível com IPv6 se for iniciado comnet.ipv6 : true
. A especificaçãonet.bindIpAll
por si só não habilita o suporte a IPv6 .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 vinculação de IP, consulte a documentação Vinculação de IP.
Como alternativa, defina
net.bindIp
como::,0.0.0.0
ou, a partir do MongoDB 4.2, para um asterisco"*"
(coloque o asterisco entre aspas para diferenciá-lo dos nós de alias YAML) para vincular-se a todos os endereços IP.Observação
net.bindIp
enet.bindIpAll
são mutuamente exclusivos. Especificar ambas as opções faz com quemongos
oumongod
jogue um erro e termine.
net.maxIncomingConnections
Tipo: inteiro
Padrão (Windows): 1.000.000Padrão (Linux): (RLIMIT_NOFILE) * 0.8O número máximo de conexões simultâneas que
mongos
oumongod
aceita. Esta configuração não terá efeito se for maior do que o limite máximo de rastreamento de conexão configurado pelo sistema operacional.Não atribua um valor muito baixo a essa opção, ou você poderá encontrar erros durante a operação normal do aplicativo.
Isso é particularmente útil para um
mongos
se você tiver um cliente que cria várias conexões e permite que elas atinjam o tempo limite em vez de fechá-las.Nesse caso, defina
maxIncomingConnections
como um valor um pouco maior que o número máximo de conexões que o cliente cria ou o tamanho máximo do pool de conexões.Essa configuração impede que o
mongos
cause picos de conexão nos fragmentos individuais. Picos como esses podem interromper a operação e a alocação de memória do cluster fragmentado.
net.wireObjectCheck
Tipo: booleano
Padrão: true
Quando
true
, a instânciamongod
oumongos
valida todas as solicitações dos clientes no recebimento para evitar que os clientes insiram BSON malformado ou inválido em um banco de dados do MongoDB.Para objetos com um alto grau de aninhamento de subdocumento, o
net.wireObjectCheck
pode ter um pequeno impacto no desempenho.
net.ipv6
Tipo: booleano
Padrão: false
Configure
net.ipv6
paratrue
para habilitar o suporte a IPv6 .mongos
/mongod
desativa o suporte IPv6 por padrão.A configuração
net.ipv6
não direcionamongos
/mongod
para escutar em nenhum endereço ou interface IPv6 local. Para configurar omongos
/mongod
para escutar em uma interface IPv6 , você deve:Configurar
net.bindIp
com um ou mais endereços IPv6 ou nomes de host que resolvam para endereços IPv6 , ouDefina
net.bindIpAll
comotrue
.
net.unixDomainSocket
Opções
net: unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <int>
net.unixDomainSocket.enabled
Tipo: booleano
Padrão: true
Ative ou desative a escuta no soquete de domínio UNIX.
net.unixDomainSocket.enabled
se aplica somente aos sistemas baseados em Unix.Quando
net.unixDomainSocket.enabled
estátrue
,mongos
oumongod
escuta no soquete UNIX.O processo
mongos
oumongod
sempre escuta no soquete UNIX, a menos que um dos seguintes seja verdadeiro:net.unixDomainSocket.enabled
éfalse
--nounixsocket
está definido. A opção da linha de comando tem precedência sobre a configuração do arquivo de configuração.net.bindIp
não está definidonet.bindIp
não especificalocalhost
ou seu endereço IP associado
mongos
oumongod
instalado a partir do .deb oficial e .rpm os pacotes têm a configuraçãobind_ip
definida como127.0.0.1
por padrão.
net.unixDomainSocket.pathPrefix
Tipo: string
Padrão: /tmp
O caminho para o soquete UNIX.
net.unixDomainSocket.pathPrefix
se aplica somente aos sistemas baseados em Unix.Se essa opção não tiver valor, o processo
mongos
oumongod
criará um soquete com/tmp
como prefixo. O MongoDB cria e escuta em um soquete UNIX, a menos que uma das seguintes afirmações seja verdadeira:net.unixDomainSocket.enabled
éfalse
--nounixsocket
está definidonet.bindIp
não está definidonet.bindIp
não especificalocalhost
ou seu endereço IP associado
net.unixDomainSocket.filePermissions
Tipo: int
Padrão:
0700
Define a permissão para o arquivo de soquete de domínio UNIX.
net.unixDomainSocket.filePermissions
aplica-se apenas a sistemas baseados em Unix.
net.http
Opções
Alterado na versão 3.6: MongoDB 3,6 remove as opções de net.http
obsoletas. As opções foram descontinuadas desde a versão 3.2.
net.tls
Opções
Novidade na versão 4.2: as opções do tls
fornecem funcionalidade idêntica às opções anteriores do ssl
.
net: tls: mode: <string> certificateKeyFile: <string> certificateKeyFilePassword: <string> certificateSelector: <string> clusterCertificateSelector: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean> logVersions: <string>
net.tls.mode
Tipo: string
Novidades na versão 4.2.
Ativa o TLS usado para todas as conexões de rede. O argumento para a configuração
net.tls.mode
pode ser um dos seguintes:ValorDescriçãodisabled
O servidor não usa TLS.allowTLS
As conexões entre servidores não usam TLS. Para conexões recebidas , o servidor aceita TLS e não TLS.preferTLS
As conexões entre servidores usam TLS. Para conexões recebidas , o servidor aceita TLS e não TLS.requireTLS
O servidor usa e aceita apenas conexões criptografadas TLS.Se
--tlsCAFile
outls.CAFile
não for especificado e você não estiver usando a autenticação x.509, será necessário definir o parâmetrotlsUseSystemCA
comotrue
. Isso faz com que o MongoDB use o armazenamento de certificados CA em todo o sistema ao se conectar a um servidor habilitado para TLS.Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.certificateKeyFile
Tipo: string
Novo na versão 4.2: O arquivo
.pem
que contém o certificado e a chave TLS.Começando com MongoDB 4.0 no macOS ou no Windows, você pode usar a configuração
net.tls.certificateSelector
para especificar um certificado do armazenamento seguro de certificados do sistema operacional em vez de um arquivo de chave PEM.certificateKeyFile
enet.tls.certificateSelector
são mutuamente exclusivos. Você só pode especificar uma.No Linux/BSD, você deve especificar
net.tls.certificateKeyFile
quando TLS estiver habilitado.No Windows ou macOS, você deve especificar
net.tls.certificateKeyFile
ounet.tls.certificateSelector
quando TLS estiver habilitado.Importante
Para Windows apenas, MongoDB 4.0 e posterior não oferecem suporte a arquivos PEM criptografados.
mongod
falha ao iniciar se encontrar um arquivo PEM criptografado. Para armazenar e acessar com segurança um certificado para uso com TLS no Windows, usenet.tls.certificateSelector
.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.certificateKeyFilePassword
Tipo: string
Novidades na versão 4.2: a senha para descriptografar o arquivo de chave de certificado (ou seja,
certificateKeyFile
). Use a opçãonet.tls.certificateKeyFilePassword
somente se o arquivo de chave de certificado estiver criptografado. Em todos os casos, omongos
oumongod
edita a senha de todos os resultados de geração de registros e relatórios.A partir do MongoDB 4.0:
No Linux/BSD, se a chave privada no arquivo PEM estiver criptografada e você não especificar a opção
net.tls.certificateKeyFilePassword
, o MongoDB solicitará uma senha.Para obter mais informações, consulte Senha do Certificado TLS/SSL.
No macOS, se a chave privada no arquivo PEM estiver criptografada, você deverá especificar explicitamente a opção
net.tls.certificateKeyFilePassword
. Como alternativa, você pode usar um certificado do armazenamento seguro do sistema (consultenet.tls.certificateSelector
) em vez de um arquivo de chave PEM ou usar um arquivo PEM não criptografado.No Windows, o MongoDB não oferece suporte a certificados criptografados. O
mongod
falhará se encontrar um arquivo PEM criptografado. Em vez disso, usenet.tls.certificateSelector
.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.certificateSelector
Tipo: string
Novo na versão 4.2: Disponível no Windows e macOS como alternativa ao
net.tls.certificateKeyFile
. No MongoDB 4.0, consultenet.ssl.certificateSelector
.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento de certificados do sistema operacional para usar para TLS/SSL.
net.tls.certificateKeyFile
enet.tls.certificateSelector
são opções mutuamente exclusivas. Você só pode especificar uma.net.tls.certificateSelector
aceita um argumento do formato<property>=<value>
onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubject
String ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprint
às vezes é denominadofingerprint
.Ao usar o armazenamento de certificados SSL do sistema, o OCSP (Online Certificate Status Protocol) é usado para validar o status de revogação dos certificados.
O
mongod
pesquisa no armazenamento de certificados seguro do sistema operacional os certificados CA necessários para validar a sequência completa de certificados do certificado TLS especificado. Especificamente, o armazenamento de certificados seguro deve conter a CA raiz e quaisquer certificados de CA intermediários necessários para construir a sequência completa de certificados para o certificado TLS.Aviso
Se você usar
net.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
, não recomendamos o usonet.tls.CAFile
ounet.tls.clusterFile
para especificar o certificado de CA raiz e intermediárioPor exemplo, se o certificado TLS tiver sido assinado com um único certificado CA raiz, o armazenamento de certificados seguro deverá conter esse certificado CA raiz. Se o certificado TLS foi assinado com um certificado CA intermediário, o armazenamento de certificados seguro deverá conter o certificado CA intermediário e o certificado CA raiz.
Observação
Você não pode usar o comando
rotateCertificates
ou o método shelldb.rotateCertificates()
ao usarnet.tls.certificateSelector
ou--tlsCertificateSelector
definido comothumbprint
net.tls.clusterCertificateSelector
Tipo: string
Novidade na versão 4.2: disponível no Windows e macOS como alternativa ao
net.tls.clusterFile
.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento seguro de certificados do sistema operacional para usar para autenticação de assinatura x.509 interna.
net.tls.clusterFile
enet.tls.clusterCertificateSelector
são opções mutuamente exclusivas. Você só pode especificar uma.net.tls.clusterCertificateSelector
aceita um argumento do formato<property>=<value>
onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubject
String ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprint
às vezes é denominadofingerprint
.O
mongod
pesquisa no armazenamento de certificados seguro do sistema operacional os certificados CA necessários para validar a cadeia completa de certificados do certificado de cluster especificado. Especificamente, o armazenamento de certificados seguro deve conter a CA raiz e quaisquer certificados de CA intermediários necessários para construir a sequência completa de certificados para o certificado de cluster.Aviso
Se você usar
net.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
, não recomendamos o usonet.tls.CAFile
ounet.tls.clusterCAFile
para especificar o certificado CA raiz e intermediário.Por exemplo, se o certificado de cluster tiver sido assinado com um único certificado CA raiz, o armazenamento de certificados seguro deverá conter esse certificado CA raiz. Se o certificado de cluster foi assinado com um certificado CA intermediário, o armazenamento de certificados seguro deverá conter o certificado CA intermediário e o certificado CA raiz.
mongod
/mongos
registra um aviso na conexão se o x for apresentado. O certificado 509 expira dentro30
dias a partir da hora do sistema hostmongod/mongos
. Consulte x.509 trigger de certificados próximos da expiração para obter mais informações.
net.tls.clusterFile
Tipo: string
Novo na versão 4.2: O arquivo
.pem
que contém o arquivo de chave de certificado x.509 para autenticação de associação para o cluster ou conjunto de réplicas.Começando com MongoDB 4.0 no macOS ou no Windows, você pode usar a opção
net.tls.clusterCertificateSelector
para especificar um certificado do armazenamento seguro de certificados do sistema operacional em vez de um arquivo de chave PEM. As opções donet.tls.clusterFile
enet.tls.clusterCertificateSelector
são mutuamente exclusivas. Você só pode especificar uma.Se o
net.tls.clusterFile
não especificar o arquivo.pem
para autenticação de cluster interno ou a alternativanet.tls.clusterCertificateSelector
, o cluster usará o arquivo.pem
especificado na configuraçãocertificateKeyFile
ou o certificado retornado pelonet.tls.certificateSelector
.mongod
/mongos
registra um aviso na conexão se o x for apresentado. O certificado 509 expira dentro30
dias a partir da hora do sistema hostmongod/mongos
. Consulte x.509 trigger de certificados próximos da expiração para obter mais informações.Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .Importante
Para Windows apenas, MongoDB 4.0 e posterior não oferecem suporte a arquivos PEM criptografados.
mongod
falha ao iniciar se encontrar um arquivo PEM criptografado. Para armazenar e acessar com segurança um certificado para uso com autenticação de associação no Windows, usenet.tls.clusterCertificateSelector
.
net.tls.clusterPassword
Tipo: string
Novidades na versão 4.2: a senha para descriptografar o x.509 arquivo de chave de certificado especificado com
--sslClusterFile
. Use a opçãonet.tls.clusterPassword
somente se o arquivo de chave de certificado estiver criptografado. Em todos os casos,mongos
oumongod
edita a senha de todos os resultados de geração de registros e relatórios.A partir do MongoDB 4.0:
No Linux/BSD, se a chave privada no x.509 estiver criptografado e você não especificar a opção
net.tls.clusterPassword
, o MongoDB solicitará uma senha.Para obter mais informações, consulte Senha do Certificado TLS/SSL.
No macOS, se a chave privada no x.509 estiver criptografado, você deve especificar explicitamente a opção
net.tls.clusterPassword
. Como alternativa, você pode usar um certificado do armazenamento seguro do sistema (consultenet.tls.clusterCertificateSelector
) em vez de um arquivo PEM de cluster ou usar um arquivo PEM não criptografado.No Windows, o MongoDB não oferece suporte a certificados criptografados. O
mongod
falhará se encontrar um arquivo PEM criptografado. Utilizenet.tls.clusterCertificateSelector
.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.CAFile
Tipo: string
Novo na versão 4.2: O arquivo
.pem
que contém a cadeia de certificados raiz da Autoridade de Certificação. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.- Somente Windows/macOS
- Se estiver utilizando
net.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
, não utilizenet.tls.CAFile
para especificar os certificados CA raiz e intermediário. Armazene todos os certificados CA necessários para validar toda a cadeia de confiança dos certificadosnet.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
no armazenamento seguro de certificados.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.clusterCAFile
Tipo: string
Novo na versão 4.2: o arquivo
.pem
que contém a sequência de certificados raiz da autoridade de certificação usada para validar o certificado apresentado por um cliente que estabelece uma conexão. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.net.tls.clusterCAFile
requer quenet.tls.CAFile
esteja definido.Se
net.tls.clusterCAFile
não especificar o arquivo.pem
para validar o certificado de um cliente estabelecendo uma conexão, o cluster utilizará o arquivo.pem
especificado na opçãonet.tls.CAFile
.net.tls.clusterCAFile
permite que você use autoridades de certificação separadas para verificar as partes cliente-servidor e servidor-cliente do handshake TLS.A partir de 4.0, no macOS ou no Windows, você pode usar um certificado do armazenamento seguro do sistema operacional em vez de um arquivo de chave PEM. Consulte
net.tls.clusterCertificateSelector
. Ao usar o armazenamento seguro, você não precisa, mas também pode, especificar onet.tls.clusterCAFile
.- Somente Windows/macOS
- Se estiver utilizando
net.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
, não utilizenet.tls.clusterCAFile
para especificar os certificados CA raiz e intermediário. Armazene todos os certificados CA necessários para validar toda a cadeia de confiança dos certificadosnet.tls.certificateSelector
e/ounet.tls.clusterCertificateSelector
no armazenamento seguro de certificados.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.CRLFile
Tipo: string
Novidade na versão 4.2: No MongoDB 4.0 e anteriores, consulte
net.ssl.CRLFile
.O arquivo
.pem
que contém a lista de revogação de certificado. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.Observação
A partir do MongoDB 4.0, você não pode especificar
net.tls.CRLFile
no macOS. Em vez disso, você pode usar o armazenamento de certificados SSL do sistema, que usa OCSP (Online Certificate Status Protocol) para validar o status de revogação dos certificados. Consultenet.ssl.certificateSelector
em MongoDB 4.0 enet.tls.certificateSelector
no MongoDB 4.2+ para usar o armazenamento de certificados SSL do sistema.Para verificar a revogação de certificados, o MongoDB
enables
o uso do OCSP (Online Certificate Status Protocol) por padrão como uma alternativa à especificação de um arquivo CRL ou ao uso do armazenamento de certificados SSL do sistema.
Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.allowConnectionsWithoutCertificates
Tipo: booleano
Novidades na versão 4.2.
Por padrão, o servidor ignora a validação do certificado de cliente, a menos que o servidor esteja configurado para utilizar um arquivo CA. Se um arquivo CA for fornecido, as regras a seguir serão aplicadas:
Para clientes que não fornecem certificados,
mongod
oumongos
criptografa a conexão TLS/SSL, supondo que a conexão seja bem-sucedida.Para clientes que apresentam um certificado, o
mongos
oumongod
executa a validação do certificado utilizando a cadeia de certificado raiz especificada peloCAFile
e rejeita clientes com certificados inválidos.
Use a opção
net.tls.allowConnectionsWithoutCertificates
se você tiver uma implantação mista que inclua clientes que não apresentam ou não podem apresentar certificados para omongos
oumongod
.Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
net.tls.allowInvalidCertificates
Tipo: booleano
Novidades na versão 4.2.
Habilite ou desabilite as verificações de validação de certificados TLS em outros servidores no cluster e permita o uso de certificados inválidos para conexão.
Observação
Se você especificar
--tlsAllowInvalidCertificates
outls.allowInvalidCertificates: true
ao usar a autenticação x.509, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação.Ao usar a configuração
net.tls.allowInvalidCertificates
, o MongoDB registra um aviso sobre o uso do certificado inválido.Para obter mais informações sobre TLS e MongoDB, consulte Configurar
mongod
emongos
para TLS/SSL e autenticação interna/associação.
net.tls.allowInvalidHostnames
Tipo: booleano
Padrão: false
Quando o
net.tls.allowInvalidHostnames
étrue
, o MongoDB desabilita a validação dos nomes de host em certificados TLS. Isso permite aomongod
oumongos
se conectar a outras instâncias MongoDB no agrupamento, mesmo se o nome de host de seus certificados não corresponder ao nome de host especificado.Para mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL.
net.tls.disabledProtocols
Tipo: string
Impede que um servidor MongoDB em execução com TLS aceite conexões recebidas que usam um protocolo ou protocolos específicos. Para especificar vários protocolos, use uma lista separada por vírgula de protocolos, mas não use espaços após as vírgulas. Se você incluir um espaço antes do nome de um protocolo, o servidor o interpretará como um protocolo não reconhecido e não iniciará.
net.tls.disabledProtocols
reconhece os seguintes protocolos:TLS1_0
,TLS1_1
,TLS1_2
eTLS1_3
.No macOS, você não pode desativar
TLS1_1
e deixarTLS1_0
eTLS1_2
ativados. Você deve desativar pelo menos um dos outros dois, por exemplo,TLS1_0,TLS1_1
.Para listar vários protocolos, especifique como uma lista separada por vírgula de protocolos sem espaços após as vírgulas. Por exemplo
TLS1_0,TLS1_1
.Especificar um protocolo não reconhecido ou incluir um espaço após uma vírgula impede que o servidor seja iniciado.
Os protocolos desabilitados especificados substituem qualquer protocolo padrão desabilitado.
O MongoDB desabilita o uso do TLS 1.0 se TLS 1.1+ está disponível no sistema. Para habilitar o TLS 1.0, especifique
none
paranet.tls.disabledProtocols
.Os membros dos conjuntos de réplicas e cluster fragmentado devem falar pelo menos um protocolo em comum.
Dica
Veja também:
net.tls.FIPSMode
Tipo: booleano
Novidades na versão 4.2.
Ative ou desative o uso do modo FIPS da biblioteca TLS para o
mongos
oumongod
. Seu sistema deve ter uma biblioteca compatível com FIPS para usar a opçãonet.tls.FIPSMode
.Observação
O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.
net.tls.logVersions
Tipo: string
Instrui
mongos
oumongod
a registrar uma mensagem quando um cliente se conecta usando uma versão especificada do TLS.Especifique uma única versão do TLS ou uma lista separada por vírgula de várias versões do TLS.
Exemplo
Para instruir
mongos
oumongod
a registrar uma mensagem quando um cliente se conectar usando TLS 1.2 ou TLS 1.3, definanet.tls.logVersions
como"TLS1_2,TLS1_3"
.
net.ssl
Opções
Importante
Todas as opções SSL estão descontinuadas desde 4.2. Em vez disso, use as contrapartes TLS , pois elas têm funcionalidade idêntica às opções SSL. O protocolo SSL é preterido e o MongoDB suporta TLS 1.0 e posterior.
net: ssl: # deprecated since 4.2 sslOnNormalPorts: <boolean> # deprecated since 2.6 mode: <string> PEMKeyFile: <string> PEMKeyPassword: <string> certificateSelector: <string> clusterCertificateSelector: <string> clusterFile: <string> clusterPassword: <string> CAFile: <string> clusterCAFile: <string> CRLFile: <string> allowConnectionsWithoutCertificates: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> disabledProtocols: <string> FIPSMode: <boolean>
net.ssl.sslOnNormalPorts
Tipo: booleano
Descontinuado desde a versão 2.6: Em vez disso, use
net.tls.mode: requireTLS
.Ative ou desative TLS/SSL para
mongos
oumongod
.Com o
net.ssl.sslOnNormalPorts
, ummongos
oumongod
exige criptografia TLS/SSL para todas as conexões na porta MongoDB padrão ou a porta especificada pornet.port
. Por padrão,net.ssl.sslOnNormalPorts
está desabilitado.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.mode
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.mode
.Habilita TLS/SSL ou TLS/SSL misto usado para todas as conexões de rede. O argumento para a configuração
net.ssl.mode
pode ser um dos seguintes:ValorDescriçãodisabled
O servidor não usa TLS/SSL.allowSSL
As conexões entre servidores não usam TLS/SSL. Para conexões recebidas, o servidor aceita TLS/SSL e não TLS/não SSL.preferSSL
As conexões entre servidores usam TLS/SSL. Para conexões recebidas, o servidor aceita TLS/SSL e não TLS/não SSL.requireSSL
O servidor usa e aceita apenas conexões criptografadas TLS/SSL.Se
--tlsCAFile
/net.tls.CAFile
(ou seus aliases--sslCAFile
/net.ssl.CAFile
) não for especificado e você não estiver usando a autenticação x.509, você deve definir o parâmetrotlsUseSystemCA
comotrue
. Isso faz com que o MongoDB use o armazenamento de certificados de CA em todo o sistema ao se conectar a um servidor habilitado para TLS.Para usar a autenticação x.509,
--tlsCAFile
ounet.tls.CAFile
deve-se especificar a menos que você esteja usando--tlsCertificateSelector
ou--net.tls.certificateSelector
.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.PEMKeyFile
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.certificateKeyFile
.O arquivo
.pem
que contém o certificado e a chave TLS/SSL.Começando com MongoDB 4.0 no macOS ou no Windows, você pode usar a configuração
net.ssl.certificateSelector
para especificar um certificado do armazenamento seguro de certificados do sistema operacional em vez de um arquivo de chave PEM.PEMKeyFile
enet.ssl.certificateSelector
são mutuamente exclusivos. Você só pode especificar uma.No Linux/BSD, você deve especificar
net.ssl.PEMKeyFile
quando TLS/SSL estiver habilitado.No Windows ou macOS, você deve especificar
net.ssl.PEMKeyFile
ounet.ssl.certificateSelector
quando TLS/SSL estiver habilitado.Importante
Para Windows apenas, MongoDB 4.0 e posterior não oferecem suporte a arquivos PEM criptografados.
mongod
falha ao iniciar se encontrar um arquivo PEM criptografado. Para armazenar e acessar com segurança um certificado para uso com TLS/SSL no Windows, usenet.ssl.certificateSelector
.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.PEMKeyPassword
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.certificateKeyFilePassword
.A senha para descriptografar o arquivo da chave de certificado (ou seja,
PEMKeyFile
). Use a opçãonet.ssl.PEMKeyPassword
somente se o arquivo de chave de certificado estiver criptografado. Em todos os casos, omongos
oumongod
edita a senha de todos os resultados de geração de registros e relatórios.A partir do MongoDB 4.0:
No Linux/BSD, se a chave privada no arquivo PEM estiver criptografada e você não especificar a opção
net.ssl.PEMKeyPassword
, o MongoDB solicitará uma senha.Para obter mais informações, consulte Senha do Certificado TLS/SSL.
No macOS, se a chave privada no arquivo PEM estiver criptografada, você deverá especificar explicitamente a opção
net.ssl.PEMKeyPassword
. Como alternativa, você pode usar um certificado do armazenamento seguro do sistema (consultenet.ssl.certificateSelector
) em vez de um arquivo de chave PEM ou usar um arquivo PEM não criptografado.No Windows, o MongoDB não oferece suporte a certificados criptografados. O
mongod
falhará se encontrar um arquivo PEM criptografado. Em vez disso, usenet.ssl.certificateSelector
.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.certificateSelector
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.certificateSelector
.Novo na versão 4.0: Disponível no Windows e macOS como alternativa ao
net.ssl.PEMKeyFile
.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento de certificados do sistema operacional para usar para TLS/SSL.
net.ssl.PEMKeyFile
enet.ssl.certificateSelector
são opções mutuamente exclusivas. Você só pode especificar uma.net.ssl.certificateSelector
aceita um argumento do formato<property>=<value>
onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubject
String ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprint
às vezes é denominadofingerprint
.Ao usar o armazenamento de certificados SSL do sistema, o OCSP (Online Certificate Status Protocol) é usado para validar o status de revogação dos certificados.
O
mongod
pesquisa no armazenamento de certificados seguro do sistema operacional os certificados CA necessários para validar a cadeia completa de certificados do certificado TLS/SSL especificado. Especificamente, o armazenamento de certificados seguro deve conter a CA raiz e quaisquer certificados de CA intermediários necessários para construir a cadeia completa de certificados para o certificado TLS/SSL. Não usenet.ssl.CAFile
ounet.ssl.clusterFile
para especificar o certificado de CA raiz e intermediárioPor exemplo, se o certificado TLS/SSL foi assinado com um único certificado CA raiz, o armazenamento de certificados seguro deverá conter esse certificado CA raiz. Se o certificado TLS/SSL foi assinado com um certificado CA intermediário, o armazenamento de certificados seguro deverá conter o certificado CA intermediário e o certificado CA raiz.
net.ssl.clusterCertificateSelector
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.clusterCertificateSelector
.Novo na versão 4.0: Disponível no Windows e macOS como alternativa ao
net.ssl.clusterFile
.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento seguro de certificados do sistema operacional para usar para autenticação de assinatura x.509 interna.
net.ssl.clusterFile
enet.ssl.clusterCertificateSelector
são opções mutuamente exclusivas. Você só pode especificar uma.net.ssl.clusterCertificateSelector
aceita um argumento do formato<property>=<value>
onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubject
String ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprint
às vezes é denominadofingerprint
.O
mongod
pesquisa no armazenamento de certificados seguro do sistema operacional os certificados CA necessários para validar a cadeia completa de certificados do certificado de cluster especificado. Especificamente, o armazenamento de certificados seguro deve conter a CA raiz e quaisquer certificados de CA intermediários necessários para construir a sequência completa de certificados para o certificado de cluster. Não usenet.ssl.CAFile
ounet.ssl.clusterFile
para especificar o certificado de CA raiz e intermediário.Por exemplo, se o certificado de cluster tiver sido assinado com um único certificado CA raiz, o armazenamento de certificados seguro deverá conter esse certificado CA raiz. Se o certificado de cluster foi assinado com um certificado CA intermediário, o armazenamento de certificados seguro deverá conter o certificado CA intermediário e o certificado CA raiz.
net.ssl.clusterFile
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.clusterFile
.O arquivo
.pem
que contém o arquivo de chave de certificado x.509 para autenticação de associação para o cluster ou conjunto de réplicas.Começando com MongoDB 4.0 no macOS ou no Windows, você pode usar a opção
net.ssl.clusterCertificateSelector
para especificar um certificado do armazenamento seguro de certificados do sistema operacional em vez de um arquivo de chave PEM. As opções donet.ssl.clusterFile
enet.ssl.clusterCertificateSelector
são mutuamente exclusivas. Você só pode especificar uma.Se o
net.ssl.clusterFile
não especificar o arquivo.pem
para autenticação de cluster interno ou a alternativanet.ssl.clusterCertificateSelector
, o cluster usará o arquivo.pem
especificado na configuraçãoPEMKeyFile
ou o certificado retornado pelonet.ssl.certificateSelector
.Para usar a autenticação x.509,
--tlsCAFile
ounet.tls.CAFile
deve-se especificar a menos que você esteja usando--tlsCertificateSelector
ou--net.tls.certificateSelector
.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.Importante
Para Windows apenas, MongoDB 4.0 e posterior não oferecem suporte a arquivos PEM criptografados.
mongod
falha ao iniciar se encontrar um arquivo PEM criptografado. Para armazenar e acessar com segurança um certificado para uso com autenticação de associação no Windows, usenet.ssl.clusterCertificateSelector
.
net.ssl.clusterPassword
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.clusterPassword
.A senha para descriptografar o x.509 arquivo de chave de certificado especificado com
--sslClusterFile
. Use a opçãonet.ssl.clusterPassword
somente se o arquivo de chave de certificado estiver criptografado. Em todos os casos, omongos
oumongod
edita a senha de todos os resultados de geração de registros e relatórios.A partir do MongoDB 4.0:
No Linux/BSD, se a chave privada no x.509 estiver criptografado e você não especificar a opção
net.ssl.clusterPassword
, o MongoDB solicitará uma senha.Para obter mais informações, consulte Senha do Certificado TLS/SSL.
No macOS, se a chave privada no x.509 estiver criptografado, você deve especificar explicitamente a opção
net.ssl.clusterPassword
. Como alternativa, você pode usar um certificado do armazenamento seguro do sistema (consultenet.ssl.clusterCertificateSelector
) em vez de um arquivo PEM de cluster ou usar um arquivo PEM não criptografado.No Windows, o MongoDB não oferece suporte a certificados criptografados. O
mongod
falhará se encontrar um arquivo PEM criptografado. Utilizenet.ssl.clusterCertificateSelector
.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.CAFile
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.CAFile
.O arquivo
.pem
que contém a sequência de certificados raiz da autoridade de certificação. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.- Somente Windows/macOS
- Se estiver utilizando
net.ssl.certificateSelector
e/ounet.ssl.clusterCertificateSelector
, não utilizenet.ssl.CAFile
para especificar os certificados CA raiz e intermediário. Armazene todos os certificados CA necessários para validar toda a cadeia de confiança dos certificadosnet.ssl.certificateSelector
e/ounet.ssl.clusterCertificateSelector
no armazenamento seguro de certificados.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.clusterCAFile
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.clusterCAFile
.O arquivo
.pem
que contém a sequência de certificados raiz da autoridade de certificação usada para validar o certificado apresentado por um cliente que estabelece uma conexão. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.net.ssl.clusterCAFile
requer quenet.ssl.CAFile
esteja definido.Se
net.ssl.clusterCAFile
não especificar o arquivo.pem
para validar o certificado de um cliente estabelecendo uma conexão, o cluster utilizará o arquivo.pem
especificado na opçãonet.ssl.CAFile
.net.ssl.clusterCAFile
permite que você use autoridades de certificação separadas para verificar as partes cliente-servidor e servidor-cliente do handshake TLS.A partir de 4.0, no macOS ou no Windows, você pode usar um certificado do armazenamento seguro do sistema operacional em vez de um arquivo de chave PEM. Consulte
net.ssl.clusterCertificateSelector
. Ao usar o armazenamento seguro, você não precisa, mas também pode, especificar onet.ssl.clusterCAFile
.- Somente Windows/macOS
- Se estiver utilizando
net.ssl.certificateSelector
e/ounet.ssl.clusterCertificateSelector
, não utilizenet.ssl.clusterCAFile
para especificar os certificados CA raiz e intermediário. Armazene todos os certificados CA necessários para validar toda a cadeia de confiança dos certificadosnet.ssl.certificateSelector
e/ounet.ssl.clusterCertificateSelector
no armazenamento seguro de certificados.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.CRLFile
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.CRLFile
.O arquivo
.pem
que contém a lista de revogação de certificado. Especifique o nome do arquivo.pem
usando caminhos relativos ou absolutos.Observação
A partir do MongoDB 4.0, você não pode especificar
net.ssl.CRLFile
no macOS. Em vez disso, você pode usar o armazenamento de certificados SSL do sistema, que usa OCSP (Online Certificate Status Protocol) para validar o status de revogação dos certificados. Consultenet.ssl.certificateSelector
em MongoDB 4.0 enet.tls.certificateSelector
no MongoDB 4.2 para usar o armazenamento de certificados SSL do sistema.O MongoDB permite, por padrão, o uso do OCSP (Online Certificate Status Protocol) para verificar a revogação do certificado como uma alternativa à especificação de um arquivo CRL ou ao uso do armazenamento de certificados SSL do sistema.
Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.allowConnectionsWithoutCertificates
Tipo: booleano
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.allowConnectionsWithoutCertificates
.Para clientes que não fornecem certificados,
mongod
oumongos
criptografa a conexão TLS/SSL, supondo que a conexão seja bem-sucedida.Para clientes que apresentam um certificado, no entanto, o
mongos
oumongod
executa a validação do certificado utilizando a cadeia de certificado raiz especificada peloCAFile
e rejeita clientes com certificados inválidos.Use a opção
net.ssl.allowConnectionsWithoutCertificates
se você tiver uma implantação mista que inclua clientes que não apresentam ou não podem apresentar certificados para omongos
oumongod
.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.allowInvalidCertificates
Tipo: booleano
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.allowInvalidCertificates
.Habilite ou desabilite as verificações de validação de certificados TLS/SSL em outros servidores no cluster e permite o uso de certificados inválidos para conexão.
Observação
A partir do MongoDB 4,0, se você especificar qualquer uma das seguintes opções de autenticação x.509, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação:
--sslAllowInvalidCertificates
ounet.ssl.allowInvalidCertificates: true
para MongoDB 4.0 e versões mais recentes--tlsAllowInvalidCertificates
ounet.tls.allowInvalidCertificates: true
para MongoDB 4.2 e versões mais recentes
Ao usar a configuração
net.ssl.allowInvalidCertificates
, o MongoDB registra um aviso sobre o uso de um certificado inválido.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.allowInvalidHostnames
Tipo: booleano
Padrão: false
Descontinuado desde a versão 4.2.
Em vez disso, use
net.tls.allowInvalidHostnames
.Quando
net.ssl.allowInvalidHostnames
étrue
, o MongoDB desativa a validação dos nomes de host nos certificados TLS/SSL, permitindo quemongod
se conecte às instâncias do MongoDB se o nome de host dos certificados não corresponder ao nome de host especificado.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes.
net.ssl.disabledProtocols
Tipo: string
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.disabledProtocols
.Impede que um servidor MongoDB em execução com TLS/SSL aceite conexões recebidas que usam um ou mais protocolos específicos. Para especificar protocolos, use uma lista de protocolos separados por vírgulas.
net.ssl.disabledProtocols
reconhece os seguintes protocolos:TLS1_0
,TLS1_1
,TLS1_2
e a partir da versão 4.0.4 (e 3.6.9),TLS1_3
.No macOS, você não pode desativar
TLS1_1
e deixarTLS1_0
eTLS1_2
ativados. Você deve desativar pelo menos um dos outros dois, por exemplo,TLS1_0,TLS1_1
.Para listar vários protocolos, especifique uma lista de protocolos separados por vírgula. Por exemplo
TLS1_0,TLS1_1
.A especificação de um protocolo não reconhecido impede o servidor de iniciar.
Os protocolos desabilitados especificados substituem qualquer protocolo padrão desabilitado.
A partir da versão 4.0, o MongoDB desabilita o uso do TLS 1.0 se TLS 1.1+ está disponível no sistema. Para habilitar o TLS desabilitado 1.0, especifique
none
anet.ssl.disabledProtocols
.Os membros dos conjuntos de réplicas e cluster fragmentado devem falar pelo menos um protocolo em comum.
Dica
Veja também:
net.ssl.FIPSMode
Tipo: booleano
Descontinuado desde a versão 4.2: em vez disso, use
net.tls.FIPSMode
.Habilite ou desabilite o uso do modo FIPS da biblioteca TLS/SSL para o
mongos
oumongod
. Seu sistema deve ter uma biblioteca compatível com FIPS para usar a opçãonet.ssl.FIPSMode
.Observação
O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.
net.compression
Opção
net: compression: compressors: <string>
net.compression.compressors
Padrão: snappy,zstd,zlib
Novidade na versão 3.4.
Especifica os compressores padrão a serem usados na comunicação entre essa instância
mongod
oumongos
e:outros membros do sistema se a instância fizer parte de um conjunto de réplicas ou de um cluster fragmentado
drivers que suportam o formato de mensagem
OP_COMPRESSED
.
MongoDB é compatível com os seguintes compactadores:
Nas versões 3.6 e 4.0,
mongod
emongos
ativam a compactação de rede por padrão comsnappy
como o compressor.A partir da versão 4.2, as instâncias
mongod
emongos
padrão para ambos os compressoressnappy,zstd,zlib
, nessa ordem.Para desativar a compactação de rede, defina o valor como
disabled
.Importante
As mensagens são compactadas quando ambas as partes habilitam a compactação de rede. Caso contrário, as mensagens entre as partes serão descompactadas.
Se você especificar vários compressores, a ordem na qual você lista os compressores importam, bem como o iniciador de comunicação. Por exemplo, se o
mongosh
especificar os seguintes compressores de redezlib,snappy
e omongod
especificarsnappy,zlib
, as mensagens entremongosh
emongod
utilizarãozlib
.Se as partes não compartilharem pelo menos um compressor comum, as mensagens entre as partes serão descompactadas. Por exemplo, se
mongosh
especificar o compressor de redezlib
emongod
especificarsnappy
, as mensagens entremongosh
emongod
não serão compactadas.
security
Opções
security: keyFile: <string> clusterAuthMode: <string> authorization: <string> transitionToAuth: <boolean> javascriptEnabled: <boolean> redactClientLogData: <boolean> clusterIpSourceAllowlist: - <string> sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string> enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> connectRetries: <int> connectTimeoutMS: <int> ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string | array> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> userToDNMapping: <string> authz: queryTemplate: <string> validateLDAPServerConfig: <boolean>
security.keyFile
Tipo: string
O caminho para um arquivo de chave que armazena o segredo compartilhado que as instâncias do MongoDB usam para autenticar umas às outras em um cluster fragmentado ou conjunto de réplicas.
keyFile
implicasecurity.authorization
. Consulte Autenticação interna/de associação para obter mais informações.A partir do MongoDB 4.2, os arquivos de chave para autenticação de membros interna usam o formato YAML para permitir várias chaves em um arquivo de chave. O formato YAML aceita:
Uma única string de chave (igual às versões anteriores)
Uma sequência de strings de chave
O formato YAML é compatível com os arquivos-chave de chave única existentes que usam o formato de arquivo de texto.
security.clusterAuthMode
Tipo: string
Padrão: keyFile
O modo de autenticação usado para autenticação de cluster. Se você usar a autenticação x.509 interna, especifique-a aqui. Esta opção pode ter um dos seguintes valores:
ValorDescriçãokeyFile
Use um arquivo-chave para autenticação. Aceite apenas arquivos-chave.sendKeyFile
Para fins de atualização contínua. Envie um arquivo-chave para autenticação, mas pode aceitar arquivos-chave e certificados x.509.sendX509
Para fins de atualização contínua. Envie o certificado x.509 para autenticação, mas pode aceitar arquivos-chave e certificados x.509.x509
Recomendado. Envie o certificado x.509 para autenticação e aceite apenas certificados x.509.Se
--tlsCAFile
outls.CAFile
não for especificado e você não estiver usando a autenticação x.509, será necessário definir o parâmetrotlsUseSystemCA
comotrue
. Isso faz com que o MongoDB use o armazenamento de certificados CA em todo o sistema ao se conectar a um servidor habilitado para TLS.Para obter mais informações sobre TLS e MongoDB, consulte Configurar o
mongod
e omongos
para TLS/SSL e Configuração TLS/SSL para clientes .
security.authorization
Tipo: string
Padrão: desabilitado
Habilite ou desabilite o RBAC (Controle de Acesso Baseado em Função) para controlar o acesso de cada usuário a recursos e operações de banco de dados.
Defina esta opção como uma das seguintes:
ValorDescriçãoenabled
Um usuário pode acessar somente os recursos e ações do banco de dados para os quais receberam privilégios.disabled
Um usuário pode acessar qualquer banco de dados e executar qualquer ação.Consulte Controle de acesso baseado em funções para obter mais informações.
A configuração
security.authorization
está disponível somente paramongod
.
security.transitionToAuth
Tipo: booleano
Padrão: false
Novidades na versão 3.4: Permite ao
mongod
oumongos
aceitar e criar conexões autenticadas e não autenticadas de e para outras instâncias domongod
emongos
na implantação. Usado para realizar a transição contínua de conjunto de réplicas ou clusters fragmentados de uma configuração sem autenticação para mecanismo de autenticação. Requer a especificação de um mecanismo de autenticação , comosecurity.keyFile
.Por exemplo, se utilizar keyfiles para autenticação interna, o
mongod
oumongos
criará uma conexão autenticada com qualquermongod
oumongos
na implantação utilizando um arquivo de chave correspondente. Se os mecanismos de segurança não corresponderem, omongod
oumongos
utilizará uma conexão não autenticada.Um
mongod
oumongos
em execução comsecurity.transitionToAuth
não impõe controles de acesso de usuário. Os usuários podem se conectar ao seu sistema sem nenhuma verificação de controle de acesso e realizar operações de leitura, gravação e administrativas.Observação
Um
mongod
oumongos
executando com autenticação interna e semsecurity.transitionToAuth
exige que os clientes se conectem utilizando controles de acesso do usuário. Atualize os clientes para se conectarem aomongod
oumongos
usando o usuário apropriado antes de reiniciar omongod
oumongos
sem osecurity.transitionToAuth
.
security.javascriptEnabled
Tipo: booleano
Padrão: true
Habilita ou desabilita execução JavaScript do lado do servidor. Quando desativado, você não pode usar operações que executam código JavaScript no lado do servidor, como o operador de consulta
$where
, o comandomapReduce
,$accumulator
e$function
.Se você não usar essas operações, desabilite os scripts do lado do servidor.
O
security.javascriptEnabled
está disponível paramongod
emongos
. Em versões anteriores, a configuração só está disponível paramongod
.
security.redactClientLogData
Tipo: booleano
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
Um
mongod
oumongos
em execução comsecurity.redactClientLogData
redige qualquer mensagem que acompanhe um determinado evento de registro antes do registro. Isso impede que omongod
oumongos
escreva dados potencialmente confidenciais armazenados no banco de dados no registro de diagnóstico. Metadados como códigos de erro ou operação, números de linha e nomes de arquivos de origem ainda são visíveis nos registros.Use
security.redactClientLogData
em conjunto com encryption at rest e TLS/SSL (criptografia de transporte) para auxiliar a conformidade com os requisitos normativos.Por exemplo, um sistema do MongoDB pode armazenar informações de identificação pessoal (PII) em uma ou mais collections. O
mongod
oumongos
registra eventos como os relacionados a operações CRUD, fragmentação de metadados etc. É possível que omongod
oumongos
exponha PII como parte dessas operações de registro. Ummongod
oumongos
executado comsecurity.redactClientLogData
remove qualquer mensagem que acompanhe esses eventos antes de ser enviada para o registro, removendo efetivamente a PII.Diagnósticos em um
mongod
oumongos
executando comsecurity.redactClientLogData
podem ser mais difíceis devido à falta de dados relacionados a um evento de log. Consulte a página do manual de registro de processos para ver um exemplo do efeito desecurity.redactClientLogData
no resultado de registro.Em um
mongod
oumongos
em execução, usesetParameter
com o parâmetroredactClientLogData
para definir essa configuração.
security.clusterIpSourceAllowlist
Tipo: lista
Novidades na versão 5,0.
Uma lista de endereços IP/CIDR (roteamento entre domínios sem classe ) varia em relação às quais
mongod
valida solicitações de autenticação de outros membros do conjunto de réplicas e, se fizer parte de um cluster fragmentado, asmongos
instâncias . Omongod
verifica se o IP de origem está explicitamente na lista ou pertence a um intervalo CIDR na lista. Se o endereço IP não estiver presente, o servidor não autenticará omongod
oumongos
.security.clusterIpSourceAllowlist
não tem efeito sobre ummongod
iniciado sem autenticação.security.clusterIpSourceAllowlist
requer a especificação de cada endereço IPv4/6 ou roteamento entre domínios sem classe ( CIDR) como uma lista YAML:security: clusterIpSourceAllowlist: - 192.0.2.0/24 - 127.0.0.1 - ::1 Importante
Certifique-se de que
security.clusterIpSourceAllowlist
inclua o endereço IP ou faixas CIDR que incluam o endereço IP de cada membro do conjunto de réplicas oumongos
no sistema para garantir uma comunicação saudável entre os componentes do cluster.
security.clusterIpSourceWhitelist
Tipo: lista
Descontinuado na versão 5.0: em vez disso, use
security.clusterIpSourceAllowlist
.Uma lista de endereços IP/CIDR (roteamento entre domínios sem classe ) varia em relação às quais
mongod
valida solicitações de autenticação de outros membros do conjunto de réplicas e, se fizer parte de um cluster fragmentado, asmongos
instâncias . Omongod
verifica se o IP de origem está explicitamente na lista ou pertence a um intervalo CIDR na lista. Se o endereço IP não estiver presente, o servidor não autenticará omongod
oumongos
.security.clusterIpSourceWhitelist
não tem efeito sobre ummongod
iniciado sem autenticação.security.clusterIpSourceWhitelist
requer a especificação de cada endereço IPv4/6 ou roteamento entre domínios sem classe ( CIDR) como uma lista YAML:security: clusterIpSourceWhitelist: - 192.0.2.0/24 - 127.0.0.1 - ::1 Importante
Certifique-se de que
security.clusterIpSourceWhitelist
inclua o endereço IP ou faixas CIDR que incluam o endereço IP de cada membro do conjunto de réplicas oumongos
no sistema para garantir uma comunicação saudável entre os componentes do cluster.
Opções de configuração de gerenciamento de chaves
security: enableEncryption: <boolean> encryptionCipherMode: <string> encryptionKeyFile: <string> kmip: keyIdentifier: <string> rotateMasterKey: <boolean> serverName: <string> port: <string> clientCertificateFile: <string> clientCertificatePassword: <string> clientCertificateSelector: <string> serverCAFile: <string> connectRetries: <int> connectTimeoutMS: <int>
security.enableEncryption
Tipo: booleano
Padrão: false
Novidades na versão 3.2: ativa a criptografia para o storage engine WiredTiger. Você deve definir como
true
para passar chave de criptografia e configurações.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.encryptionCipherMode
Tipo: string
Padrão:
AES256-CBC
Novo na versão 3.2.
O modo de cifra a ser usado para encryption at rest:
ModoDescriçãoAES256-CBC
Padrão de criptografia avançada de 256 bits no modo de sequenciamento de blocos de cifraAES256-GCM
Padrão de criptografia avançada de 256 bits no modo Galois/Counter
Disponível apenas no Linux.
Alterado na versão 4,0: MongoDB Enterprise no Windows não suporta mais
AES256-GCM
como uma cifra de bloco para criptografia em repouso. Esse uso é compatível apenas com Linux.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.encryptionKeyFile
Tipo: string
O caminho para o arquivo-chave local ao gerenciar chaves por um processo diferente do KMIP. Definido apenas ao gerenciar chaves por um processo diferente do KMIP. Se os dados já estiverem criptografados usando KMIP, o MongoDB gerará um erro.
Requer que
security.enableEncryption
sejatrue
.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.keyIdentifier
Tipo: string
Novo na versão 3.2.
Identificador KMIP exclusivo para uma chave existente no servidor KMIP. Inclua para usar a chave associada ao identificador como chave do sistema. Você só pode usar a configuração na primeira vez em que ativar a criptografia para a instância
mongod
. Exige quesecurity.enableEncryption
seja verdadeiro.Se não for especificada, o MongoDB solicita que o servidor KMIP crie uma chave nova para utilizar como chave do sistema.
Se o servidor KMIP não conseguir localizar uma chave com o identificador especificado ou os dados já estiverem criptografados com uma chave, o MongoDB lançará um erro.
Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.rotateMasterKey
Tipo: booleano
Padrão: false
Novo na versão 3.2.
Se for verdade, gire a chave mestra e criptografe novamente o keystore interno.
Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
Dica
Veja também:
security.kmip.serverName
Tipo: string
Novo na versão 3.2.
Nome do host ou endereço IP do servidor KMIP ao qual se conectar. Exige que
security.enableEncryption
seja verdadeiro.A partir do MongoDB 4.2.1 (e 4.0.14), você pode especificar vários servidores KMIP como uma lista separada por vírgula, por exemplo
server1.example.com,server2.example.com
. Na inicialização, omongod
tenta estabelecer uma conexão com cada servidor na ordem listada e seleciona o primeiro servidor com o qual pode estabelecer uma conexão com êxito. A seleção do servidor KMIP ocorre apenas na inicialização.Ao se conectar a um servidor KMIP,
mongod
verifica se osecurity.kmip.serverName
especificado corresponde ao nome alternativo do assuntoSAN
(ou, seSAN
não estiver presente, o nome comumCN
) no certificado apresentado pelo Servidor KMIP. SeSAN
estiver presente,mongod
não corresponde aCN
. Se o nome do host não corresponder aSAN
(ouCN
), omongod
não conseguirá se conectar.A partir do MongoDB 4.2, ao realizar a comparação de SAN, o MongoDB oferece suporte à comparação de nomes DNS ou endereços IP. Nas versões anteriores, o MongoDB suporta apenas comparações de nomes DNS.
Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.port
Tipo: string
Padrão: 5696
Novo na versão 3.2.
Número da porta a ser usada para comunicação com o servidor KMIP. Exige
security.kmip.serverName
. Requer quesecurity.enableEncryption
seja verdadeiro.Se especificar vários servidores KMIP com
security.kmip.serverName
, omongod
utilizará a porta especificada comsecurity.kmip.port
para todos os servidores KMIP fornecidos.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.clientCertificateFile
Tipo: string
Caminho para o arquivo
.pem
usado para autenticar o MongoDB no servidor KMIP. O arquivo.pem
especificado deve conter o certificado e a chave TLS/SSL.Para utilizar esta configuração, você também deve especificar a configuração do
security.kmip.serverName
.Observação
A partir de 4.0, no macOS ou no Windows, você pode usar um certificado do armazenamento seguro do sistema operacional em vez de um arquivo de chave PEM. Consulte
security.kmip.clientCertificateSelector
.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.clientCertificatePassword
Tipo: string
Novo na versão 3.2.
A senha para descriptografar o certificado do cliente (ou seja,
security.kmip.clientCertificateFile
), usado para autenticar o MongoDB no servidor KMIP. Use a opção somente se o certificado estiver criptografado.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.clientCertificateSelector
Tipo: string
Novidades na versão 4.0: (e 5.0)
Disponível no Windows e macOS como uma alternativa ao
security.kmip.clientCertificateFile
.security.kmip.clientCertificateFile
esecurity.kmip.clientCertificateSelector
são opções mutuamente exclusivas. Você só pode especificar uma.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento de certificados do sistema operacional para autenticar o MongoDB no servidor KMIP.
security.kmip.clientCertificateSelector
aceita um argumento do formato<property>=<value>
onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubject
String ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprint
às vezes é denominadofingerprint
.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.serverCAFile
Tipo: string
Novo na versão 3.2.
Caminho para o arquivo CA. Usado para validar a conexão segura do cliente com o servidor KMIP.
Observação
A partir de 4.0, no macOS ou no Windows, você pode usar um certificado do armazenamento seguro do sistema operacional em vez de um arquivo de chave PEM. Consulte
security.kmip.clientCertificateSelector
. Ao usar o armazenamento seguro, você não precisa, mas também pode, especificar osecurity.kmip.serverCAFile
.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.connectRetries
Tipo: int
Padrão: 0
Quantas vezes tentar novamente a conexão inicial com o servidor KMIP. Use junto com
connectTimeoutMS
para controlar quanto tempo omongod
espera por uma resposta entre cada nova tentativa.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.kmip.connectTimeoutMS
Tipo: int
Padrão: 5000
Tempo limite em milissegundos para aguardar uma resposta do servidor KMIP. Se a configuração
connectRetries
for especificada, omongod
aguardará até o valor especificado comconnectTimeoutMS
para cada nova tentativa.O valor deve ser
1000
ou superior.Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
security.sasl
Opções
security: sasl: hostName: <string> serviceName: <string> saslauthdSocketPath: <string>
security.sasl.hostName
Tipo: string
Um nome de domínio de servidor totalmente qualificado com a finalidade de configurar a autenticação SASL e Kerbero. O nome de host do SASL substitui o nome de host somente para a configuração do SASL e Kerberos.
security.sasl.serviceName
Tipo: string
Nome registrado do serviço usando SASL. Essa opção permite que você substitua o componente de nome de serviço Kerberos padrão do nome principal do Kerberos, por instância. Se não especificado, o valor padrão é
mongodb
.O MongoDB permite definir essa opção somente na inicialização. O
setParameter
não pode alterar essa configuração.Esta opção está disponível apenas no MongoDB Enterprise.
Importante
Verifique se o seu driver suporta nomes de serviço alternativos. Para
mongosh
e outras ferramentas MongoDB para se conectar ao novoserviceName
, consulte a opçãogssapiServiceName
.
security.ldap
Opções
security: ldap: servers: <string> bind: method: <string> saslMechanisms: <string> queryUser: <string> queryPassword: <string | array> useOSDefaults: <boolean> transportSecurity: <string> timeoutMS: <int> userToDNMapping: <string> authz: queryTemplate: <string> validateLDAPServerConfig: <boolean>
security.ldap.servers
Tipo: string
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
O servidor LDAP no qual o
mongod
oumongos
autentica os usuários ou determina quais ações um usuário está autorizado a executar em um determinado banco de dados. Se o servidor LDAP especificado tiver quaisquer instâncias replicadas, você poderá especificar o host e a porta de cada servidor replicado em uma lista delimitada por vírgula.Se sua infraestrutura LDAP dividir o diretório LDAP em vários servidores LDAP, especifique um servidor LDAP ou qualquer uma de suas instâncias replicadas no . O MongoDB suporta as
security.ldap.servers
seguintes referências LDAP, conforme definido em RFC . .4511 4110. Não utilize o para listar todos os servidores LDAP em suasecurity.ldap.servers
infraestrutura.Essa configuração pode ser feita em um
mongod
oumongos
em execução usandosetParameter
.Se não estiver configurado,
mongod
oumongos
não poderá usar autenticação ou autorização LDAP.
security.ldap.bind.queryUser
Tipo: string
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
A identidade com a qual o
mongod
oumongos
se liga, ao conectar ou executar consultas em um servidor LDAP.Obrigatório apenas se alguma das seguintes afirmações for verdadeira:
Utilizando autorização LDAP.
Usando uma query LDAP para
security.ldap.userToDNMapping
.O servidor LDAP não permite ligações anônimas
Você deve usar
queryUser
comqueryPassword
.Se não for definido,
mongod
oumongos
não tentará se vincular ao servidor LDAP.Essa configuração pode ser feita em um
mongod
oumongos
em execução usandosetParameter
.Observação
Os sistemas do Windows MongoDB podem utilizar o
useOSDefaults
ao invés doqueryUser
equeryPassword
. Não é possível especificarqueryUser
euseOSDefaults
ao mesmo tempo.
security.ldap.bind.queryPassword
Tipo: string ou array
Disponível apenas no MongoDB Enterprise.
A senha usada para vincular a um servidor LDAP ao utilizar o
queryUser
. Você deve usarqueryPassword
comqueryUser
.Se não for definido,
mongod
oumongos
não tentará se vincular ao servidor LDAP.Você pode definir essa configuração em um
mongod
oumongos
em execução usandosetParameter
.O comando
ldapQueryPassword
setParameter
aceita uma string ou uma array de strings. SeldapQueryPassword
for definido como uma array, o MongoDB tentará cada senha na ordem até que uma delas seja bem-sucedida. Use um array de senha para rolar sobre a senha da conta LDAP sem tempo de inatividade.Observação
Os sistemas do Windows MongoDB podem utilizar o
useOSDefaults
ao invés doqueryUser
equeryPassword
. Não é possível especificarqueryPassword
euseOSDefaults
ao mesmo tempo.
security.ldap.bind.useOSDefaults
Tipo: booleano
Padrão: false
Novidades na versão 3.4: disponível no MongoDB Enterprise apenas para a plataforma Windows.
Permite que
mongod
oumongos
se autentiquem, ou se vinculem, usando suas credenciais de login do Windows ao se conectar ao servidor LDAP.Necessário apenas se:
Utilizando autorização LDAP.
Usando uma query LDAP para
username transformation
.O servidor LDAP não permite ligações anônimas
Use
useOSDefaults
para substituirqueryUser
equeryPassword
.
security.ldap.bind.method
Tipo: string
Padrão: simples
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
O método
mongod
oumongos
utiliza para autenticar em um servidor LDAP. Utilize comqueryUser
equeryPassword
para conectar ao servidor LDAP.method
suporta os seguintes valores:Se você especificar
sasl
, você poderá configurar os mecanismos SASL disponíveis utilizandosecurity.ldap.bind.saslMechanisms
.mongod
oumongos
padrão para usarDIGEST-MD5
mecanismo.
security.ldap.bind.saslMechanisms
Tipo: string
Padrão: DIGEST-MD5
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
Uma lista separada por vírgula de mecanismos SASL
mongod
oumongos
pode utilizar ao autenticar no servidor LDAP. Omongod
oumongos
e o servidor LDAP devem concordar com pelo menos um mecanismo. Omongod
oumongos
carrega dinamicamente quaisquer bibliotecas de mecanismos SASL instaladas na máquina host no tempo de execução.Instale e configure as bibliotecas apropriadas para o(s) mecanismo(s) SASL selecionado(s) no host
mongod
oumongos
e no host do servidor LDAP remoto. Seu sistema operacional pode incluir determinadas bibliotecas SASL por padrão. Consulte a documentação associada a cada mecanismo SASL para obter orientação sobre instalação e configuração.Se estiver usando o mecanismo
GSSAPI
SASL para uso com a autenticação Kerberos, verifique o seguinte para o computador hostmongod
oumongos
:Linux
A
KRB5_CLIENT_KTNAME
variável de ambiente é resolvida para o nome do cliente Linux Keytab Files para a máquina host. Para obter mais informações sobre variáveis de ambiente Kerberos, consulte a documentação do Kerberos.O keytab do cliente inclui um usuário principal para o
mongod
oumongos
usar ao conectar-se ao servidor LDAP e executar consultas LDAP.
Windows
- Se estiver conectando a um servidor Active Directory, a configuração do Windows Kerberos gerará automaticamente um Ticket-Granting-Ticket quando o usuário faz login no sistema. Configure
useOSDefaults
comotrue
para permitir quemongod
ou use as credenciais geradas ao se conectar ao servidor do Active Directory e executarmongos
consultas.
Configure
method
parasasl
para utilizar esta opção.Observação
Para obter uma lista completa dos mecanismos SASL, consulte a lista da IANA . Consulte a documentação do seu serviço LDAP ou Active Directory para identificar os mecanismos SASL compatíveis com o serviço.
MongoDB não é uma fonte de bibliotecas de mecanismo SASL nem a documentação do MongoDB é uma fonte definitiva para instalação ou configuração de qualquer mecanismo SASL. Para documentação e suporte, consulte o fornecedor ou proprietário da biblioteca do mecanismo SASL.
Para obter mais informações sobre SASL, consulte os seguintes recursos:
Para Linux, consulte a documentação do Cyrus SASL.
Para Windows, consulte a documentação do Windows SASL.
security.ldap.transportSecurity
Tipo: string
Padrão: tls
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
Por padrão,
mongod
oumongos
cria uma conexão segura TLS/SSL com o servidor LDAP.Para sistemas do Linux, você deve configurar as Opções de TLS apropriadas no
/etc/openldap/ldap.conf
arquivo . O gerenciador de pacotes do seu sistema operacional cria esse arquivo como parte da instalação do MongoDB Enterprise, por meio da dependência . Consulte alibldap
documentação doTLS Options
na documentação do OpenLDAP ldap.conf para obter instruções mais completas.Para o sistema do Windows, você deve adicionar os certificados CA do servidor LDAP à ferramenta de gerenciamento de certificados do Windows. O nome exato e a funcionalidade da ferramenta podem variar dependendo da versão do sistema operacional. Consulte a documentação da sua versão do Windows para obter mais informações sobre o gerenciamento de certificados.
Configure
transportSecurity
comonone
para desabilitar TLS/SSL entremongod
oumongos
e o servidor LDAP.Aviso
Configurar
transportSecurity
paranone
transmite informações de texto simples e possivelmente credenciais entremongod
oumongos
e o servidor LDAP.
security.ldap.timeoutMS
Tipo: int
Padrão: 10000
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
A quantidade de tempo em milissegundos
mongod
oumongos
deve esperar que um servidor LDAP responda a uma solicitação.Aumentar o valor de
timeoutMS
pode evitar a falha de conexão entre o servidor MongoDB e o servidor LDAP, se a origem da falha for um tempo limite de conexão. Diminuir o valor detimeoutMS
reduz o tempo que o MongoDB espera por uma resposta do servidor LDAP.Essa configuração pode ser feita em um
mongod
oumongos
em execução usandosetParameter
.
security.ldap.userToDNMapping
Tipo: string
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
Mapeia o nome de usuário fornecido para
mongod
oumongos
para autenticação em um Nome Distinto (DN) LDAP. Você pode precisar usaruserToDNMapping
para transformar um nome de usuário em um DN LDAP nos seguintes cenários:Executando autenticação LDAP com ligação LDAP simples, onde os usuários se autenticam no MongoDB com nomes de usuário que não são DNs LDAP completos.
Utilizando um
LDAP authorization query template
que exige um DN.Transformar os nomes de usuário dos clientes que se autenticam no Mongo DB usando diferentes mecanismos de autenticação (por exemplo, x.509, kerberos) em um DN LDAP completo para autorização.
userToDNMapping
espera uma string JSON-string com aspas que represente uma array ordenada de documentos. Cada documento contém uma expressão regularmatch
e um modelosubstitution
ouldapQuery
usado para transformar o nome de usuário recebido.Cada documento na array tem o seguinte formato:
{ match: "<regex>" substitution: "<LDAP DN>" | ldapQuery: "<LDAP Query>" } CampoDescriçãoExemplomatch
Uma expressão regular (regex) formatada pelo ECMAScript para corresponder a um nome de usuário fornecido. Cada seção de parênteses representa um grupo de captura regex utilizado pelosubstitution
ouldapQuery
."(.+)ENGINEERING"
"(.+)DBA"
substitution
Um modelo de formatação de nome distinto (DN) LDAP que converte o nome de autenticação correspondente pelo
match
regex em um DN LDAP. Cada valor numérico entre colchetes é substituído pelo grupo de captura de regex correspondente extraído do nome de usuário de autenticação através domatch
regex .O resultado da substituição deve ser um RFC4514 string que escapou.
"cn={0},ou=engineering, dc=example,dc=com"
ldapQuery
Um modelo de formatação de consulta LDAP que insere o nome de autenticação correspondente aomatch
regex em um URI de consulta LDAP codificado respeitando RFC4515 e RFC4516. Cada valor numérico entre colchetes é substituído pelo grupo de captura de regex correspondente extraído do nome de usuário de autenticação por meio damatch
expressão .mongod
O oumongos
executa a consulta no servidor LDAP para recuperar o DN LDAP para o usuário autenticado.mongod
mongos
ou exige exatamente um resultado retornado para que a transformação seja bem-sucedida, oumongod
oumongos
ignora essa transformação."ou=engineering,dc=example, dc=com??one?(user={0})"
Observação
Para cada documento na array, você deve usar
substitution
ouldapQuery
. Você não pode especificar ambos no mesmo documento.Ao realizar a autenticação ou autorização,
mongod
oumongos
percorre cada documento da array na ordem determinada, verificando o nome de usuário da autenticação em relação ao filtromatch
. Se uma correspondência for localizada, omongod
oumongos
aplicará a transformação e utilizará a saída para autenticar o usuário.mongod
oumongos
não verifica os documentos restantes na array.Se o documento fornecido não corresponder ao nome de autenticação fornecido,
mongod
oumongos
continuará percorrendo a lista de documentos para encontrar outras correspondências. Se nenhuma correspondência for encontrada em qualquer documento ou se a transformação descrita pelo documento falhar,mongod
oumongos
retornará um erro.mongod
oumongos
também retornará um erro se uma das transformações não puder ser avaliada devido a falhas de rede ou autenticação no servidor LDAP.mongod
oumongos
rejeita a solicitação de conexão e não verifica os documentos restantes na array.A partir do MongoDB 5.0,
userToDNMapping
aceita uma string vazia""
ou array vazia[ ]
no lugar de um documento de mapeamento. Se fornecer uma cadeia de caracteres vazia ou uma array vazia parauserToDNMapping
, o MongoDB mapeará o nome de usuário autenticado como o DN LDAP. Anteriormente, fornecer um documento de mapeamento vazio causaria falha no mapeamento.Exemplo
O seguinte mostra dois documentos de transformação. O primeiro documento coincide com qualquer string que termine em
@ENGINEERING
, colocando qualquer coisa que preceda o sufixo em um grupo de captura de regex. O segundo documento coincide com qualquer string que termine em@DBA
, colocando qualquer coisa que preceda o sufixo em um grupo de captura de regex.Importante
Você deve passar a array para userToDNMapping como uma string.
"[ { match: "(.+)@ENGINEERING.EXAMPLE.COM", substitution: "cn={0},ou=engineering,dc=example,dc=com" }, { match: "(.+)@DBA.EXAMPLE.COM", ldapQuery: "ou=dba,dc=example,dc=com??one?(user={0})" } ]" Um usuário com o nome de usuário
alice@ENGINEERING.EXAMPLE.COM
corresponde ao primeiro documento. O grupo de captura regex{0}
corresponde à cadeia de caracteresalice
. A saída resultante é o DN"cn=alice,ou=engineering,dc=example,dc=com"
.Um usuário com o nome de usuário
bob@DBA.EXAMPLE.COM
corresponde ao segundo documento. O grupo de captura de regex{0}
corresponde à stringbob
. A saída resultante é a consulta LDAP"ou=dba,dc=example,dc=com??one?(user=bob)"
.mongod
oumongos
executa essa consulta no servidor LDAP, retornando o resultado"cn=bob,ou=dba,dc=example,dc=com"
.Se
userToDNMapping
estiver desmarcado,mongod
oumongos
não aplicará transformações ao nome de usuário ao tentar autenticar ou autorizar um usuário no servidor LDAP.Essa configuração pode ser definida em um
mongod
oumongos
em execução usando o comandosetParameter
banco de dados.
security.ldap.authz.queryTemplate
Tipo: string
Novidades na versão 3.4: disponível apenas no MongoDB Enterprise.
Uma URL de query LDAP relativa formatada em conformidade com RFC4515 e RFC4516 que o executa para obter os grupos LDAP aos quais o usuário autenticado pertence. A query é relativa ao host ou hosts especificados
mongod
nosecurity.ldap.servers
.Na URL, você pode usar os seguintes tokens de substituição:
Token de substituiçãoDescrição{USER}
Substitui o nome de usuário autenticado, ou o nome de usuário dotransformed
se umuserToDNMapping
for especificado.{PROVIDED_USER}
Substitui o nome de usuário fornecido, ou seja, antes da autenticação ou
LDAP transformation
.Novidades na versão 4.2.
Ao construir a URL de query, certifique-se de que a ordem dos parâmetros LDAP respeite RFC4516:
[ dn [ ? [attributes] [ ? [scope] [ ? [filter] [ ? [Extensions] ] ] ] ] ] Se sua consulta incluir um atributo,
mongod
pressupõe que a consulta recupera uma lista dos DNs dos quais essa entidade é membro.Se a sua consulta não incluir um atributo,
mongod
assume que a consulta recupera todas as entidades das quais o usuário é membro.Para cada DN LDAP retornado pela consulta, o
mongod
atribui ao usuário autorizado um papel correspondente no banco de dados doadmin
. Se uma função no banco de dadosadmin
corresponder exatamente ao DN,mongod
concede ao usuário as funções e privilégios atribuídos a essa função. Consulte o métododb.createRole()
para mais informações sobre como criar papéis.Exemplo
Esta query LDAP retorna quaisquer grupos listados no atributo
memberOf
do objeto de usuário LDAP."{USER}?memberOf?base" Sua configuração LDAP pode não incluir o atributo
memberOf
como parte do esquema do usuário, pode possuir um atributo diferente para relatar a associação ao grupo ou pode não controlar a associação ao grupo por meio de atributos. Configure sua query com relação à sua configuração LDAP exclusiva.Se não estiver configurado,
mongod
não poderá autorizar usuários usando LDAP.Essa configuração pode ser feita em um
mongod
em execução usando o comandosetParameter
database.
security.ldap.validateLDAPServerConfig
Tipo: booleano
Padrão: true
Disponível no MongoDB Enterprise
Um sinalizador que determina se a instância
mongod
oumongos
verifica a disponibilidade doLDAP server(s)
como parte de sua inicialização:Se o
true
, a instância domongod
oumongos
executará a verificação de disponibilidade e somente continuará a iniciar se o servidor LDAP estiver disponível.Se
false
, a instânciamongod
oumongos
ignora a verificação de disponibilidade, ou seja, a instância é iniciada mesmo que o servidor LDAP não esteja disponível.
setParameter
Opção
setParameter
Definir parâmetro ou parâmetros do MongoDB descritos em Parâmetros do servidor MongoDB
Para definir parâmetros no arquivo de configuração YAML, use o seguinte formato:
setParameter: <parameter1>: <value1> <parameter2>: <value2> Por exemplo, para especificar o
enableLocalhostAuthBypass
no arquivo de configuração:setParameter: enableLocalhostAuthBypass: false
Parâmetros LDAP
setParameter.ldapUserCacheInvalidationInterval
Tipo: int
Padrão: 30
Para utilizar com servidores do
mongod
utilizando Autorização LDAP.O intervalo (em segundos)
mongod
espera entre as descargas de cache do usuário externo. Depois quemongod
libera o cache de usuário externo, o MongoDB readquire os dados de autorização do servidor LDAP na próxima vez que um usuário autorizado pelo LDAP realizar uma operação.Aumentar o valor especificado aumenta a quantidade de tempo
mongod
e o servidor LDAP pode estar fora de sincronia, mas reduz a carga no servidor LDAP. Por outro lado, diminuir o valor especificado diminui o tempomongod
e o servidor LDAP pode estar fora de sincronia enquanto aumenta a carga no servidor LDAP.
setParameter: ldapUserCacheInvalidationInterval: <int>
storage
Opções
Alterado na versão 4.4:
O MongoDB remove a opção
storage.indexBuildRetry
e a opção correspondente de linha de comando--noIndexBuildRetry
.MongoDB descontinua a opção
storage.wiredTiger.engineConfig.maxCacheOverflowFileSizeGB
. A opção não tem efeito começando no MongoDB 4.4.
storage: dbPath: <string> journal: enabled: <boolean> commitIntervalMs: <num> directoryPerDB: <boolean> syncPeriodSecs: <int> engine: <string> wiredTiger: engineConfig: cacheSizeGB: <number> journalCompressor: <string> directoryForIndexes: <boolean> maxCacheOverflowFileSizeGB: <number> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean> inMemory: engineConfig: inMemorySizeGB: <number> oplogMinRetentionHours: <double>
storage.dbPath
Tipo: string
Padrão:
/data/db
em Linux e macOS\data\db
no Windows
O diretório onde a instância do
mongod
armazena seus dados.A configuração
storage.dbPath
está disponível somente paramongod
.Observação
Arquivos de configuração
O arquivo de configuração de
mongod.conf
padrão incluído nas instalações do gerenciador de pacotes usa os seguintes valores padrão específicos da plataforma parastorage.dbPath
:PLATAFORMAGerente de pacotesdefaultstorage.dbPath
RHEL / CentOS e Amazonyum
/var/lib/mongo
SUSEzypper
/var/lib/mongo
Ubuntu e Debianapt
/var/lib/mongodb
macOSbrew
/usr/local/var/mongodb
Os scripts de inicialização do pacote Linux não esperam que
storage.dbPath
mude dos padrões. Se você usar os pacotes Linux e alterarstorage.dbPath
, deverá usar seus próprios scripts de inicialização e desabilitar os scripts integrados.
storage.journal.enabled
Tipo: booleano
Padrão:
true
em sistemas de 64 bits,false
em sistemas de 32 bitsHabilite ou desabilite o diário de durabilidade para garantir que os arquivos de dados permaneçam válidos e recuperáveis. Essa opção se aplica somente quando você especifica a configuração
storage.dbPath
.mongod
habilita o registro no diário por padrão.A configuração
storage.journal.enabled
está disponível somente paramongod
.Não disponível para instâncias do
mongod
que usam o mecanismo de armazenamento in-memory.A partir do MongoDB 4.0, não é possível especificar a opção
--nojournal
oustorage.journal.enabled: false
para membros do conjunto de réplicas que usam o mecanismo de armazenamento WiredTiger.
storage.journal.commitIntervalMs
Tipo: número
Padrão: 100
A quantidade máxima de tempo em milissegundos que o processo do
mongod
permite entre operações de diário. Os valores podem variar de 1 a 500 milissegundos. Valores mais baixos aumentam a durabilidade do diário, às custas do desempenho do disco.No WiredTiger, o intervalo padrão de confirmação do Diário é de 100 milissegundos. Além disso, uma escrita que inclua ou implique
j:true
causa uma sincronização imediata do diário. Para obter detalhes ou condições adicionais que afetam a frequência da sincronização, consulte Processo de registro no diário.A configuração
storage.journal.commitIntervalMs
está disponível somente paramongod
.Não disponível para instâncias do
mongod
que usam o mecanismo de armazenamento in-memory.Observação
Problema conhecido em 4.2.0: O
storage.journal.commitIntervalMs
está faltando em 4.2.0.
storage.directoryPerDB
Tipo: booleano
Padrão: false
Quando
true
, MongoDB utiliza um diretório separado para armazenar dados para cada banco de dados. Os diretórios estão sob o diretóriostorage.dbPath
e cada nome de subdiretório corresponde ao nome do banco de dados.A configuração
storage.directoryPerDB
está disponível somente paramongod
.Não disponível para instâncias do
mongod
que usam o mecanismo de armazenamento in-memory.A partir do MongoDB 5.0, descartar a coleção final em um banco de dados (ou descartar o próprio banco de dados) quando
storage.directoryPerDB
estiver ativado exclui o subdiretório recém-vazio desse banco de dados.Para alterar a opção
storage.directoryPerDB
para sistemas existentes:Para instâncias standalone:
Utilize o
mongodump
na instância domongod
existente para gerar uma cópia de segurança.Pare a
mongod
instância.Adicione o
storage.directoryPerDB
value and configure um novo diretório de dadosReinicie a instância do
mongod
.Utilize o
mongorestore
para preencher o novo diretório de dados.
Para conjuntos de réplicas:
Pare um membro secundário.
Adicione o valor do
storage.directoryPerDB
e configure um novo diretório de dados para este membro secundário.Reinicie esse secundário.
Utilize sincronização inicial para preencher o novo diretório de dados.
Atualize os secundários restantes da mesma maneira.
Mova para baixo o membro primário e atualize o membro movido para baixo da mesma maneira.
storage.syncPeriodSecs
Tipo: número
Padrão: 60
A quantidade de tempo que pode passar antes que o MongoDB libere dados para os arquivos de dados.
Não defina esse valor em sistemas de produção. Em quase todas as situações, você deve usar a configuração padrão.
O processo do
mongod
grava dados muito rapidamente no diário e de modo lento nos arquivos de dados.storage.syncPeriodSecs
não tem efeito sobre o registro no diário, mas sestorage.syncPeriodSecs
estiver definido como0
o diário eventualmente consome todo o espaço em disco disponível.A configuração
storage.syncPeriodSecs
está disponível somente paramongod
.Não disponível para instâncias do
mongod
que usam o mecanismo de armazenamento in-memory.Para fornecer dados duráveis, o WiredTiger usa checkpoints. Para obter mais detalhes, consulte Registro no diário e mecanismo de armazenamento WiredTiger.
storage.engine
Padrão:
wiredTiger
Observação
A partir da versão 4.2, o MongoDB remove o mecanismo de armazenamento MMAPv1 obsoleto.
O mecanismo de armazenamento do banco de dados do
mongod
. Os valores disponíveis incluem:ValorDescriçãowiredTiger
Para especificar o Mecanismo de Armazenamento WiredTiger.inMemory
Para especificar o Mecanismo de armazenamento in-memory.
Disponível apenas no MongoDB Enterprise.
Se você tentar iniciar um
mongod
com umstorage.dbPath
que contém arquivos de dados produzidos por um mecanismo de armazenamento diferente do especificado porstorage.engine
, omongod
se recusará a iniciar.
storage.oplogMinRetentionHours
Tipo: duplo
Especifica o número mínimo de horas para preservar uma entrada de oplog, onde os valores decimais representam as frações de uma hora. Por exemplo, um valor de
1.5
representa uma hora e trinta minutos.O valor deve ser maior ou igual a
0
. Um valor de0
indica que omongod
deve truncar o oplog começando com as entradas mais antigas para manter o tamanho máximo configurado do oplog.Padrão é
0
.Um
mongod
iniciado comoplogMinRetentionHours
só remove uma entrada oplog se:O oplog atingiu o tamanho máximo de oplog configurado e
A entrada do oplog é mais antiga que o número configurado de horas com base no relógio do sistema host.
O
mongod
tem o seguinte comportamento quando configurado com um período mínimo de retenção de oplog:O oplog pode crescer sem restrições, de modo a reter as entradas do oplog pelo número de horas configurado. Isto pode resultar na redução ou esgotamento do espaço em disco do sistema devido a uma combinação de alto volume escrita e grande período de retenção.
Se o oplog ultrapassar seu tamanho máximo, o
mongod
poderá continuar mantendo esse espaço em disco mesmo que o oplog retorne ao tamanho máximo ou esteja configurado para um tamanho máximo menor. Consulte Reduzir o tamanho do Oplog não retorna imediatamente espaço em disco.O
mongod
compara o relógio de parede do sistema com um relógio de parede de criação de entradas de oplog ao impor a retenção de entradas de oplog. O desvio do relógio entre os componentes do cluster pode resultar em um comportamento inesperado de retenção de registros. Consulte Sincronização do relógio para obter mais informações sobre a sincronização do relógio entre os membros do cluster.
Para alterar o período mínimo de retenção de oplog após iniciar o
mongod
, usereplSetResizeOplog
. OreplSetResizeOplog
permite a você redimensionar o oplog dinamicamente sem reiniciar o processo domongod
. Para manter as alterações feitas usandoreplSetResizeOplog
por meio de uma reinicialização, atualize o valor deoplogMinRetentionHours
.
storage.wiredTiger
Opções
storage: wiredTiger: engineConfig: cacheSizeGB: <number> journalCompressor: <string> directoryForIndexes: <boolean> maxCacheOverflowFileSizeGB: <number> collectionConfig: blockCompressor: <string> indexConfig: prefixCompression: <boolean>
storage.wiredTiger.engineConfig.cacheSizeGB
Tipo: flutuação
Define o tamanho máximo do cache interno que o WiredTiger utiliza para todos os dados. A memória consumida por uma construção de índice (consulte
maxIndexBuildMemoryUsageMegabytes
) é separada da memória de cache do WiredTiger.Os valores podem variar de
0.25
GB a10000
GB.A partir do MongoDB 3.4, o tamanho do cache interno padrão do WiredTiger é o maior entre:
50% de (RAM - 1 GB) ou
256 MB.
Por exemplo, em um sistema com um total de 4GB de RAM, o cache WiredTiger utiliza 1.5GB de RAM (
0.5 * (4 GB - 1 GB) = 1.5 GB
). Por outro lado, em um sistema com um total de 1.25 GB de RAM WiredTiger aloca 256 MB para o cache do WiredTiger porque isso é mais da metade da RAM total menos um gigabyte (0.5 * (1.25 GB - 1 GB) = 128 MB < 256 MB
).Observação
Em alguns casos, como quando executado em um container, o banco de dados pode ter restrições de memória inferiores à memória total do sistema. Nesses casos, esse limite de memória, em vez do total memória do sistema, é usado como a RAM máxima disponível.
Para ver o limite de memória, consulte
hostInfo.system.memLimitMB
.Evite aumentar o tamanho do cache interno do WiredTiger acima do valor padrão.
Com o WiredTiger, o MongoDB utiliza o cache interno do WiredTiger e o cache do sistema de arquivos.
Com o cache do sistema de arquivos, o MongoDB usa automaticamente toda a memória livre que não é usada pelo cache do WiredTiger ou por outros processos.
Observação
O
storage.wiredTiger.engineConfig.cacheSizeGB
limita o tamanho do cache interno do WiredTiger. O sistema operacional usa a memória livre disponível para o cache do sistema de arquivos, o que permite que os arquivos de dados compactados do MongoDB permaneçam na memória. Além disso, o sistema operacional usa qualquer RAM livre para armazenar em buffer os blocos do sistema de arquivos e o cache do sistema de arquivos.Para acomodar os consumidores adicionais de RAM, pode ser necessário diminuir o tamanho do cache interno do WiredTiger.
O valor padrão do tamanho do cache interno do WiredTiger pressupõe que haja uma única instância
mongod
por máquina. Se uma única máquina contiver várias instâncias do MongoDB, você deverá diminuir a configuração para acomodar as outras instânciasmongod
.Se você executar
mongod
em um container (por exemplo,lxc
,cgroups
, Docker, etc.) que não tem acesso a toda a RAM disponível em um sistema, você deverá definirstorage.wiredTiger.engineConfig.cacheSizeGB
para um valor menor que a quantidade de RAM disponível no contêiner. A quantidade exata depende dos outros processos em execução no container. ConsultememLimitMB
.
storage.wiredTiger.engineConfig.journalCompressor
Padrão: snappy
Especifica o tipo de compactação a ser usada para compactar os dados do diário do WiredTiger.
Os compactadores disponíveis são:
storage.wiredTiger.engineConfig.directoryForIndexes
Tipo: booleano
Padrão: false
Quando
storage.wiredTiger.engineConfig.directoryForIndexes
étrue
,mongod
armazena índices e coleções em subdiretórios separados sob o diretório de dados (ou seja,storage.dbPath
). Especificamente, omongod
armazena os índices em um subdiretório denominadoindex
e os dados de coleta em um subdiretório denominadocollection
.Ao utilizar um link simbólico, você pode especificar um local diferente para os índices. Especificamente, quando a instância do
mongod
não estiver em execução, mova o subdiretório doindex
para o destino e crie um link simbólico denominadoindex
no diretório de dados para o novo destino.
storage.wiredTiger.engineConfig.zstdCompressionLevel
Tipo: inteiro
Padrão: 6
Especifica o nível de compressão aplicado ao utilizar o compressor zstd.
Os valores podem variar de 1 a 22.
Quanto maior o valor especificado para
zstdCompressionLevel
, maior a compressão que é aplicada.Aplicável somente quando
blockCompressor
está definido comozstd
.Disponível a partir do MongoDB 5.0
storage.wiredTiger.collectionConfig.blockCompressor
Padrão: snappy
Especifica a compactação padrão para dados de collection. Você pode substituir isso por collection ao criar collections.
Os compactadores disponíveis são:
storage.wiredTiger.collectionConfig.blockCompressor
afeta todas as coleções criadas. Se você alterar o valor dostorage.wiredTiger.collectionConfig.blockCompressor
em uma implantação MongoDB existente, todas as novas coleções utilizarão o compressor especificado. Coleções existentes continuam a usar o compressor especificado quando foram criadas ou o compressor padrão naquele momento.
storage.wiredTiger.indexConfig.prefixCompression
Padrão: true
Habilita ou desabilita a compressão de prefixo para dados de índice.
Especifique
true
parastorage.wiredTiger.indexConfig.prefixCompression
para habilitar a compactação de prefixo para dados do índice oufalse
para desativar a compactação de prefixo para dados do índice.A configuração
storage.wiredTiger.indexConfig.prefixCompression
afeta todos os índices criados. Se você alterar o valor destorage.wiredTiger.indexConfig.prefixCompression
em uma implantação MongoDB existente, todos os novos índices utilizarão compressão de prefixo. Os índices existentes não são afetados.
storage.inmemory
Opções
storage: inMemory: engineConfig: inMemorySizeGB: <number>
storage.inMemory.engineConfig.inMemorySizeGB
Tipo: flutuação
Padrão: 50% de RAM física menos 1 GB
Os valores podem variar de 256 MB a 10 TB e podem ser instáveis.
Quantidade máxima de memória para alocar dados do mecanismo de armazenamento in-memory, incluindo índices, oplog se o
mongod
fizer parte do conjunto de réplicas, conjunto de réplicas ou metadados de cluster fragmentados, etc.Por padrão, o mecanismo de armazenamento na memória usa 50% da RAM física menos 1 GB.
Observação
Funcionalidade de empresas
Disponível apenas no MongoDB Enterprise.
operationProfiling
Opções
operationProfiling: mode: <string> slowOpThresholdMs: <int> slowOpSampleRate: <double> filter: <string>
operationProfiling.mode
Tipo: string
Padrão:
off
Especifica quais operações devem ser profiladas. Os seguintes níveis de analisador estão disponíveis:
NívelDescriçãooff
O analisador está desligado e não coleta dados. Este é o nível do analisador padrão.slowOp
O perfil coleta dados para operações que levam mais tempo do que o valor deslowms
.all
O analisador coleta dados para todas as operações.Aviso
A análise pode degradar o desempenho e expor dados de query não criptografados no registro do sistema. Considere cuidadosamente quaisquer implicações de desempenho e segurança antes de configurar e habilitar o analisador em um sistema de produção.
Consulte Sobrecarga do criador de perfil para obter mais informações sobre a possível degradação do desempenho.
operationProfiling.slowOpThresholdMs
Tipo: inteiro
Padrão: 100
O limite do tempo de operação lento, em milissegundos. As operações executadas por mais tempo que esse limite são consideradas lentas.
Quando
logLevel
é definido como0
, o MongoDB registra operações lentas no registro de diagnóstico a uma taxa determinada porslowOpSampleRate
.Em configurações
logLevel
mais altas, todas as operações aparecem no registro de diagnóstico, independentemente da latência, com a seguinte exceção: o registro de mensagens de entrada lentas do oplog pelos secundários. Os secundários registram apenas as entradas lentas do oplog; aumentar ologLevel
não registra todas as entradas do oplog.
operationProfiling.slowOpSampleRate
Tipo: duplo
Padrão: 1.0
A fração de operações lentas que devem ser analisadas ou registradas.
operationProfiling.slowOpSampleRate
aceita valores entre 0 e 1, inclusive.Alterado na versão 4.0: A configuração
slowOpSampleRate
está disponível paramongod
emongos
. Em versões anteriores,slowOpSampleRate
está disponível apenas paramongod
.
operationProfiling.filter
Tipo: representação de string de um documento de consulta
Uma expressão de filtro que controla quais operações são perfiladas e registradas.
Quando
filter
está definido,slowOpThresholdMs
eslowOpSampleRate
não são usados para criar perfis e linhas de log de query lenta.Quando você define um filtro de perfil no arquivo de configuração, o filtro se aplica a todos os bancos de dados na implantação. Para definir um filtro de perfil para um banco de dados específico, use o método
db.setProfilingLevel()
.A opção usa uma representação de string de um documento de query no formato:
{ <field1>: <expression1>, ... } O
<field>
pode ser qualquer campo no resultado do perfil. O<expression>
é uma expressão da condição de consulta.Para especificar um filtro de perfil em um arquivo de configuração, você deve:
Coloque o documento de filtro entre aspas simples para passar o documento como uma string.
Use o formato YAML do arquivo de configuração.
Por exemplo, o
filter
a seguir configura o criador de perfil para registrar operaçõesquery
que demoram mais de 2 segundos:operationProfiling: mode: all filter: '{ op: "query", millis: { $gt: 2000 } }'
replication
Opções
replication: oplogSizeMB: <int> replSetName: <string> enableMajorityReadConcern: <boolean>
replication.oplogSizeMB
Tipo: inteiro
O tamanho máximo em megabytes para o oplog. A configuração
oplogSizeMB
configura o tamanho descompactado do oplog, não o tamanho no disco.Observação
O oplog pode ultrapassar seu limite de tamanho configurado para evitar a exclusão do
majority commit point
.Por padrão, o processo do
mongod
cria um oplog baseado na quantidade máxima de espaço disponível. Para sistemas 64bits, o oplog é normalmente 5% do espaço em disco disponível.Depois que o
mongod
tiver criado o oplog pela primeira vez, a alteração da opçãoreplication.oplogSizeMB
não afeta o tamanho do oplog. Para alterar o tamanho máximo do oplog após iniciar omongod
, usereplSetResizeOplog
. OreplSetResizeOplog
permite a você redimensionar o oplog dinamicamente sem reiniciar o processo domongod
. Para manter as alterações feitas usandoreplSetResizeOplog
por meio de uma reinicialização, atualize o valor deoplogSizeMB
.Consulte Tamanho do Oplog para obter mais informações.
A configuração
replication.oplogSizeMB
está disponível somente paramongod
.
replication.replSetName
Tipo: string
O nome do conjunto de réplicas do qual o
mongod
faz parte. Todos os hosts no conjunto de réplicas devem ter o mesmo nome de conjunto.Se seu aplicativo se conectar a mais de um conjunto de réplicas, cada conjunto deverá ter um nome distinto. Alguns drivers agrupam conexões de conjunto de réplicas por nome de conjunto de réplicas.
A configuração
replication.replSetName
está disponível somente paramongod
.A partir do MongoDB 4.0:
A configuração
replication.replSetName
não pode ser utilizada em conjunto comstorage.indexBuildRetry
.Para o mecanismo de armazenamento WiredTiger, o
storage.journal.enabled: false
não pode ser utilizado em conjunto comreplication.replSetName
.
replication.enableMajorityReadConcern
Padrão: true
Configura o suporte para a read concern
"majority"
.A partir do MongoDB 5.0,
enableMajorityReadConcern
não pode ser alterado e está sempre definido comotrue
. A tentativa de iniciar um mecanismo de armazenamento que não suporta a Read Concern majoritária com a opção--enableMajorityReadConcern
falha e retorna uma mensagem de erro.Em versões anteriores do MongoDB, o
enableMajorityReadConcern
foi configurável.Aviso
Se você estiver usando uma arquitetura PSA (primária-secundária-arbiter) de três membros, considere o seguinte:
O write concern
"majority"
pode causar problemas de desempenho se um secundário não estiver disponível ou estiver atrasado. Para obter conselhos sobre como atenuar esses problemas, consulte Atenuar problemas de desempenho com o conjunto de réplicas PSA.Se você estiver usando um
"majority"
padrão global e o write concern for menor do que o tamanho da maioria, suas consultas poderão retornar dados obsoletos (não totalmente replicados).
sharding
Opções
sharding: clusterRole: <string> archiveMovedChunks: <boolean>
sharding.clusterRole
Tipo: string
O papel que a instância do
mongod
tem no cluster fragmentado. Defina esta configuração como uma das seguintes:ValorDescriçãoconfigsvr
Inicie esta instância como um servidor de configuração. A instância inicia na porta27019
por padrão.shardsvr
Inicie esta instância como um shard. A instância inicia na porta27018
por padrão.Observação
A configuração
sharding.clusterRole
requer que a instânciamongod
esteja sendo executada com replicação. Para implantar a instância como um membro do conjunto de réplica, utilize a configuraçãoreplSetName
e especifique o nome do conjunto de réplica.A configuração
sharding.clusterRole
está disponível somente paramongod
.
auditLog
Opções
Observação
Disponível somente em MongoDB Enterprise e MongoDB Atlas.
auditLog: destination: <string> format: <string> path: <string> filter: <string>
auditLog.destination
Tipo: string
Ao configurar, o
auditLog.destination
habilita auditoria e especifica ondemongos
oumongod
envia todos os eventos de auditoria.auditLog.destination
pode ter um dos seguintes valores:ValorDescriçãosyslog
Envie os eventos de auditoria para syslog no formato JSON. Não disponível no Windows. As mensagens de auditoria têm um nível de severidade syslog de
info
e um nível de facilidade deuser
.O limite de mensagens syslog pode resultar no truncamento de mensagens de auditoria. O sistema de auditoria não detecta o truncamento nem erros na sua ocorrência.
console
Envie os eventos de auditoria parastdout
no formato JSON.file
Envie os eventos de auditoria para o arquivo especificado emauditLog.path
no formato especificado emauditLog.format
.Observação
Disponível somente em MongoDB Enterprise e MongoDB Atlas.
auditLog.filter
Tipo: representação de string de um documento
O filtro para limitar os tipos de operações dos registros do sistema de auditoria. A opção usa uma representação de string de um documento de query no formato:
{ <field1>: <expression1>, ... } O
<field>
pode ser qualquer campo na mensagem de auditoria, incluindo os campos retornados no documento paramétrico. O<expression>
é uma expressão de condição de consulta.Para especificar um filtro de auditoria, coloque o documento do filtro entre aspas simples para passar o documento como uma string.
Para especificar o filtro de auditoria em um arquivo de configuração, você deve utilizar o formato YAML do arquivo de configuração.
Observação
Disponível somente em MongoDB Enterprise e MongoDB Atlas.
auditLog.format
Tipo: string
O formato do arquivo de saída para auditoria se
destination
forfile
. A opçãoauditLog.format
pode ter um dos seguintes valores:ValorDescriçãoJSON
Emite os eventos de auditoria no formato JSON para o arquivo especificado emauditLog.path
.BSON
Saída dos eventos de auditoria no formato binário BSON para o arquivo especificado emauditLog.path
.A impressão de eventos de auditoria em um arquivo no formato JSON degrada mais o desempenho do servidor do que a impressão em um arquivo no formato BSON.
Observação
Disponível somente em MongoDB Enterprise e MongoDB Atlas.
auditLog.path
Tipo: string
O arquivo de saída para auditoria se
destination
tiver valor defile
. A opçãoauditLog.path
pode receber um nome de caminho completo ou um nome de caminho relativo.
snmp
Opções
Observação
O MongoDB Enterprise no macOS não inclui suporte para SNMP devido ao SERVER-29352.
snmp: disabled: <boolean> subagent: <boolean> master: <boolean>
snmp.disabled
Tipo: booleano
Padrão: false
Desabilita o acesso SNMP para
mongod
. A opção é incompatível comsnmp.subagent
esnmp.master
.Configure para
true
para desabilitar o acesso SNMP.A configuração
snmp.disabled
está disponível somente paramongod
.Novidade na versão 4,0,6.
snmp.subagent
Tipo: booleano
Quando
snmp.subagent
étrue
, o SNMP é executado como um subagente. A opção é incompatível comsnmp.disabled
configurado paratrue
.A configuração
snmp.subagent
está disponível somente paramongod
.
snmp.master
Tipo: booleano
Quando
snmp.master
étrue
, o SNMP é executado como mestre. A opção é incompatível comsnmp.disabled
configurado paratrue
.A configuração
snmp.master
está disponível somente paramongod
.
mongos
Opções -only
replication: localPingThresholdMs: <int> sharding: configDB: <string>
replication.localPingThresholdMs
Tipo: inteiro
Padrão: 15
O tempo de ping, em milissegundos, que
mongos
usa para determinar quais nós do conjunto de réplicas secundárias passam operações de leitura dos clientes. O valor padrão de15
corresponde ao valor padrão em todos os drivers do cliente.Quando
mongos
recebe uma solicitação que permite leituras para nós secundários , omongos
:Localiza o nó do conjunto com o menor tempo de ping.
Constrói uma lista de nós do conjunto de réplicas que esteja dentro de um tempo de ping de 15 milissegundos do nó adequado mais próximo do conjunto.
Se você especificar um valor para a opção
replication.localPingThresholdMs
,mongos
construirá a lista de nós da réplica que estão dentro da latência permitida por este valor.Seleciona um nó para ler aleatoriamente a partir desta lista.
O tempo de ping usado para um membro em comparação com a configuração
replication.localPingThresholdMs
é uma média móvel dos tempos de ping recentes, calculada no máximo a cada 10 segundos. Como resultado, algumas queries podem alcançar nós acima do limite até que omongos
recalcule a média.Consulte a seção Preferência de leitura para conjuntos de réplicas da documentação de preferência de leitura para obter mais informações.
sharding.configDB
Tipo: string
Os servidores de configuração do cluster fragmentado.
Os servidores de configuração para clusters fragmentados são implantados como um conjunto de réplica. Os servidores de configuração do conjunto de réplica devem executar o mecanismo de armazenamento WiredTiger.
Especifique o nome do conjunto de réplicas do servidor de configuração e o nome do host e porta de pelo menos um dos membros do conjunto de réplicas do servidor de configuração.
sharding: configDB: <configReplSetName>/cfg1.example.net:27019, cfg2.example.net:27019,... As instâncias
mongos
do cluster sharded devem especificar o mesmo nome de conjunto de réplicas do servidor de configuração, mas podem especificar o nome do host e a porta de diferentes membros do conjunto de réplicas.
Opções de serviço do Windows
processManagement: windowsService: serviceName: <string> displayName: <string> description: <string> serviceUser: <string> servicePassword: <string>
processManagement.windowsService.serviceName
Tipo: string
Padrão: MongoDB
O nome do serviço
mongos
oumongod
quando executado como um serviço do Windows. Use este nome com as operaçõesnet start <name>
enet stop <name>
.Você deve utilizar
processManagement.windowsService.serviceName
em conjunto com a opção--install
ou--remove
.
processManagement.windowsService.displayName
Tipo: string
Padrão: MongoDB
O nome listado para MongoDB no aplicativo administrativo de serviços.
processManagement.windowsService.description
Tipo: string
Padrão: servidor MongoDB
Execute a descrição de serviço do
mongos
oumongod
.Você deve usar
processManagement.windowsService.description
em conjunto com a opção--install
.Para descrições que contêm espaços, você deve incluir a descrição entre aspas.
processManagement.windowsService.serviceUser
Tipo: string
O serviço
mongos
oumongod
no contexto de um determinado usuário. Esse usuário deve ter os privilégios "Fazer login como um serviço".Você deve usar
processManagement.windowsService.serviceUser
em conjunto com a opção--install
.
processManagement.windowsService.servicePassword
Tipo: string
A senha para
<user>
paramongos
oumongod
ao executar com a opçãoprocessManagement.windowsService.serviceUser
.Você deve usar
processManagement.windowsService.servicePassword
em conjunto com a opção--install
.
Opções de MMAPv1 removidas
A partir da versão 4.2, o MongoDB remove o mecanismo de armazenamento MMAPv1 obsoleto e as opções de configuração específicas do MMAPv:
Configuração do arquivo de configuração removida | Opção de linha de comando removida |
---|---|
storage.mmapv1.journal.commitIntervalMs | |
storage.mmapv1.journal.debugFlags | mongod --journalOptions |
storage.mmapv1.nsSize | mongod --nssize |
storage.mmapv1.preallocDataFiles | mongod --noprealloc |
storage.mmapv1.quota.enforced | mongod --quota |
storage.mmapv1.quota.maxFilesPerDB | mongod --quotaFiles |
storage.mmapv1.smallFiles | mongod --smallfiles |
storage.repairPath | mongod --repairpath |
replication.secondaryIndexPrefetch | mongod --replIndexPrefetch |
Para versões anteriores do MongoDB, consulte a versão correspondente do manual. Por exemplo: