TOPサーバ構築・運用> サーバのリソース監視
格安!自社サーバ
格安!ベンチャー流サーバ構築法

第3回:運用管理を各種ツールで自動化

著者:ウノウ  佐藤 大樹   2007/3/14
前のページ  1  2  3
サーバのリソース監視

   サーバのリソースを監視してグラフ化しておくと、どの時間帯にどの程度の負荷があったのかやボトルネックになっている箇所を発見しやすくなります。

   サーバのリソース監視には「cacti」というツールを使用します。cactiはphpで記述された「RRDTools」を利用してリソースを可視化するオープンソースのツールです。インストールされていない場合には以下のコマンドを実行してインストールを行います。
%yum install cacti ← 注意:手元のfedora Core 5ではphp5を要求します

   cactiをインストールしたら、cacti用のMySQLデータベースを作成します。

% mysql -u root mysql
mysql> create database cacti;
mysql> grant all on cacti.* to cactiuser@localhost identified by 'password';
mysql> flush privileges;
mysql> use cacti;
mysql> source /cactiのインストールディレクトリ/cacti.sql

   続いて、cactiの設定ファイルを先ほど作成したデータベースに書き換えます。

% sudo vi /cactiのインストールディレクトリ/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "設定したパスワード";
$database_port = "3306";

   以下のコマンドを実行して、crontabのジョブにポーリングスクリプトを追加します。

sudo crontab -e
*/5 * * * * php /インストールディレクトリ/poller.php > /dev/null 2>&

   Webブラウザからアクセスできるように、以下の行をhttpサーバ(Apache)の設定ファイルに追加します。

$vi /etc/httpd/httpd.conf
alias /cacti /インストールディレクトリ

   設定したディレクトリに対してWebブラウザからアクセスすることで、設定を行えるようになります。


アプリケーションのログ監視

   アプリケーションのログは「swatch」で監視を行います。監視対象は/var/logディレクトリ配下にある、システムログ、ApacheやMySQLなどのアプリケーションのエラーログ、自社で開発したサービスのエラーログなど様々です。

   swatchはそれらのログに変化があったときに、メールで通知するといったアクションを指定することができます。swatchがインストールされていない場合は以下のコマンドで組み込み作業を行います。

yum install swatch

   swatchでログ監視をはじめるには、以下のように作業を行います。

% cat /etc/swatch/error.conf
ignore /File does not exist:.*/
watchfor /.*/
       mail=error@example.com,subject="Error on error.log"
       throttle 00:00:10

   「ignore」は、そのメッセージがあらわれた場合、下に定義されたアクションを行わないことを意味します。デバッグ出力をはじめとした通知しなくても問題のない情報を記述しておきます。また「watchfor」は「/」でくくられたパターンがログ中に出現した際にどのような動作をするかを定義します。

   上の設定では「File does not exist」という文字列以外を監視し、error@example.comにメールで通知を行います。その後、同じメッセージについては10秒間無視するよう設定されています。

   watchforで定義できる主なアクションには以下のようなものがあります。

アクション 内容
mail メールを送信する
exec コマンドを実行する
echo 文字列を表示する
throttle 一度マッチしたものは指定時間出力しない

表5:watchforで定義できる主なアクション

   詳しくはman swatchを参照してください。

   設定が完了したら、swatchを起動します。

% swatch -c ~|/etc/swatch/error.conf| -t /etc/httpd/log/error_log &


最後に

   なお、監視サーバは監視対象と同一ネットワーク上に設置することが基本となりますが、ネットワークが落ちた場合にはメールなどの通知が行えなくなってしまいます。そこで「監視サーバを監視するサーバ」を別ネットワーク上に設置しておくとよいでしょう。

   オープンソースアプリケーションを利用した、監視について駆け足で説明しました。これらの手法を組み合わせることで、サーバ運用にかかる手間が軽減され、最終的にコスト削減につながることと思います。

前のページ  1  2  3


ウノウ株式会社  佐藤 大樹
著者プロフィール
ウノウ株式会社  佐藤 大樹
1981年生まれ。中学2年のときにN88Basicを習得して以来、大きく道を踏み外す。大学卒業後、2003年より株式会社ドワンゴ入社。オンラインゲームや基幹システムのコーディング、携帯電話向け大規模コンテンツ配信システムの主任設計などを担当。2005年12月、同社を退社。フリーランスを経て2006年4月よりウノウに参画。


INDEX
第3回:運用管理を各種ツールで自動化
  各種ツールで運用・監視の手間を削減
  サーバの生存監視
サーバのリソース監視