Definição
getLoggetLogis an administrative command that returns the most recent 1024 loggedmongodevents.getLogdoes not read log data from themongodlog file. It instead reads data from a RAM cache of loggedmongodevents. To rungetLog, use thedb.adminCommand()method.getLogretorna dados de registro no formato de escape Relaxed Extended JSON v2.0. Anteriormente, os dados de registro eram retornados como texto simples.
Compatibilidade
Esse comando está disponÃvel em implantações hospedadas nos seguintes ambientes:
- MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem
Observação
Este comando é suportado em todos os clusters do MongoDB Atlas . Para obter informações sobre o suporte do Atlas para todos os comandos, consulte Comandos não suportados.
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponÃvel, de uso gratuito e autogerenciada do MongoDB
Sintaxe
O comando tem a seguinte sintaxe:
db.adminCommand( { getLog: <value> } )
Campos de comando
Os valores possÃveis para getLog são:
Valor | Descrição |
|---|---|
| Retorna uma lista dos valores disponÃveis para o comando |
| Retorna a saÃda combinada de todas as entradas de log recentes. |
| Retorna entradas de registro que podem conter erros ou avisos do registro do MongoDB de quando o processo atual foi iniciado. Se |
Observação
O comando getLog não aceita mais o valor de rs, pois esta categorização do tipo de mensagem foi preterida. Em vez disso, as mensagens de registro agora são sempre identificadas por seu componente, incluindo REPL para mensagens de replicação.Consulte Filtrando por componente para ver exemplos de análise de registros que filtram no campo de componente.
SaÃda
Se especificado *, o comando retorna um documento com os nomes dos outros valores aceitáveis.
Caso contrário, o comando retorna um documento que inclui os seguintes campos:
totalLinesWrittencampo que contém o número de eventos de loglogcampo que contém uma array de eventos de logUm documento de resposta
db.adminCommand()contendo informações de status e data e hora.
Comportamento
Truncamento de linha
getLog trunca todos os eventos que contiverem mais de 1024 caracteres.
Escape de caracteres
getLog retorna dados de registro no formato de escape Relaxed Extended JSON v2.0, usando as seguintes sequências de escape para renderizar a saÃda do registro como JSON válido:
Caractere representado | Sequência de fuga |
|---|---|
Aspas ( |
|
Backslash ( |
|
Backspace ( |
|
Formfeed ( |
|
Newline ( |
|
Quebra de linha ( |
|
Horizontal tab ( |
|
Os caracteres de controle não mencionados são representados como \uXXXX, sendo "XXXX" o ponto de código Unicode em formato hexadecimal. Bytes com codificação UTF-8 inválida são substituÃdos pelo caractere de substituição unicode representado por \ufffd.
Filtragem
Dentro de mongosh
getLog a saÃda pode ser filtrada para tornar os resultados mais legÃveis ou para corresponder a critérios especÃficos.
A operação a seguir imprime apenas o campo log (que contém a array de todos os eventos de log recentes) e remove caracteres que escapam de cada mensagem de log:
db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})
Essa operação apresenta a saÃda getLog no mesmo formato que o MongoDB log file.
Fora de mongosh com jq
Ao trabalhar com o log estruturado do MongoDB , você pode usar o utilitário de linha de comando jqde terceiros para obter uma impressão bonita e fácil de entradas de registro, além de correspondência e filtragem avançadas com base em chaves.
jq é um analisador JSON de código aberto, e está disponÃvel para Linux, Windows e macOS.
Para usar jq com saÃda getLog, você deve usar a opção --eval para mongosh. A operação a seguir usa jq para filtrar o componente REPL e apresentar apenas as mensagens de registro associadas à replicação:
mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -c '. | select(.c=="REPL")'
Certifique-se de fornecer quaisquer parâmetros especÃficos da conexão necessários para mongosh conforme necessário, como --host ou --port.
Consulte Analisando Mensagens de registro estruturadas para mais exemplos de filtragem de saÃda de registro utilizando jq. A sintaxe jq apresentada em cada exemplo vinculado pode ser usada com a operação mongo --eval acima com um pequeno ajuste. Por exemplo, a sintaxe a seguir adapta a função vinculada "Contando mensagens exclusivas" exemplo para uso com getLog:
mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -r ".msg" | sort | uniq -c | sort -rn | head -10
Exemplos
Recuperar filtros de registro disponÃveis
A operação a seguir, executada a partir de mongosh, retorna os filtros de registro disponÃveis para passar para getLog:
db.adminCommand( { getLog: "*" } )
A operação retorna o seguinte documento:
{ "names" : [ "global", "startupWarnings" ], "ok" : 1 }
Recuperar eventos recentes de registro
A operação a seguir, executada a partir de mongosh, recupera os eventos global mais recentes para o mongod:
db.adminCommand( { getLog : "global" } )
A operação retorna um documento semelhante ao seguinte:
{ "totalLinesWritten" : <num>, "log" : [ "{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":4615611, \"ctx\":\"initandlisten\",\"msg\":\"MongoDB starting\",\"attr\":{\"pid\":12345,\"port\":27001,\"dbPath\":\"/var/lib/mongo\",\"architecture\":\"64-bit\",\"host\":\"server1.example.com\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":23403, \"ctx\":\"initandlisten\",\"msg\":\"Build Info\",\"attr\":{\"buildInfo\":{\"version\":\"4.4.0\",\"gitVersion\":\"328c35e4b883540675fb4b626c53a08f74e43cf0\",\"openSSLVersion\":\"OpenSSL 1.1.1c FIPS 28 May 2019\",\"modules\":[],\"allocator\":\"tcmalloc\",\"environment\":{\"distmod\":\"rhel80\",\"distarch\":\"x86_64\",\"target_arch\":\"x86_64\"}}}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":51765, \"ctx\":\"initandlisten\",\"msg\":\"Operating System\",\"attr\":{\"os\":{\"name\":\"CentOS Linux release 8.0.1905 (Core) \",\"version\":\"Kernel 4.18.0-80.11.2.el8_0.x86_64\"}}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:48.871+00:00\"},\"s\":\"I\", \"c\":\"CONTROL\", \"id\":21951, \"ctx\":\"initandlisten\",\"msg\":\"Options set by command line\",\"attr\":{\"options\":{\"config\":\"/etc/mongod.conf\",\"net\":{\"bindIp\":\"127.0.0.1\",\"port\":27001},\"processManagement\":{\"fork\":true,\"timeZoneInfo\":\"/usr/share/zoneinfo\"},\"replication\":{\"replSetName\":\"repl-shard1\"},\"sharding\":{\"clusterRole\":\"shardsvr\"},\"storage\":{\"dbPath\":\"/var/lib/mongo\",\"journal\":{\"enabled\":true},\"wiredTiger\":{\"engineConfig\":{\"cacheSizeGB\":0.1}}},\"systemLog\":{\"destination\":\"file\",\"logAppend\":true,\"path\":\"/var/log/mongodb/mongod.log\"}}}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:48.873+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":22270, \"ctx\":\"initandlisten\",\"msg\":\"Storage engine to use detected by data files\",\"attr\":{\"dbpath\":\"/var/lib/mongo\",\"storageEngine\":\"wiredTiger\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:48.873+00:00\"},\"s\":\"I\", \"c\":\"STORAGE\", \"id\":22315, \"ctx\":\"initandlisten\",\"msg\":\"wiredtiger_open config\",\"attr\":{\"config\":\"create,cache_size=102M,session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress],\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server1.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server2.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server3.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server4.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server5.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"CONNPOOL\", \"id\":22576, \"ctx\":\"ReplicaSetMonitor-TaskExecutor\",\"msg\":\"Connecting\",\"attr\":{\"hostAndPort\":\"server6.example.com:27001\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23015, \"ctx\":\"listener\",\"msg\":\"Listening on\",\"attr\":{\"address\":\"/tmp/mongodb-27001.sock\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23015, \"ctx\":\"listener\",\"msg\":\"Listening on\",\"attr\":{\"address\":\"127.0.0.1\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:10:58.877+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":23016, \"ctx\":\"listener\",\"msg\":\"Waiting for connections\",\"attr\":{\"port\":27001,\"ssl\":\"off\"}}", "{\"t\":{\"$date\":\"2020-05-19T19:15:10.392+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":22943, \"ctx\":\"listener\",\"msg\":\"connection accepted\",\"attr\":{\"remote\":\"127.0.0.1:35724\",\"sessionId\":67,\"connectionCount\":30}}", "{\"t\":{\"$date\":\"2020-05-19T19:15:10.393+00:00\"},\"s\":\"I\", \"c\":\"NETWORK\", \"id\":51800, \"ctx\":\"conn67\",\"msg\":\"client metadata\",\"attr\":{\"remote\":\"127.0.0.1:35724\",\"client\":\"conn67\",\"doc\":{\"application\":{\"name\":\"MongoDB Shell\"},\"driver\":{\"name\":\"MongoDB Internal Client\",\"version\":\"4.4.0\"},\"os\":{\"type\":\"Linux\",\"name\":\"CentOS Linux release 8.0.1905 (Core) \",\"architecture\":\"x86_64\",\"version\":\"Kernel 4.18.0-80.11.2.el8_0.x86_64\"}}}}" ], "ok" : 1, "$gleStats" : { "lastOpTime" : Timestamp(<ts>), "electionId" : ObjectId(<id>) }, "lastCommittedOpTime" : Timestamp(<ts>), "$configServerState" : { "opTime" : { "ts" : Timestamp(<ts>), "t" : Long(8) } }, "$clusterTime" : { "clusterTime" : Timestamp(<ts>), "signature" : { "hash" : BinData(<bin>), "keyId" : Long(0) } }, "operationTime" : Timestamp(<ts>) }