MongoDB 엔지니어가 서버 동작을 분석 할 수 있도록 mongod 및 mongos 프로세스에는 FTDC(풀타임 진단 데이터 캡처) 메커니즘이 포함되어 있습니다. FTDC는 기본값 활성화되어 있습니다. 배포 디버깅에서 중요한 역할을 하기 때문에 FTDC 스레드 실패는 치명적이며 상위 mongod 또는 mongos 프로세스 를 중지시킵니다.
행동
참고
Windows의 FTDC 사용자 권한
Windows에서 디스크, CPU, 메모리 등의 시스템 데이터를 수집하려면 FTDC가 다음 그룹의 Microsoft 액세스 권한을 요구합니다.
성능 모니터 사용자
Performance Log Users
mongod 및 mongos 를 실행 사용자가 관리자가 아닌 경우 이러한 그룹에 추가하여 FTDC 데이터를 로그 . 자세한 내용은 Microsoft 설명서를 참조하세요.
FTDC는 다음 명령으로 생성된 통계를 주기적으로 수집합니다.
local.oplog.rscollection에 대한collStats(mongod만 해당)connPoolStats(mongos만 해당)
호스트 운영 체제에 따라 진단 데이터에는 다음 사용률 통계 중 하나 이상이 포함될 수 있습니다.
CPU 사용률
메모리 효율성
성능과 관련된 디스크 사용률입니다. FTDC에는 저장 용량과 관련된 데이터가 포함되지 않습니다.
네트워크 성능 통계 FTDC는 메타데이터만 캡처하며 네트워크 패킷을 캡처하거나 검사하지 않습니다.
참고
FTDC는 파일 회전 또는 시작 시 다음 명령으로 생성된 통계를 수집합니다.
FTDC 데이터 파일
mongod 프로세스는 storage.dbPath 인스턴스 아래의 diagnostic.data 디렉토리에 FTDC 데이터 파일을 저장합니다. 모든 진단 데이터 파일은 이 디렉터리에 저장됩니다. 예를 들어 /data/db의 dbPath 경우, 진단 데이터 디렉토리는 /data/db/diagnostic.data가 됩니다.
mongos프로세스는 systemLog.path 로그 경로 설정을 기준으로 진단 디렉토리에 FTDC 데이터 파일을 저장합니다. MongoDB는 로그 경로의 파일 확장자를 자르고 diagnostic.data를 나머지 이름에 연결합니다. 예를 들어 path 설정이 /var/log/mongodb/mongos.log인 경우 진단 데이터 디렉토리는 /var/log/mongodb/mongos.diagnostic.data가 됩니다.
FTDC 개인정보 보호
FTDC 데이터 파일은 압축되어 있어 사람이 읽을 수 없습니다. 이 파일은 MongoDB 데이터 파일과 동일한 파일 액세스 권한을 상속받습니다. FTDC 데이터 파일에 액세스할 수 있는 사용자만 FTDC 데이터를 전송할 수 있습니다.
MongoDB 엔지니어는 시스템 소유자나 연산자의 명시적인 허가와 지원 없이는 FTDC 데이터에 액세스할 수 없습니다.
다음 정보는 FTDC 데이터에 절대 포함되지 않습니다.
쿼리, 쿼리 조건자 또는 쿼리 결과의 샘플
최종 사용자 컬렉션 또는 인덱스에서 샘플로 가져온 데이터
시스템 또는 MongoDB 사용자 자격증명 또는 보안 인증서
FTDC 데이터에는 호스트 이름, 운영 체제 정보, mongod 또는 mongos를 시작하는 데 사용된 옵션 또는 설정과 같은 특정 호스팅하다 시스템 정보가 포함되어 있습니다. 이 정보는 일부 조직 또는 규제 기관에서 보호되거나 기밀로 간주될 수 있습니다. 이러한 필드가 보호, 기밀 또는 PII 데이터로 구성된 클러스터의 경우 FTDC 데이터를 전송하기 전에 MongoDB 엔지니어에게 알려 적절한 보안 조치를 조정하세요.
세부 정보
FTDC 소스 코드는 MongoDB Github 리포지토리에서 확인할 수 있습니다. ftdc_system_stats_*.ccp 파일은 캡처한 시스템별 진단 데이터를 구체적으로 정의합니다.
FTDC 기본값
FTDC는 다음과 같은 기본값으로 실행됩니다.
1초마다 데이터 캡처
250 MB 최대
diagnostic.data폴더 크기( 샤딩된 클러스터의 경우 500 MB).버전 8.0.10에서 변경됨: 기본값이 200 MB에서 증가했습니다( 샤딩된 클러스터의 경우 400 MB).
이러한 기본값은 성능이나 저장 크기에 영향 최소화하면서 MongoDB 엔지니어에게 유용한 데이터를 제공합니다. 특정 진단 목적으로 MongoDB 엔지니어가 요청하는 경우에만 이 값을 수정합니다.
중요
MongoDB 폴더가 크기 제한에 도달하면 이전 데이터를 덮어씁니다. 중요한 진단 정보를 보존하려면 사고 발생 시점의 diagnostic.data 디렉토리 캡처합니다. MongoDB FTDC 데이터를 삭제하면 더 이상 진단 분석에 사용할 수 없습니다.
온프레미스 환경에서의 데이터 보존
MongoDB 로컬 호스팅하다 에만 FTDC 데이터를 저장합니다. OTel 또는 기타 로그 전달 파이프라인에서 전달한 FTDC 데이터는 진단 목적으로 사용할 수 없습니다.
Terraform과 같은 자동화 도구 또는 임시 저장 를 사용하는 온프레미스 환경에서는 호스팅하다 종료되거나 재구축될 때 FTDC 데이터가 손실됩니다. 진단 조사를 위한 FTDC 데이터의 가용성을 높이려면 다음 조치 중 하나 또는 둘 다를 고려합니다.
영구 저장 에
diagnostic.data디렉토리 저장합니다.diagnostic.data디렉토리 영구 외부 위치 에 주기적으로 복사합니다.
MongoDB 엔지니어는 정확한 진단을 위해 FTDC 데이터에 의존합니다.
FTDC 비활성화
경고
프로덕션 환경에는 권장되지 않습니다.
FTDC를 비활성화하려면 mongod 또는 mongos를 구성 파일의 setParameter 설정에서 diagnosticDataCollectionEnabled: false 옵션으로 시작하세요:
setParameter: diagnosticDataCollectionEnabled: false
FTDC를 비활성화하면 MongoDB 엔지니어의 지원을 받아 문제를 분석하거나 디버깅할 때 필요한 시간이나 리소스가 증가할 수 있습니다. MongoDB 지원에 대한 자세한 내용은 MongoDB 지원 시작하기를 참조하세요.