sentinel_monitor
Redis SENTINEL MONITOR
Redis Sentinel Course | Redis Technical Support | Redis Enterprise Server |
---|
Redis SENTINEL MONITOR
지정한 마스터에 대한 모니터링을 시작합니다.
사용법
명령: SENTINEL MONITOR <master-name> <ip> <port> <quorum>
실행 예
항목 설명
MASTER-NAME
Master-name은 센티널이 모니터할 레디스 서버 이름으로 임으로 지정할 수 있습니다.
지정한 master-name으로 모니터를 중지(remove)하거나 레디스 서버에 대한 자세한 정보를
조회할 때 사용하고,
INFO sentinel
명령의 결과에서 name 항목에 표시됩니다.
하나의 센티널 내에서 master-name을 중복해서 지정할 수 없습니다.
중복 입력하면 아래와 같은 에러가 발생합니다.
IP PORT
다음은 모니터할 마스터 서버의 IP와 port를 입력합니다.
복제(슬레이브) 서버를 지정하지 마세요.
복제를 지정해도 에러는 발생하지 않지만 복제를 모니터할 필요가 없으며,
복제에 SLAVEOF 명령을 실행하거나 재시작(restart)하면
예상치 못한 현상이 발생할 수 있습니다.
|
이미 모니터하고 있는 서버의 IP와 port를 입력하지 마세요.
에러는 발생하지 않지만 중복해서 모니터할 필요가 없으며,
서버에 SLAVEOF 명령을 실행하거나 재시작(restart)하면
예상치 못한 현상이 발생할 수 있습니다.
|
쿼럼 QUORUM
다음은 쿼럼(quorum)을 입력합니다. 하나의 마스터를 모니터하는 센티널이 1대면 1, 센티널이 3대면 2, 센티널이 5대면 3을 입력하세요. 대부분의 경우 센티널 3대를 사용합니다.
마스터와 복제 정보 관리
SENTINEL monitor
명령이 실행되면
센티널은 마스터 서버를 모니터하기 시작합니다.
그리고 마스터의 복제 정보를 가져와서 관리합니다.
복제 정보를 관리하는 주 목적은 마스터가 다운되었을 때 복제 중 하나를 마스터로
승격시키기 위해서입니다.
복제에 SLAVEOF NO ONE
명령을 실행시키면 마스터로 승격됩니다만,
센티널이 다시 복제로 변경시킵니다.
센티널하에서 SLAVEOF 명령으로 인한 예기치 못한 상황에 대한 자세한 사항은 여기를 보세요.
왼쪽 그림을 예로 들어 설명하면, 센티널들은 7000번 마스터와
7001번 복제의 정보를 관리합니다. 하지만 7002번 복제은 관리하지 않습니다.
이유는 마스터 다운 시 새 마스터로 7001번 서버는 후보가 되지만,
7002번 서버는 해당되지 않기 때문입니다.
하지만 7001번 서버가 마스터가 되면 센티널은 7002번 서버 정보를 관리하기 시작합니다.
왜냐하면 7002번 서버가 새로운 후보이기 때문입니다. |
다른 센티널 정보 관리
센티널은 마스터를 모니터하는 다른 센티널 정보도 가져와서 관리합니다. 이것은 마스터 다운 시 다른 센티널과 정보를 교환해서 쿼럼을 기준으로 객관적 다운을 판정하기 위해서이고, 센티널 중 하나를 리더(leader)로 선출해서 장애조치를 수행하기 위해서입니다. 센티널 리더 선출에 대한 자세한 사항은 여기를 보세요.
SENTINEL.CONF 기록
센티널은 sentinel.conf
파일에 아래와 같이 입력한 명령 그대로 추가(write)합니다.
센티널 로그 기록
센티널 로그 파일에 아래과 같이 기록합니다.
여기서 plus 기호 +는 모니터 시작을 의미하고,
minus 기호 -는 모니터 중지(remove)를 의미합니다.
다른 경우 +는 해당 상태에 진입, -는 해제를 의미합니다.
예를 들어, "+sdown"은 해당 노드가 다운되었다는 것을 나타내고,
"-sdown"은 다시 살았다는 것을 나타냅니다.
센티널 클라이언트
마스터 서버는 자신을 모니터하는 센티널이 생길 때마다 센티널 클라이언트가 2개씩 추가됩니다.
복제도 마찬가지로 센티널 클라이언트가 2개씩 추가됩니다.
이것은 센티널이 Ping, Info, Pub/Sub
명령등으로 정보를 교환하며 모니터하기 때문입니다.
왼쪽 그림은 7000번 마스터 서버의 클라이언트 정보입니다.
클리이언트 이름이 |
센티널 구성 변경 시 쿼럼 수정
아래 그럼과 같이 7111번 센티널 1대로 운영하다가 센티널 2대를 추가해서 총 3대로 운영하기로 했을 경우, 7111번 센티널에서 master7000의 쿼럼을 1에서 2로 수정해야 한다.
센티널 추가와 쿼럼 수정 명령 예
SENTINEL MASTER master-name
명령으로 쿼럼 등 마스터에 대한 정보를 조회를 할 수 있다.
그림 3-2 상태로 운영 중 7111번 센티널과 7112번, 7113번 센티널과 통신이 단절된 상태에서
7000번 마스터가 다운되면 7111번 센티널은 복제를 마스터로 승격시키는 장애조치를 할 것이고,
7112번과 7113번 센티널도 리더를 선출해서 같은 장애조치를 할 것이다.
그러면 예상치 못한 이상한 상태가 될 것이다.
명령문 命令文 Command syntax
SENTINEL MONITOR <master-name> <ip> <port> <quorum>
- 이 명령은 version 2.8.0 부터 사용할 수 있습니다.
- 이 문서는 버전 3.2.2을 기준으로 작성되었습니다.
Clients for Java | Jedis, Lettuce | Clients for C | Hiredis |
<< SENTINEL MYID | SENTINEL MONITOR | SENTINEL REMOVE >> |
---|