Назад | Перейти на главную страницу

Мониторинг кардиостимулятора с помощью внешнего агента триггера url

У меня есть настройка HA, и теперь единственный настроенный ресурс - Heartbeat с активной / пассивной конфигурацией. Оба работают под управлением Debian 7, 64-битный в облаке.

Теперь я хочу активировать URL-адрес с информацией от кардиостимулятора при изменении ресурса. URL-адрес указывает на какой-то сервер, который будет отправлять электронную почту / SMS-оповещение и т. Д. http://example.com/pacemaker.php?CRM_notify_node=node1&CRM_notify_rsc=blah

Так как настройка всего в Pacemaker немного утомительна. Таким образом, вся обработка или отправка электронных писем / предупреждений помещается на веб-страницу.

Итак, как настроить Pacemaker для вызова URL.

Спасибо

Вы можете настроить Уведомления через внешний агент добавление внешнего скрипта для обработки изменений кластера.

Например, настройте ClusterMon для выполнения внешнего агента:

primitive ClusterMon ocf:pacemaker:ClusterMon \
    params user="root" update="30" extra_options="-E /path/to/pcmk_curl_helper.sh" \
    op monitor on-fail="restart" interval="10"

clone ClusterMon-clone ClusterMon \
    meta target-role="Started"

Сценарий pcmk_curl_helper.sh:

#!/bin/bash

# Generates alerts for any failing monitor operation or
# for any operations (even successful) that are not a monitor
# env vars: ${CRM_notify_recipient} ${CRM_notify_rsc} ${CRM_notify_rsc} ${CRM_notify_desc} ${CRM_notify_status} ${CRM_notify_rc} ${CRM_notify_target_rc}

if [[ ${CRM_notify_rc} != 0 && ${CRM_notify_task} == "monitor" ]] || [[ ${CRM_notify_task} != "monitor" ]] ; then

    /usr/bin/curl -sS http://example.com/pacemaker.php?CRM_notify_node=${CRM_notify_node}&CRM_notify_rsc=${CRM_notify_rsc} > /dev/null

fi
exit 0

В качестве альтернативы вы можете начать crm_mon в качестве фонового демона и использовать тот же сценарий для обработки изменений кластера.

Например.

crm_mon -d -i 30 -p /tmp/ClusterMon_ResourceMonitor.pid -E /path/to/pcmk_curl_helper.sh

Надеюсь, это поможет.