8.3. 監控資源的事件通知

Pacemaker 叢集是個事件導向的系統,事件可能會是資源錯誤或是配置變更。ocf:pacemaker:ClusterMon 資源能監控叢集狀態並根據各項叢集事件啟動警示。這項資源會以正常間隔在背景中執行 crm_mon 並使用 crm_mon 的功能來傳送電子郵件訊息(SMTP)。它亦可透過 extra_options 參數來執行一項外部程式。
下列範例會配置一項名為 ClusterMon-SMTP,並且會傳送電子郵件通知的 ClusterMon 資源。Pacemaker 事件會使電子郵件透過 mail.example.com 郵件主機來從 pacemaker@nodeX.example.com 將郵件寄至 pacemaker@example.com。這項資源會被以複本形式建立,如此一來它便能在叢集中的各個節點上執行。
# pcs resource create ClusterMon-SMTP ClusterMon user=root update=30  \
extra_options="-T pacemaker@example.com -F pacemaker@nodeX.example.com  \
-P PACEMAKER -H mail.example.com" --clone 
下列範例會配置一項名為 ClusterMon-ExternalClusterMon 資源,它會執行 /root/bin/bin.priv/logger.sh 程式,這項程式會判斷該如何對應叢集通知做出反應。ClusterMon 會將叢集狀態輸出至一個 html 檔案中,在此範例中為 /var/www/html/cluster_mon.htmlpidfile 會偵測 ClusterMon 是否早已在執行;在此範例中,該檔案為 /var/run/crm_mon-external.pid。這項資源會以複本形式建立,如此一來它便能在叢集中的所有節點上執行。
下列指令會建立這項資源將會使用的 logger.sh 程式。
# touch /root/bin/bin.priv/logger.sh
# chmod 755 /root/bin/bin.priv/logger.sh
# cat /root/bin/bin.priv/logger.sh
#!/bin/sh
logger "crm_mon: CRM_MON triggered this message.";
exit;
以下指令會建立監控資源。
# pcs resource create ClusterMon-External ClusterMon user=root \
update=30 extra_options="-E /root/bin/bin.priv/logger.sh" \
htmlfile=/var/www/html/cluster_mon.html \
pidfile=/var/run/crm_mon-external.pid --clone