Pacemakerでフェールオーバー時にAmazon SNSに通知するResource Agent書いてみた

Pacemaker/Corosyncでクラスタ構築していたのですが、フェイルオーバーしてしまった時には通知が欲しいものです。

Pacemakerをインストールすると、Failover時にメール通知するMailTo というResource Agentがデフォルトでインストールされます。

resource-agents/MailTo at master · ClusterLabs/resource-agents · GitHub

ただ、こういった通知系にはAmazon SNSがメンテナンス性がとても良く便利なので、フェールオーバー時にSNS通知してくれるリソースエージェントを作成してみました。

github.com

通知の件名は上に書いたMailToのリソースエージェントの中身に合わせてあります。

ただのシェルスクリプトなので、件名の文言変えたければ、このあたりをいじってください。

Subject="`get_subject_line $subject` Takeover in progress at `date` on $us"
Subject="`get_subject_line $subject` Migrating resource away at `date` from $us"

Amazon SNSはメール通知はもちろん、SlackなんかもEMail Integration使えば簡単に連携できます。

以下はsrv-01からsrv-02へのフェールオーバー時のSlack通知。

f:id:yomon8:20161208223816p:plain