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