totaltodayyesterday

フリーなCGIと自宅サーバー情報サイト

サーバー監視スクリプト(HttpdChk)

*プロバイダを変更したため管理人現在これを使用しておりません
*現在はデータホテルパトロールを使用しております

プロバイダから貸してもらえるWEBスペースはperl、telnet、ssh、cron等が使えるので、以前から自宅サーバーを監視する為にhttp接続を行うperlスクリプトを書いてずっと監視していたのですが、結構適当に作ったスクリプトだったのでちゃんと作り直りなおしました。

またwgetや余計なライブラリ、モジュール等をできるだけ使わないようにしております。

■主な機能
» Socketを使用したhttp接続のチェック(SSL非対応)
» http接続時にGETしたソースの1行目の文字列の判定
» スクリプトの二重起動を防ぐ排他処理
» 監視対象ホストを複数設定可能
» エラー通知の宛先を複数設定可能

■ダウンロード
» HttpdChk.zip

■添付されているもの
1.スクリプト本体
» HttpdChk.pl
2.設定ファイル
» HttpdChk.conf
3.監視結果記録用ファイル
» HttpdChk.res
4.マニュアル
» README.txt

■導入方法
【1】HttpdChk.plの設定

01:#!/usr/bin/perl -w ・ ・ ・ 26:my $ScriptDir = '/PathTo/HttpdChk'; 28:my $SendMail = '/usr/lib/sendmail'; 30:my $MailFrom = 'from@example.jp'; 32:my $Subject = 'httpd alert'; 34:my $MaxCount = 3; 36:my $LockTimeout = 20; 38:my $ConnTimeout = 10;

01行目:perlのパス
26行目:作業ディレクトリ(HttdpChkディレクトリまでのフルパス)
28行目:sendmailまでのパス
30行目:エラー通知の送信者メールアドレス
32行目:エラー通知の件名
34行目:何回エラーが出たらエラー通知を送信するか
36行目:前回の処理が終わっていない場合の待機時間(秒)
38行目:http接続が成功するまでの待機時間(秒)

【2】HttpdChk.confの設定
▼以下のフォーマットに基づいて記述します

[Host][:Port][/Path] [Space|Tab] [SendEmail1,2,3...] [Space|Tab] [SuccessfulMessage]


» [Host]
監視対象ホスト

» [:Port]
監視対象ホストのポート(指定が無い場合は80で接続)

» [/Path]
監視対象ホストのファイル、ディレクトリ

» [Space|Tab]
設定の区切り(半角スペース若しくはタブ)

» [SendEmail1,2,3…]
エラー通知の送信先メールアドレス(複数指定する場合は「,」で区切る)

» [Space|Tab]
設定の区切り(半角スペース若しくはタブ)

» [SuccessfulMessage]
*httpd接続に成功した場合にGETしたソースの1行目の文字列
*主に監視対象ホストのhttp接続以外のチェックに使用

例)
監視対象ホストにデータベース接続が正しくできるかチェックするスクリプト(dbcheck.cgi)を設置

www.example.jp/dbcheck.cgi to@example.jp Database connection successful


dbcheck.cgiは接続に成功した場合は成功時のメッセージを出力
print "Content-Type:text/plain¥n¥n"; print "Database connection successful¥n";


dbcheck.cgiは接続に失敗した場合はエラーメッセージを出力
print "Content-Type:text/plain¥n¥n"; print "エラーメッセージ¥n";

*詳しくはHttpdChk.conf記載のサンプルをご覧ください

【3】サーバーへ設置

HttpdChk.pl[700]
HttpdChk.conf[644]
HttpdChk.res[644]

*[ ]はパーミッション

最後にHttpdChk.plをcronに追加して完了です

コメントを残す

logo
RSS はてなブックマーク Twitter Facebook Google+
now loading...