Hubotがインストールされているサーバーで以下のコマンドを実行し、「hubot-zabbix-notifier」をインストールします。
$ npm install --save hubot-zabbix-notifier
external-scripts.jsonに下記を追加します。
["hubot-redmine-notifier", "hubot-zabbix-notifier"]
障害発生時に実行するコマンドをZabbixをインストールしたサーバーに配置します。
$ sudo wget https://github.com/tenten0213/hubot-zabbix-notifier/raw/master/hubot_room_message -P /opt/ $ sudo chmod +x /opt/hubot_room_message
Zabbixの「Configuration-Actions」画面で「Create action」ボタンを押し、新しくアクションを追加します。「Action」タブでは「Name」に任意の名前を設定してください。
「Operations」タブでは「New」リンクを押し、実行する内容の設定を行います。「Operation type」では「Remote command」を選択し、「Target list」には監視対象のサンプルアプリケーションをデプロイしたサーバーを追加します。「Execute on」では「Zabbix server」を選択し、「Commands」に以下の内容を設定します。
echo "@all [{TRIGGER.SEVERITY}] {TRIGGER.NAME}:{ITEM.VALUE1}" | /opt/hubot_room_message -r 1 -o example.com
@allは通知先です。今回は全員を対象にしました。「-r」オプションで通知先のルームを指定します。「-o」オプションではHubotがインストールされているサーバーを指定します。ポートはデフォルトで「8080」に設定されています。変更したい場合は「-p」オプションで指定してください。
サンプルアプリケーションをデプロイしたサーバーのWebサーバーを止めてみると、以下のように障害が発生していることが分かります。
チャットアプリを確認すると、以下のようにHTTPサーバーがダウンしていることが通知されます。
数回にわたってHubotの基本的な使い方、開発を想定し、さまざまなツールと連携した使い方を紹介してきました。
開発に利用しているツールの通知や、メンバーとのコミュニケーションをチャットに集約することによってチームの状況やコンテキストを簡単に共有できるようになります。Hubotは拡張性が高いので、足りない機能や欲しい機能があれば公開されているスクリプトから追加したり、自分で作成したりすることもできます。
例えば、下記のように実にさまざまなHubotの活用方法があります。
チャットベースのコミュニケーションは、メールベースのコミュニケーションと比べ手軽で便利ですが、対面のコミュニケーションも大事だということを忘れないようにし、用途に合わせて活用してください。
今回紹介した内容はほんの一例です。皆さんのチームに合わせたHubotを育ててみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.