web-dev-qa-db-ja.com

URLトリガー外部エージェントによるペースメーカーの監視

HAをセットアップしましたが、現在構成されているリソースは、アクティブ/パッシブ構成のハートビートのみです。どちらもDebian7、64ビットをクラウドで実行しています。

ここで、リソースが変更されたときにPacemakerからの情報を使用してURLをトリガーしたいと思います。 URLは、電子メール/ SMSアラートなどを送信するサーバーを指しています。トリガーされるURLを http://example.com/pacemaker.php?CRM_notify_node=node1&CRM_notify_rsc=blah

Pacemakerですべてのものを構成するのは面倒なので。したがって、すべての処理または電子メール/アラートの送信はWebページに配置されます。

したがって、URLを呼び出すようにPacemakerを構成する方法。

ありがとう

1
vrOom

External-Agentを介した通知 クラスターの変更を処理するための外部スクリプトを追加するように構成できます。

たとえば、外部エージェントを実行するように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

これがお役に立てば幸いです。

2
Federico Sierra