Visão geral
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 logs em resposta ao comando logRotate ou quando o processo de mongod ou mongos recebe um sinal de SIGUSR1 do sistema operacional. Tanto os logs do servidor quanto os logs 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
Para girar os arquivos de log, você deve executar uma destas etapas:
Execute o comando MongoDB
logRotate.Execute o utilitário Linux/Unix
logrotate.
Veja os exemplos mais adiante nesta página.
Dica
Para obter informações sobre registro, consulte a seção Registro de processo.
Comportamento de rotação de registro padrão
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.
Inicie uma instância mongod do.
mongod -v --logpath /var/log/mongodb/server1.log
Você também pode especificar explicitamente --logRotate rename.
Gire o arquivo de log.
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.
Visualizar os novos arquivos de log
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.
Rotação de registro com --logRotate reopen
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.
Inicie uma instância do, especificando mongod o reopen --logRotate comportamento do.
mongod -v --logpath /var/log/mongodb/server1.log --logRotate reopen --logappend
Você deve utilizar a opção --logappend com --logRotate reopen.
Rotação do histórico de syslog
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.
Inicie uma instância mongod --syslog com aopção
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.
Forçar uma rotação de registro com SIGUSR1
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