我目前正在使用Pacemaker + Corosync工作的2节点HA集群。 我的节点运行在Debian 8(Jessie)上。 现在,当集群发生更改(资源停止/启动,升级/降级,移动…)时,我将能够得到通知。
由于电子邮件报告是如此,2008年,我想使用Slack。 为此,我创build了一个脚本,使用curl将消息发布到我的团队的Slack频道,使用Slack的webhook 。 我的脚本使用了这里logging的环境variables: Pacemaker – 7.3。 通过外部代理configuration通知 。
该脚本在shell中手动执行时可以正常工作,并且能够在指定的通道上发布。 它也logging到/var/log/ocf-notifier.log 。
基于这个答案 ,我使用Pacemaker的ocf:pacemaker:ClusterMon创build了一个新的资源ocf:pacemaker:ClusterMon资源代理,它调用我的自定义脚本( /usr/local/bin/ocf-notifier )。
但是我注意到,当节点发生更改时(尝试停止资源以及完全closures节点),根本不调用我的脚本。
所以我试图用手工启动crm_mon ,如下所示:
$ crm_mon -Arf --interval=2 -E /usr/local/bin/ocf-notifier -e '@jordan'
看看是否可以通过与另一个shell一起玩群集来触发这个事情。 事实certificate, crm_mon能够看到集群中发生的变化(节点脱机,资源被停止/启动…),但我的自定义脚本从来没有眨眼之间。 我的自定义日志文件保持空白,Slack中没有任何内容,因为我相信这个脚本根本就没有被调用。
crm_mon不会在集群事件上调用外部代理,因为它应该与-E选项一起使用。 我究竟做错了什么?