HubotとZabbixを連携すればワンオペ監視でも寂しくない:チャットボットでチーム開発効率化入門(4)(1/2 ページ)
GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。今回は、Zabbixをインストールして監視設定を行い、Hubotと連携してサーバーからの障害検知をチャットに通知する方法などを紹介します。
チケット、CI、そして監視へ
連載第1回の「GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方」では、GitHub社が開発しているBotフレームワーク「Hubot」の概要、Hubotとチャットとの連携方法、Hubotの基本的な使い方を紹介しました。
前々回の「Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選」、前回の「HubotとJenkins、GitBucketを連携してCIをチャット上で効率化するには」と同じく、今回も、サンプルアプリケーションに対して修正を行うシーンを例に、Hubotと各ツールがどう連携するかを解説します。
今回は、デプロイしたサンプルアプリケーションおよびサーバーをOSSの統合監視ツールである「Zabbix」で監視し、Hubotと連携して、チャットに情報を集約させます。
利用したソフトウェアとバージョンは以下の通りです。
全てUbuntu Server 14.04上に構築しました。環境構築手順は「連載第1回記事」にHubotとKandan、今回の記事にそれ以外の手順を載せていますので、ご参照ください。
Zabbixの環境構築
以下ではZabbixについて、Ubuntu Server 14.04上での環境構築手順をご紹介します。簡易的な手順となっていますので、各自必要に応じてnginxなどを入れてください。
以下のコマンドでZabbixをインストールします。
$ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install php5-mysql zabbix-server-mysql zabbix-frontend-php zabbix-agent
[mysqld]の設定に以下を追加し、文字コードを設定します。
character-set-server=utf8 skip-character-set-client-handshake
MySQLを再起動後rootでログインし、Zabbix用のデータベースとユーザーを作成します。パスワードは各自設定してください。
$ sudo service mysql restart $ mysql -uroot -p mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'ZABBIX_PASSWORD'; mysql> quit $ sudo zcat /usr/share/zabbix-server-mysql/schema.sql.gz | mysql -uzabbix -p zabbix $ sudo zcat /usr/share/zabbix-server-mysql/images.sql.gz | mysql -uzabbix -p zabbix $ sudo zcat /usr/share/zabbix-server-mysql/data.sql.gz | mysql -uzabbix -p zabbix
「zabbix_server.conf」に先ほど設定したDBのパスワードを追記します。
### Option: DBPassword # Database password. Ignored for SQLite. # Comment this line if no password is used. # # Mandatory: no # Default: # DBPassword= + DBPassword=ZABBIX_PASSWORD
Zabbixのapache.confの設定例をコピーします。
$ sudo cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix.conf
apache.confの最終行に以下を追記します。
php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value date.timezone Asia/Tokyo
以下のコマンドで設定を適用します。
$ sudo a2enconf zabbix
Zabbixのzabbix.conf.phpの設定例をコピーします。
$ sudo cp /usr/share/doc/zabbix-frontend-php/examples/zabbix.conf.php.example /etc/zabbix/zabbix.conf.php
zabbix.conf.phpの以下の箇所を、設定したパスワードに変更してください。
$DB["PASSWORD"] = 'zabbix_password';
最後に「etc/default/zabbix-server」ファイルの「START=no」となっている箇所を「START=yes」に修正します。
Apacheの再起動とZabbixを起動します。
$ sudo service apache2 restart $ sudo service zabbix-server start
「/zabbix」にアクセスするとログイン画面が出ますので、Usernameを「Admin」、Passwordを「zabbix」でサインインします。
Zabbixの監視設定
ZabbixのConfiguration-Hostsの画面で「Create host」ボタンを押し、新規に監視対象のホストを追加します。
「Host name」には任意の名前を、「Groups」の「In groups」にはLinux serversを選択します。「Agent interfaces」には監視対象のIPアドレスかDNSを設定します。今回は「spark-sample」をデプロイしたサーバーのIPを設定しました。
「Templates」タブでは、「Link new templates」から「Template App HTTP Service」を追加します。
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などが注目だ