2015-08-26 2 views
0

Когда Redis Sentinel уведомляет о событиях, он не предоставляет имя мастера Redis.Redis Sentinel: имя владельца в уведомлениях

Выписка из конфигурации:

# sentinel notification-script <master-name> <script-path> 
# 
# Call the specified notification script for any sentinel event that is 
# generated in the WARNING level (for instance -sdown, -odown, and so forth). 
# This script should notify the system administrator via email, SMS, or any 
# other messaging system, that there is something wrong with the monitored 
# Redis systems. 
# 
# The script is called with just two arguments: the first is the event type 
# and the second the event description. 

Так что только тип события (например, +odown) и описание события, которое в случае +odown просто master. Каким-то образом я чувствую, что в этом нет важной информации. Мы не только хотим уведомить пользователей о том, что что-то изменилось, а , где было изменено.

Вы не можете зарегистрировать скрипт с дополнительными параметрами, например.

sentinel notification-script <master-name> "<script-path> <master-name>" 

Redis будет использовать это значение в целом и проверить, существует ли он и является его исполняемым.

Мы решили это, создав небольшие сценарии оболочки, по одному для каждого экземпляра мастера.

$ cat /some/path/notify-master42.sh 
#!/bin/sh 
/some/path/notify.sh master42 $1 $2 

Этот скрипт-обертка затем прикрепляется к хозяину:

sentinel notification-script <master-name> notification-script /some/path/notify-<master-name>.sh 

Это немного неудобно, но не так уж плохо, до тех пор, пока у вас есть определенное количество мастеров и не создавать их на летать по сети.

Вы можете зарегистрировать новых мастеров, просто взаимодействуя с дозорным над сетью. (redis-cli -h <host> -p <port> sentinel whatever...) Но создание этих сценариев оболочки более сложно. Не то чтобы это невозможно, но это похоже на прыжок через обручи ни с чем.

Есть ли способ уведомления, включая мастер имена:

  • без заплат Redis
  • без оболочки скриптов

?

ответ

1

Да, вы делаете это, используя правильное событие.

«Таким образом, существует только тип события (например, + odown) и описание события, которое в случае + odown просто является мастером. Как-то я чувствую, что в этом отсутствует важная информация. Мы хотим не только уведомлять пользователей о том, что что-то изменилось, но там, где оно изменилось ».

В случае + odown есть is никакой другой информации, которая будет у вас. Все + odown означает, что главный сервер опустился. В этот момент ничего больше не произошло. Если вы хотите обновить что-то на основе отказоустойчивость (что происходит после того, как + odown), вы должны смотреть на соответствующее событие: переключатель-мастер. switch-master Событие - это то, что происходит, когда завершается восстановление после сбоя.

берется непосредственно из documentation:

Выключатель-мастер<master name> <oldip> <oldport> <newip> <newport> - Мастер новый IP-адрес и заданный один после изменения конфигурации. Это сообщение большинство внешних пользователей интересует.

Так что ваш взгляд сценарий и действовать на включение главного события, чтобы получить информацию о том, что изменилось. Нет больше горящих обручей, чтобы проскочить.

+0

Я не только хочу уведомлять, когда происходит переход на другой ресурс. Я также уведомляю вас о +/- odwon/sdown. – udondan

Смежные вопросы