連載
» 2014年12月19日 18時00分 UPDATE

チャットボットでチーム開発効率化入門(4):HubotとZabbixを連携すればワンオペ監視でも寂しくない (1/2)

GitHub社が開発しているbotフレームワークHubotを使ってチャットアプリ上でチーム開発をいかに効率化していくかを解説していきます。今回は、Zabbixをインストールして監視設定を行い、Hubotと連携してサーバーからの障害検知をチャットに通知する方法などを紹介します。

[天沼健仁,TIS株式会社]

チケット、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
diff

 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を設定しました。

hubot4_1.jpg

 「Templates」タブでは、「Link new templates」から「Template App HTTP Service」を追加します。

hubot4_2.jpg
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。