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

crm_mon -E не запускает внешний агент на Debian Jessie

Настроить

В настоящее время у меня есть рабочий двухузловой кластер высокой доступности с использованием Pacemaker + Corosync. Мои узлы работают на Debian 8 (Джесси). Теперь я мог бы получать уведомления об изменениях в кластере (остановка / запуск ресурсов, повышение / понижение роли, перемещение ...).

Поскольку отчеты по электронной почте относятся к 2008 году, я бы хотел использовать Slack. Для этого я создал сценарий, который использует curl отправить сообщение на канал Slack моей команды, используя Slack вебхуки. Мой сценарий использует переменные среды, которые описаны здесь: Кардиостимулятор - 7.3. Настройка уведомлений через внешний агент.

Скрипт отлично работает при выполнении вручную в оболочке и может публиковать сообщения на указанном канале. Он также регистрируется в /var/log/ocf-notifier.log.

Проблема

На основе этот ответ, Я создал новый ресурс в кластере с помощью Pacemaker's ocf:pacemaker:ClusterMon агент ресурсов, который вызывает мой собственный сценарий (/usr/local/bin/ocf-notifier).

Однако я заметил, что мой скрипт просто не вызывается вообще, когда в узле происходят изменения (пытался остановить ресурс, а также полностью закрыть узел).

Поэтому попробовал запустить crm_mon вручную, как показано ниже:

$ crm_mon -Arf --interval=2 -E /usr/local/bin/ocf-notifier -e '@jordan'

И посмотрите, может ли это вызвать срабатывание, поигравшись с кластером с другой оболочкой. Как оказывается, crm_mon смог увидеть изменения, происходящие в кластере (узел отключается, ресурс останавливается / запускается ...), но мой собственный сценарий ни разу не моргнул. Мой пользовательский файл журнала остается пустым, и в Slack ничего не отображается, поскольку я считаю, что скрипт просто не вызывается.

TL; DR

crm_mon не вызывает внешнего агента для событий кластера, как это должно быть с -E вариант. Что я делаю не так?