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을 중복해서 지정할 수 없습니다. 중복 입력하면 아래와 같은 에러가 발생합니다.

(error) ERR Duplicated master name

IP PORT

다음은 모니터할 마스터 서버의 IP와 port를 입력합니다.

Note 복제(슬레이브) 서버를 지정하지 마세요. 복제를 지정해도 에러는 발생하지 않지만 복제를 모니터할 필요가 없으며, 복제에 SLAVEOF 명령을 실행하거나 재시작(restart)하면 예상치 못한 현상이 발생할 수 있습니다.
Note 이미 모니터하고 있는 서버의 IP와 port를 입력하지 마세요. 에러는 발생하지 않지만 중복해서 모니터할 필요가 없으며, 서버에 SLAVEOF 명령을 실행하거나 재시작(restart)하면 예상치 못한 현상이 발생할 수 있습니다.

쿼럼 QUORUM

다음은 쿼럼(quorum)을 입력합니다. 하나의 마스터를 모니터하는 센티널이 1대면 1, 센티널이 3대면 2, 센티널이 5대면 3을 입력하세요.   대부분의 경우 센티널 3대를 사용합니다.

마스터와 복제 정보 관리

SENTINEL monitor 명령이 실행되면 센티널은 마스터 서버를 모니터하기 시작합니다. 그리고 마스터의 복제 정보를 가져와서 관리합니다.   복제 정보를 관리하는 주 목적은 마스터가 다운되었을 때 복제 중 하나를 마스터로 승격시키기 위해서입니다.   복제에 SLAVEOF NO ONE 명령을 실행시키면 마스터로 승격됩니다만, 센티널이 다시 복제로 변경시킵니다.   센티널하에서 SLAVEOF 명령으로 인한 예기치 못한 상황에 대한 자세한 사항은 여기를 보세요.

redis sentinel monitor
그림 1-1   Redis Sentinel Monitor

왼쪽 그림을 예로 들어 설명하면, 센티널들은 7000번 마스터와 7001번 복제의 정보를 관리합니다. 하지만 7002번 복제은 관리하지 않습니다.   이유는 마스터 다운 시 새 마스터로 7001번 서버는 후보가 되지만, 7002번 서버는 해당되지 않기 때문입니다.   하지만 7001번 서버가 마스터가 되면 센티널은 7002번 서버 정보를 관리하기 시작합니다. 왜냐하면 7002번 서버가 새로운 후보이기 때문입니다.

여기에 사용한 이미지(그림)은 레디스게이트에서 개발한 Redis Visual Manager Octo의 화면을 캡처한 것입니다.

다른 센티널 정보 관리

센티널은 마스터를 모니터하는 다른 센티널 정보도 가져와서 관리합니다.   이것은 마스터 다운 시 다른 센티널과 정보를 교환해서 쿼럼을 기준으로 객관적 다운을 판정하기 위해서이고, 센티널 중 하나를 리더(leader)로 선출해서 장애조치를 수행하기 위해서입니다.   센티널 리더 선출에 대한 자세한 사항은 여기를 보세요.

SENTINEL.CONF 기록

센티널은 sentinel.conf 파일에 아래와 같이 입력한 명령 그대로 추가(write)합니다.

sentinel monitor master7000 192.168.56.102 7000 2

센티널 로그 기록

센티널 로그 파일에 아래과 같이 기록합니다. 여기서 plus 기호 +는 모니터 시작을 의미하고, minus 기호 -는 모니터 중지(remove)를 의미합니다.
다른 경우 +는 해당 상태에 진입, -는 해제를 의미합니다. 예를 들어, "+sdown"은 해당 노드가 다운되었다는 것을 나타내고, "-sdown"은 다시 살았다는 것을 나타냅니다.

+monitor master master7000 192.168.56.102 7000 quorum 2

센티널 클라이언트

마스터 서버는 자신을 모니터하는 센티널이 생길 때마다 센티널 클라이언트가 2개씩 추가됩니다.  복제도 마찬가지로 센티널 클라이언트가 2개씩 추가됩니다.   이것은 센티널이 Ping, Info, Pub/Sub 명령등으로 정보를 교환하며 모니터하기 때문입니다.  

redis sentinel monitor client info
그림 2-1   Redis Sentinel Monitor Clients Info

왼쪽 그림은 7000번 마스터 서버의 클라이언트 정보입니다. 클리이언트 이름이 sentinel로 시작하고 command 항목에 ping, info, publish, subscribe 같은 명령을 볼 수 있습니다.

여기에 사용한 이미지(그림)은 레디스게이트에서 개발한 Redis Visual Manager Octo의 화면을 캡처한 것입니다.

센티널 구성 변경 시 쿼럼 수정

아래 그럼과 같이 7111번 센티널 1대로 운영하다가 센티널 2대를 추가해서 총 3대로 운영하기로 했을 경우, 7111번 센티널에서 master7000의 쿼럼을 1에서 2로 수정해야 한다.

redis sentinel monitor configuration change
그림 3-1
redis sentinel monitor configuration change
redis sentinel monitor configuration change
그림 3-2    
redis sentinel monitor configuration change
redis sentinel monitor configuration change
그림 3-3    

센티널 추가와 쿼럼 수정 명령 예 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 >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.