Hubotでチャットにアラートを通知する

注)本ページで紹介しているhubot-mackerel-notifierは現在メンテナンスしておらず、非推奨です。

Hubotスクリプトのhubot-mackerel-notifierを利用すると、Mackerelからのアラート通知のWebhookを受けとり、IRCやSlackなどのチャットツールに次のような通知を流すことができます。(SlackにはHubot経由ではなく直接送ることもできます。詳しくはSlackにアラートを通知するを参照してください。)

17:06 hubot: [Mackerel] CRITICAL: IOwait at app01 (working) Service: app https://mackerel.io/orgs/.../alerts/...

またホスト名に反応してホスト詳細ページへのリンクを表示させることができます。

Webhookのリクエスト先URLのパスは/hubot/mackerelを設定してください。例えば、hubotをhttp://some-hubot.herokuapp.com/にセットアップしている場合、WebhookのURLはhttp://some-hubot.herokuapp.com/hubot/mackerelとします。 WebhookのURL設定の詳細については、監視・通知を設定するを参照してください。

Hubot本体の詳細やインストール方法については、公式ドキュメント解説記事などを参照してください。

Hubotにhubot-mackerel-notifierを追加する

  • hubot-mackerel-notifierをインストールします。
npm install hubot-mackerel-notifier --save
  • hubot-mackerel-notifierexternal-scripts.jsonに次のように追加します。
["hubot-mackerel-notifier"]
  • リポジトリにコミットします。
git commit -a -m 'add hubot-mackerel-notifier'
git push
  • 環境変数を設定します。例(Herokuの場合):
heroku config:add HUBOT_MACKEREL_API_KEY="..."
heroku config:add HUBOT_MACKEREL_HOST_REGEXP="\\b[a-zA-Z0-9._-]+[.]local-domain\\b"
heroku config:add HUBOT_MACKEREL_ORG_NAME="example"
heroku config:add HUBOT_MACKEREL_NOTIFIER_ROOM="#general"
  • Hubotにデプロイします。例(Herokuの場合):
git push heroku master
  • Enjoy!!