상태 관리자로 자체 관리형 샤드 클러스터 상태 구성
이 문서에서는 상태 관리자를 사용하여 샤딩된 클러스터 상태 문제를 모니터링하고 관리하는 방법을 설명합니다.
개요
상태 관리자 는 지정된 강도 수준에서 상태 관리자 패싯 에 대한 상태 검사를 실행합니다. 상태 관리자 검사는 지정된 시간 간격으로 실행 됩니다. 실패한 mongos 를 클러스터 밖으로 자동으로 이동하도록 상태 관리자 를 구성할수 있습니다. 진행률 모니터는 상태 관리자 검사가 중단되거나 응답하지 않도록 합니다.
상태 관리자 패싯
다음 표에는 사용 가능한 상태 관리자 패싯이 나와 있습니다.
패싯 | 상태 관리자가 확인하는 사항 |
---|---|
| config 서버에 대한 연결과 관련된 클러스터 상태 문제. |
| DNS 가용성 및 기능과 관련된 클러스터 상태 문제. |
| LDAP 가용성 및 기능과 관련된 클러스터 상태 문제. |
상태 관리자 강도 수준
다음 표는 사용 가능한 상태 관리자 강도 수준을 보여 줍니다.
강도 수준 | 설명 |
---|---|
| 이 패싯의 상태 관리자는 활성화되어 있으며 오류가 발생하면 실패한 mongos를 클러스터 밖으로 옮길 수 있습니다. 상태 관리자는 |
| 이 패싯의 상태 관리자가 활성화되어 있고 오류를 기록하지만 오류가 발생하면 mongos 클러스터에 남아 있습니다. |
| 이 패싯의 상태 관리자는 비활성화되어 있습니다. mongos는 이 패싯에 대해 상태 확인을 수행하지 않습니다. 이것이 기본 강도 수준입니다. |
활성 장애 기간
장애가 감지되고 상태 관리자 강도 수준이 critical
(으)로 설정되면 상태 관리자는 activeFaultDurationSecs
(으)로 지정된 시간 동안 기다렸다가 mongos를 자동으로 중지하고 클러스터 밖으로 이동합니다.
진행 상황 모니터
진행률 모니터는 테스트를 실행하여 상태 관리자 검사가 멈추거나 응답하지 않는지 확인합니다. 진행률 모니터는 interval
로 지정된 간격으로 이러한 테스트를 실행합니다. 상태 확인이 시작되었지만 deadline
에 지정된 제한 시간 내에 완료되지 않으면 진행률 모니터가 mongo를 중지하고 클러스터에서 제거합니다.
progressMonitor
필드
필드 | 설명 | 단위 |
---|---|---|
| 상태 관리자가 정체되거나 응답하지 않는지 확인하는 빈도입니다. | 밀리초 |
| mongos가 상태 관리자 검사를 통과하지 못할 경우 자동으로 실패하기 전의 타임아웃을 설정합니다. | 초 |
예시
다음 예는 상태 관리자를 구성하는 방법을 보여줍니다. 상태 관리자 매개변수에 대한 자세한 내용은 상태 관리자 매개변수를 참조하세요 .
강도
예를 들어 dns
Health Manager 패싯을 critical
강도 수준으로 설정하려면 시작 시 다음을 실행하십시오.
mongos --setParameter 'healthMonitoringIntensities={ values:[ { type:"dns", intensity: "critical"} ] }'
또는 실행 중인 mongos
에 연결된 mongosh
세션에서 setParameter
명령을 사용하는 경우입니다.
db.adminCommand( { setParameter: 1, healthMonitoringIntensities: { values: [ { type: "dns", intensity: "critical" } ] } } ) } )
setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.
이 설정을 영구적으로 healthMonitoringIntensities
유지하려면 setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.
setParameter: healthMonitoringIntensities: "{ values:[ { type:\"dns\", intensity: \"critical\"} ] }"
healthMonitoringIntensities
values
은 문서 배열을 받아들입니다. values
각 문서에는 두 개의 필드가 있습니다.
type
를 클릭하고 상태 관리자 패싯intensity
강도 수준
자세한 내용은 healthMonitoringIntensities
참조하십시오.
간격
예를 들어, 30초마다 상태 확인을 실행하도록 ldap
Health Manager 패싯을 설정하려면 시작 시 다음을 실행하십시오.
mongos --setParameter 'healthMonitoringIntervals={ values:[ { type:"ldap", interval: "30000"} ] }'
또는 실행 중인 mongos
에 연결된 mongosh
세션에서 setParameter
명령을 사용하는 경우입니다.
db.adminCommand( { setParameter: 1, healthMonitoringIntervals: { values: [ { type: "ldap", interval: "30000" } ] } } ) } )
setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.
이 설정을 영구적으로 healthMonitoringIntervals
유지하려면 setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.
setParameter: healthMonitoringIntervals: "{ values: [{type: \"ldap\", interval: 200}] }"
healthMonitoringIntervals
values
은 문서 배열을 받아들입니다. values
각 문서에는 두 개의 필드가 있습니다.
type
를 클릭하고 상태 관리자 패싯interval
실행하는 시간 간격(밀리초)
자세한 내용은 healthMonitoringIntervals
참조하십시오.
활성 장애 기간
예를 들어, 실패부터 충돌까지의 기간을 5분으로 설정하려면 시작 시 다음을 실행하십시오.
mongos --setParameter activeFaultDurationSecs=300
또는 실행 중인 mongos
에 연결된 mongosh
세션에서 setParameter
명령을 사용하는 경우입니다.
db.adminCommand( { setParameter: 1, activeFaultDurationSecs: 300 } )
setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.
이 설정을 영구적으로 activeFaultDurationSecs
유지하려면 setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.
setParameter: activeFaultDurationSecs: 300
자세한 내용은 activeFaultDurationSecs
참조하십시오.
진행 상황 모니터
진행률 모니터는 테스트를 실행하여 상태 관리자 검사가 멈추거나 응답하지 않는지 확인합니다. 진행률 모니터는 interval
로 지정된 간격으로 이러한 테스트를 실행합니다. 상태 확인이 시작되었지만 deadline
에 지정된 제한 시간 내에 완료되지 않으면 진행률 모니터가 mongo를 중지하고 클러스터에서 제거합니다.
interval
시간을 1000밀리초로 설정하고 deadline
를 300초로 설정하려면 시작 시 다음을 실행하십시오.
mongos --setParameter 'progressMonitor={"interval": 1000, "deadline": 300}'
또는 실행 중인 mongos
에 연결된 mongosh
세션에서 setParameter
명령을 사용하는 경우입니다.
db.adminCommand( { setParameter: 1, progressMonitor: { interval: 1000, deadline: 300 } ) } )
setParameter
로 설정된 파라미터는 재시작 시에도 유지되지 않습니다. 자세한 내용은 SetParameter 페이지를 참조하십시오.
이 설정을 영구적으로 progressMonitor
유지하려면 setParameter
다음 예시에서와 같이 옵션을 사용하여 mongos 구성 파일에서 을 설정합니다.
setParameter: progressMonitor: "{ interval: 1000, deadline: 300 }"
자세한 내용은 progressMonitor
참조하십시오.