ロックオン開発チームブログ -Lockon Knowledge Repositories-

PEARを用いたサービス監視

あるネットワーク内のサーバーを、別のネットワークからサービス監視する場合の方法のひとつとして、
PEARのHTTP_Requestを用いた方法があります。


▽インストール


# pear install HTTP_Request

▽見本


<?php

require_once("HTTP/Request.php");

define("ADMIN_EMAIL", "管理者メールアドレス");

define("WATCH_URL", "http://www.lockon.co.jp");

$objReq =& new HTTP_Request(); //オブジェクト生成

$objReq->setUrl(WATCH_URL); //監視対象のURL

$objReq->sendRequest(); //リクエスト送信

$code = $objReq->getResponseCode(); //レスポンスコード取得

//接続不可

if(!$code) {

$err_subject = WATCH_URL . "からの応答を確認できません。";

} else {

//サーバーエラー

if(ereg("^5", $code)) {

$err_subject = WATCH_URL . "のサーバーエラーが発生しました。";

$err_body = "Code:" . $code;

}

//ユーザーエラー

if(ereg("^4", $code)) {

$err_subject = WATCH_URL . "が見つからない、または不正なリクエストです。";

$err_body = "Code:" . $code;

}

}

if($err_subject) {

mb_send_mail(ADMIN_EMAIL, $err_subject, $err_body);
}

?>



また、phpにopensslが組み込まれていない場合、httpsサイトからのレスポンスが帰ってきませんので、phpコンパイル時に、以下のコマンドでサポートさせます。


# ./configure --with-openssl=(openssl_dir)
# php -m | grep openssl
openssl

HTTP_Requestを使用することにより、ユーザーがブラウザでリクエストを送信する操作を、PHPスクリプト上からでも可能にします。

サービス監視といえば代表的なnagiosなどが挙げられますが,小規模なシステムの場合であれば、上記のような監視スクリプトを用いて、あとはcronなどで定期的に実行させるだけでも、十分事足りるかと思います。

Trackback

このエントリーのトラックバックURL:
http://www.lockon.co.jp/cgi-bin/mt/mt-tb.cgi/22

コメント



Copyright(c) LOCKON CO.,LTD. All Rights Reserved.