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