MongoDB의 로그 모듈 상세 정보

5122 단어 MongoDB로그
오늘은 MongoDB에 있는 로그 모듈을 간단히 연구하여 글을 써 보겠습니다.

01 MongoDB 로그 구성 요소 종류 및 로그 레벨


모든 데이터베이스에는 자신의 로그 모듈이 있는데 MongoDB도 예외가 아니다. 일반적인 상황에서 한 데이터베이스의 로그에는 데이터베이스의 연결 정보, 저장 정보, 네트워크 정보, 색인 정보와 조회 정보 등이 기록된다.MongoDB3.0 버전부터 MongoDB는 로그에 로그 등급과 로그 구성 요소의 개념을 도입했다. DBA로서 가장 주목하는 것은 느린 조회 로그와 연결 로그이다.
MongoDB에서는 다음 명령을 통해 모든 로그 구성 요소의 종류와 해당하는 로그 등급을 얻을 수 있습니다.
db.getLogComponents()

PRIMARY> db.getLogComponents()
{
        "verbosity" : 0,
        "accessControl" : {
                "verbosity" : -1
        },
        "command" : {
                "verbosity" : -1
        },
        "control" : {
                "verbosity" : -1
        },
        "executor" : {
                "verbosity" : -1
        },
        "geo" : {
                "verbosity" : -1
        },
        "index" : {
                "verbosity" : -1
        },
        "network" : {
                "verbosity" : -1,
                "asio" : {
                        "verbosity" : -1
                },
                "bridge" : {
                        "verbosity" : -1
                }
        },
        "query" : {
                "verbosity" : -1
        },
        "replication" : {
                "verbosity" : -1
        },
        "sharding" : {
                "verbosity" : -1
        },
        "storage" : {
                "verbosity" : -1,
                "journal" : {
                        "verbosity" : -1
                }
        },
        "write" : {
                "verbosity" : -1
        },
        "ftdc" : {
                "verbosity" : -1
        }
}
여기, 나는 집행 결과에 대해 설명을 해야 한다.
우선 결과의 전체verbosity를 되돌려줍니다. 그 값은 0입니다.상응하는 수치는 1~5, 숫자가 클수록 로그의 상세도가 높다는 것을 나타낸다. 이 수치가 5로 나오면 MongoDB는 모든 디버그 로그를 출력한다. 이 로그의 양은 매우 크다. 일반적인 상황에서 기본값은 0이다.
이 실행 결과에 많은 하위 항목이 포함되어 있음을 알 수 있습니다. 예를 들어command,control,executer,query,replication,sharding 등입니다. 이 하위 항목들은 로그 구성 요소라고도 합니다. 이것은 이런 종류의 로그를 대표합니다. 예를 들어sharding은 조각과 관련된 로그를 대표합니다.모든 하위 항목에verbosity가 있습니다. 이것은 현재 구성 요소의 로그 등급을 대표합니다. 그 값은 위의verbosity 값과 같이 0, 1, 2, 3, 4, 5를 취할 수 있습니다. 다른 것은 -1을 가져올 수 있고 부모 로그 등급을 계승할 수 있습니다.
위의 예에서
1、storage는 storage입니다.joural의 부모 디렉터리입니다.
2、storage.journal의 로그 등급은 -1입니다.storage의 로그 등급을 계승하는 것을 대표합니다.
3,storage의 로그 수준도 -1입니다. 이것은 전역의 로그 수준을 계승하는 것을 대표합니다.
4. 전역의 로그 레벨은 0입니다. 이것은storage와storage를 의미합니다.Journal의 로그 레벨도 모두 0입니다.

02 로그 구성 요소의 로그 수준 설정


더 나은 가독성을 얻기 위해 단일 로그 구성 요소의 로그 레벨을 더 명확하게 출력할 때가 있습니다. 이 경우 다음 명령을 통해 로그 구성 요소의 로그 레벨을 설정할 수 있습니다.

방법1:db.setLogLevel()


db.setLogLevel()
일반적인 방법은 다음과 같습니다.
db.setLogLevel(,)
그 중에서 level은 등급으로 0~5의 값을 얻을 수 있고component는 구성 요소 이름입니다.accessControl,command,control,ftdc,geo,index,network,query,replication,recovery,sharding,storage,storage를 찾을 수 있습니다.journal,transaction,write 등.

메서드 2: MongoDB 명령 실행


이 명령은 단일 구성 요소의 로그 레벨만 설정할 수 있습니다. 여러 구성 요소의 로그 레벨을 한 번에 설정하려면 다음 방법을 사용하십시오.

db.adminCommand( {
   setParameter: 1,
   logComponentVerbosity: {
      verbosity: 1,
      query: { verbosity: 2 },
      storage: {
         verbosity: 2,
         journal: {
            verbosity: 1
         }
      }
   }
} )
위의 예 중의 방법은
전역의 로그 레벨을 1로 설정하기;
query의 로그 레벨을 2로 설정하기;
storage의 로그 레벨을 2로 설정하기;
스토리지를journal의 로그 레벨을 1로 설정합니다.

메서드 3: 구성 파일 쓰기


이 명령을 실행하는 것은 구성 파일에 쓰는 것과 같습니다.

systemLog:
    verbosity: 1
    component:
        query:
            verbosity: 2
        storage:
            verbosity: 2
            journal:
                verbosity: 1

방법4: 시작할 때 매개 변수를 설정합니다


이외에도 몬god가 시작될 때 명령을 통해 어떤 로그 구성 요소의 로그 등급을 설정할 수 있습니다. 다음과 같습니다.

mongod --setParameter "logComponentVerbosity={command: 3}"

03 로그 데이터 양이 많은 처리 방법


때때로 로그를 오랫동안 정리하지 않으면 로그의 데이터 양이 매우 커질 수 있습니다. 이때 우리는 두 가지 방법을 통해 로그를 스크롤할 수 있습니다.
방법 1:
직접 MongoDB 서비스를 닫고 오래된 로그 파일을 mv에 떨어뜨리고 MongoDB 서비스를 시작하면 새로운 Mongodb가 생성됩니다.로그의 로그;
분명히 이 방법은 우아하지 않다.
방법 2:
로그 휠을 사용하여 MongoDB 명령줄에 직접 입력:

use admin  // admin 
db.runCommand({logRotate:1})
이 방법은 명령을 사용하여 로그 파일을 전환합니다. 몬godb 서비스를 닫을 필요가 없습니다. 이것은 비교적 추천하는 방법입니다.
물론 사람이 수동으로 이 명령을 정기적으로 집행해야 하는 것도 우아하지 않은 것 같아서crontab와 협조하여 이 일을 할 수 있습니다. 매일 정해진 시간에 한 번씩 실행하여 로그 파일이 굴러가는 목적을 달성할 수 있습니다.
다음은 MongoDB의 로그 모듈에 대한 상세한 내용입니다. MongoDB 로그 모듈에 대한 더 많은 자료는 저희 다른 관련 글에 주목하세요!

좋은 웹페이지 즐겨찾기