Girar arquivos de registro
Nesta página
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
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
.
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