HubotとZabbixを連携すればワンオペ監視でも寂しくない:チャットボットでチーム開発効率化入門(4)(2/2 ページ)
GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。今回は、Zabbixをインストールして監視設定を行い、Hubotと連携してサーバーからの障害検知をチャットに通知する方法などを紹介します。
ZabbixとHubotの連携
「hubot-zabbix-notifier」のインストール
Hubotがインストールされているサーバーで以下のコマンドを実行し、「hubot-zabbix-notifier」をインストールします。
$ npm install --save hubot-zabbix-notifier
external-scripts.jsonに下記を追加します。
["hubot-redmine-notifier", "hubot-zabbix-notifier"]
Zabbix側での通知設定
障害発生時に実行するコマンドを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の活用方法があります。
- Hubotを導入したらレビューの敷居が下がった話 - yo_waka's blog
- Hubotの貴重な出社シーン
- hubot-atというhubot pluginをつくった - さよならインターネット
- ChatOpsでOSのセキュリティアップデートを自動化出来るようにした - Glide Note - グライドノート
- Slack上で現在雨が降ってるか確認できるHubotスクリプトを作ってみた
- 我が家を支えるChatOps - 恥知らずのウェブエンジニア
チャットベースのコミュニケーションは、メールベースのコミュニケーションと比べ手軽で便利ですが、対面のコミュニケーションも大事だということを忘れないようにし、用途に合わせて活用してください。
今回紹介した内容はほんの一例です。皆さんのチームに合わせたHubotを育ててみてはいかがでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Jenkins+HipChat+Hubotをチーム開発に導入してお手軽CI
現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。最終回は、Jenkinsと連携させやすいチャットツールHipChatやBotフレームワークHubotを組み合わせてCIをより効率的に回す方法について解説します。 - 実録! チーム開発が捗り過ぎるSlack+GitHub+Trelloの使い方
スタートアップではいかにお金を使わずにプロダクトを開発するかは成功につながる大きなポイントとなる。コストを掛けずにプロダクトを作っていく上で、導入すべきツールをどのように使うかを数回に分けて紹介。今回は、開発プロジェクト向けチャットツール「Slack」の特徴を解説しプロジェクト管理ツール「Trello」や「GitHub」と組み合わせた活用事例を紹介する。 - GitHub(ギットハブ)の使い方:連携サービス
ソフトウェア開発プロジェクトの共有Webサービス「GitHub(ギットハブ)」を「日本語で」分かりやすく説明するシリーズ、今回は「asana」や「Travis」などの連携サービスを紹介します。 - 安藤幸央のランダウン[60]:GitHubをもっとソーシャルに使いこなすための7つ道具
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。Gist、GitHub Pages、Binpress、fluxflex、 Janky、Hubot、Travis CI、GitHub Watchersなどが注目だ