정의
getLoggetLogis an administrative command that returns the most recent 1024 logged events for amongodormongosinstance.getLogdoes not read log data from the log file. Instead, it reads data from a RAM cache of logged events from eithermongodormongos. To rungetLog, use thedb.adminCommand()method.getLogreturns log data in escaped Relaxed Extended JSON v2.0 format. Previously, log data was returned as plaintext.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud
참고
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.adminCommand( { getLog: <value> } )
명령 필드
The possible values for getLog are:
값 | 설명 |
|---|---|
| Returns a list of the available values to the |
| 모든 최근 로그 항목의 합산 출력을 반환합니다. |
| 현재 프로세스 시작되었을 때 MongoDB 로그 의 오류 또는 경고가 포함될 수 있는 로그 항목을 반환합니다. 프로세스 경고 없이 시작된 경우 이 필터하다 빈 배열 반환할 수 있습니다. |
참고
The getLog command no longer accepts the rs value, as this categorization of message type has been deprecated. Instead, log messages are now always identified by their component - including REPL for replication messages. See Filtering by Component for log parsing examples that filter on the component field.
출력
*로 지정하면 명령은 허용되는 다른 값의 이름이 포함된 문서를 반환합니다.
그렇지 않으면 명령은 다음 필드를 포함하는 문서를 반환합니다.
totalLinesWritten로그 이벤트 수가 포함된 필드입니다.log로그 이벤트 배열을 포함하는 필드상태 및 타임스탬프 정보가 포함된
db.adminCommand()응답 문서입니다.
행동
줄 잘라내기
getLog 1024자를 초과하는 모든 이벤트를 잘라냅니다.
이스케이프 문자
getLog returns log data in escaped Relaxed Extended JSON v2.0 format, using the following escape sequences to render log output as valid JSON:
대체 문자 | 시퀀스 이스케이프 |
|---|---|
따옴표 ( |
|
백슬래시 ( |
|
백스페이스 ( |
|
폼피드 ( |
|
뉴라인 ( |
|
캐리지 리턴 ( |
|
가로 탭 ( |
|
위에 나열되지 않은 제어 문자는 \uXXXX로 이스케이프됩니다. 여기서 " XXXX " 는 16진수의 유니코드 코드 포인트입니다. 잘못된 UTF-8 인코딩이 있는 바이트는 \ufffd로 표시되는 유니코드 대체 문자로 대체됩니다.
필터링
이내 mongosh
getLog 출력을 필터링하여 결과를 더 읽기 쉽게 만들거나 특정 기준에 일치시킬 수 있습니다.
다음 작업은 log 필드(모든 최근 로그 이벤트의 배열 포함)만 출력하고 각 로그 메시지에서 이스케이프 문자를 제거합니다.
db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})
This operation presents getLog output in the same format as the MongoDB log file.
이(가) mongosh 포함된 외부 jq
MongoDB 구조화된 로깅 작업 시 타사 jq 명령줄 유틸리티를 사용하여 로그 항목을 가독성 있게 간편하게 출력하고 강력한 키 기반 매칭 및 필터링을 수행할 수 있습니다.
jq 는 오픈 소스 JSON 파서이며 Linux, Windows, macOS에서 사용할 수 있습니다.
To use jq with getLog output, you must use the --eval option to mongosh. The following operation uses jq to filter on the REPL component to present only those log messages associated with replication:
mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -c '. | select(.c=="REPL")'
Be sure to provide any necessary connection-specific parameters to mongosh as needed, such as --host or --port.
See Parsing Structured Log Messages for more examples of filtering log output using jq. The jq syntax presented in each linked example can be used with the above mongo --eval operation with minor adjustment. For example, the following syntax adapts the linked "Counting Unique Messages" example for use with getLog:
mongosh --quiet --eval "db.adminCommand( { getLog:'global'} ).log.forEach(x => {print(x)})" | jq -r ".msg" | sort | uniq -c | sort -rn | head -10
예시
사용 가능한 로그 필터 검색
The following operation, run from mongosh, returns the available log filters for passing to getLog:
db.adminCommand( { getLog: "*" } )
연산은 다음 문서를 반환합니다.
{ "names" : [ "global", "startupWarnings" ], "ok" : 1 }
로그에서 최근 이벤트 조회
The following operation, run from mongosh, retrieves the most recent global events for a mongod or mongos instance:
db.adminCommand( { getLog : "global" } )
이 작업은 다음과 유사한 문서를 반환합니다.
{ "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>) }