Кардиостимулятор - кластер высокой доступности - как получать уведомления

У меня есть кластер высокой доступности, который настроен с ресурсом DRBD.

Есть ли способ получить уведомление, например, по электронной почте, когда ресурс вышел из строя?

Я использую интерфейс кардиостимулятора высокой доступности Web UI (GUI), но я не нашел способа сделать это.

1 ответ

Есть несколько способов добиться этого.

Лучший способ, вероятно, настроить уведомления в Pacemaker. Pacemaker имеет встроенную поддержку SNMP, SMTP и пользовательских агентов уведомлений. Документация Pacemaker - хорошее место для начала исследования: http://clusterlabs.org/doc/en-US/Pacemaker/1.1-plugin/html/Pacemaker_Explained/ch07.html

Однако, например, если вы хотите написать свой собственный агент уведомлений, вы можете создать сценарий, доступный для кластера, например /usr/local/bin/notification-script-example.shс чем-то вроде этого:

#!/bin/bash
### list of variables passed from Pacemaker to all alert agents:
# CRM_notify_recipient the configure recipient
# CRM_notify_node name of affected node
# CRM_notify_desc details about event
# CRM_notify_task requested fencing/resource opertion (fencing and resource notify only)
# CRM_notify_rc return code from operation (fencing and resource notify only)
# CRM_notify_rsc name of the affected resource (resource notify only)
# CRM_notify_target_rc expected return code of an operation (resource notify only)
# CRM_notify_status numerical code used by Pacemaker to represent operation result (resource notify only)

### some variables won't get values; set NA if not populated:
CRM_notify_recipient="${CRM_notify_recipient:-NA}"
CRM_notify_node="${CRM_notify_node:-NA}"
CRM_notify_desc="${CRM_notify_desc:-NA}"
CRM_notify_task="${CRM_notify_task:-NA}"
CRM_notify_rc="${CRM_notify_rc:-NA}"
CRM_notify_rsc="${CRM_notify_rsc:-NA}"
CRM_notify_target_rc="${CRM_notify_target_rc:-NA}"
CRM_notify_status="${CRM_notify_status:-NA}"

### do something with these values
logger "PCMK-NOTIFY: recipient: $CRM_notify_recipient"
logger "PCMK-NOTIFY: affected node: $CRM_notify_node"
logger "PCMK-NOTIFY: event details: $CRM_notify_desc"
logger "PCMK-NOTIFY: requested op: $CRM_notify_task"
logger "PCMK-NOTIFY: op ret code: $CRM_notify_rc"
logger "PCMK-NOTIFY: affected res: $CRM_notify_rsc"
logger "PCMK-NOTIFY: expected rc: $CRM_notify_target_rc"
logger "PCMK-NOTIFY: pcmk result: $CRM_notify_status"

### exit
exit 0

Затем вы должны настроить агент уведомлений внутри кардиостимулятора как примитив с агентом ресурсов ClusterMon, а затем клонировать его, чтобы он работал на всех узлах (в crmsh синтаксис):

primitive cluster-notifications ocf:pacemaker:ClusterMon \
    params user=root update=30 extra_options="--watch-fencing \
    -E /usr/local/bin/notification-agent-example.sh"
clone cl-cluster-notifications cluster-notifications

Для вашего сценария это звучит так, как будто вы хотите отправить электронное письмо, поэтому вам просто нужно изменить ### do something with these values раздел сценария, чтобы отправить все по электронной почте, а не просто войти.

Другим способом получения уведомлений о событиях в Pacemaker, может быть создание MailTo примитив в вашем кластере, используя ocf:heartbeat:MailTo Ресурс агента. Он будет отправлять электронную почту каждый раз, когда запускается или останавливается в кластере, поэтому обычно вы хотите, чтобы он запускался после всего остального в кластере; это гарантирует, что он запускается последним и останавливается первым, если произойдет миграция / отработка отказа.

Если вас интересуют только уведомления DRBD, вы можете использовать некоторые сценарии обработчиков, которые поставляются вместе с DRBD, включив их в handler{} раздел /etc/drbd.d/global_common.confили вы можете добавить следующее в конфигурации ресурсов, которые вас интересуют:

handlers {
    split-brain "/usr/lib/drbd/notify-split-brain.sh admin@acme.com";
    out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh admin@acme.com";
}

Очевидно, что существует много способов снять шкуру с пресловутой кошкой, но я надеюсь, что эта информация будет полезной!

Другие вопросы по тегам