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

Girar arquivos de registro

Nesta página

  • Visão geral
  • Comportamento de rotação de registro padrão
  • Rotação de registro com --logRotate reopen
  • Rotação do histórico de syslog
  • Forçar uma rotação de registro com SIGUSR1

Quando usado com a opção --logpath ou systemLog.path configuração, mongod e mongos instâncias relatam uma conta real de todas as atividades e operações para um arquivo de log. Ao relatar dados de atividade para um arquivo de log, por padrão, o MongoDB só gira registros em resposta ao comando logRotate ou quando o processo mongod ou mongos recebe um sinal de SIGUSR1 do sistema operacional. Tanto os registros do servidor quanto os registros de auditoria podem ser alternados com o comando logRotate , juntos ou de forma independente.

A abordagem de rotação de registro padrão do MongoDB arquiva o arquivo de log atual e inicia um novo. Para fazer isso, a instância mongod ou a instância mongos renomeia o arquivo de log atual anexando um carimbo de data/hora UTC ao nome do arquivo, no formato ISODate. Em seguida, ele abre um novo arquivo de log, fecha o arquivo de log antigo e envia todas as novas entradas de registro para o novo arquivo de log.

Você também pode configurar o MongoDB para suportar o utilitário Linux/Unix logrotate definindo systemLog.logRotate ou --logRotate como reopen. Com reopen, mongod ou mongos fecha o arquivo de log e reabre um arquivo de log com o mesmo nome, esperando que outro processo tenha renomeado o arquivo antes da rotação.

Por fim, você pode configurar mongod para enviar dados de registro para syslog usando a opção --syslog . Nesse caso, você pode aproveitar as vantagens de ferramentas alternativas de rotação de registros.

Observação

logRotate não é um comando replicado. Você deve conectar-se a cada instância de um conjunto de réplicas e executar logRotate para alternar os logs dos nós do conjunto de réplicas.

Para girar os arquivos de log, você deve executar uma destas etapas:

  • Envie um sinal SIGUSR1 para o processo mongod ou mongos.

  • Execute o comando MongoDB logRotate.

  • Execute o utilitário Linux/Unix logrotate.

Veja os exemplos mais adiante nesta página.

Dica

Veja também:

Para obter informações sobre registro, consulte a seção Registro de processo.

Por padrão, o MongoDB utiliza o comportamento --logRotate rename. Com rename, mongod ou mongos renomeia o arquivo de log atual anexando um carimbo de data/hora UTC ao nome do arquivo, abre um novo arquivo de log, fecha o arquivo de log antigo e envia todas as novas entradas de registro para o novo arquivo de log.

1
mongod -v --logpath /var/log/mongodb/server1.log

Você também pode especificar explicitamente --logRotate rename.

2

Em um terminal separado, liste os arquivos correspondentes:

ls /var/log/mongodb/server1.log*

Os resultados devem incluir um arquivo de log, server1.log.

3

Alterne o arquivo de log emitindo o comando logRotate do banco de dados admin em mongosh:

db.adminCommand( { logRotate : "server" } )

Se a auditoria estiver habilitada, você poderá especificar 1 para logRotate (em vez de server) para girar o servidor e os registros de auditoria ao mesmo tempo, se desejar. O registro de auditoria girará da mesma forma que o registro do servidor, conforme a configuração --logRotate.

Observação

Você não pode executar este comando em um árbitro para um conjunto de réplicas autenticadas.

4

Liste os novos arquivos de log para visualizar os novos registros:

ls /var/log/mongodb/server1.log*

Deve haver dois arquivos de log listados: server1.log, que é o arquivo de log que mongod ou mongos criou quando reabriu o arquivo de log, e server1.log.<timestamp>, o arquivo de log original renomeado.

A rotação dos arquivos de log não modifica os arquivos de log rotacionados "antigos". Ao rotacionar um registro, você renomeia o arquivo server1.log para incluir o carimbo de data/hora e um novo arquivo server1.log vazio recebe todas as novas entradas de registro.

A rotação de registro com --logRotate reopen fecha e abre o arquivo de log seguindo o comportamento típico de rotação de registro Linux/Unix.

1
mongod -v --logpath /var/log/mongodb/server1.log --logRotate reopen --logappend

Você deve utilizar a opção --logappend com --logRotate reopen.

2

Em um terminal separado, liste os arquivos correspondentes:

ls /var/log/mongodb/server1.log*

Os resultados devem incluir um arquivo de log, server1.log.

3

Alterne o arquivo de log emitindo o comando logRotate do banco de dados admin em mongosh:

db.adminCommand( { logRotate : "server" } )

Você deve renomear o arquivo de log usando um processo externo, seguindo o comportamento típico de rotação de registro Linux/Unix.

Com a rotação do registro syslog, o mongod envia os dados do registro para o syslog em vez de gravá-los em arquivo.

O MongoDB inclui o componente em suas mensagens de log para syslog.

1
mongod --syslog

Não inclua --logpath. Como --syslog diz a mongod para enviar dados de registro para o syslog, a especificação de --logpath causará um erro.

Para especificar o nível da instalação utilizado ao registrar mensagens no syslog, utilize a opção --syslogFacility ou a configuração do systemLog.syslogFacility.

2

Armazene e gire a saída do registro usando o mecanismo de rotação de registro padrão do seu sistema.

Para sistemas baseados em Linux e Unix, você pode utilizar o sinal do SIGUSR1 para girar os registros para um único processo.

Por exemplo, se uma instância mongod em execução tiver um ID de processo (PID) de 2200, o comando a seguir rotacionará o arquivo de log dessa instância no Linux:

kill -SIGUSR1 2200

Voltar

Encerrar operações