使用 URL 触发外部代理监控起搏器

使用 URL 触发外部代理监控起搏器

我有一个 HA 设置,现在唯一配置的资源是带有主动/被动配置的 Heartbeat。两者都在云中运行 Debian 7,64 位。

现在我想在资源发生变化时触发一个 URL,其中包含来自 Pacemaker 的信息。该 URL 指向某个将发送电子邮件/短信警报等的服务器。让触发的 URL 为http://example.com/pacemaker.php?CRM_notify_node=node1&CRM_notify_rsc=blah

由于在 Pacemaker 中配置所有内容有点繁琐。因此,所有处理或发送电子邮件/警报的操作都放在网页中。

那么,如何配置Pacemaker来调用URL。

谢谢

答案1

您可以配置通过外部代理发送通知添加外部脚本来处理集群变化。

例如配置 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

我希望这会有所帮助。

相关内容