2015年1月5日月曜日

FileMaker+PHPでサーバの死活監視をしてみる

安定運用を支える死活監視


安定運用は、サーバやシステムが止まってしまう前に予防策(メンテナンス)を講じ、止まらないように努めることですが、いくら万全を期しても止まってしまうことはあります。

そこで、予防策と一緒に必要なのが、いかに早く障害や停止に気づくかということではないでしょうか。

それを知るには死活監視が必要です。特に、停止時にそれを教えてくれ、なおかつデータベースに記録していて後にいろいろなことを調べることも可能でしょう。

FileMaker Serverを使われている方には、FileMakerのWeb公開機能の一つPHPを使って、死活監視を行うこともできます。

といっても、特定のポートが通信できるかどうかを確かめるだけの非常に簡易的なものです。

方法

・FileMakerデータベースを用意
 監視状況を記録できるテーブルとフィールドを用意

・PHPのコードを用意

PHPのコード

$ip = {監視対象マシンのIPアドレス}
$port = {監視するポート番号} //例えばFileMaker Serverの場合は5003

$socket = @fsockopen($ip, $port, $errno, $errstr, 5);

if ($socket !== FALSE) {
echo 'OK'
 
        }else{
echo 'NG'
        }

このPHPコードをURLから挿入のスクリプトステップを使て、GETかPOSTでマシンのIPアドレスとポート番号を投げてあげれば、URLから挿入のターゲットになっているフィールドに結果が書き込まれます。

また、FileMaker API for PHPと連携して、PHPからFileMakerデータベースから監視対象のマシンのデータを参照して、結果を書き込む方法もあります。

欠点

・Windows Serverの場合、イベントログ上でエラーが出る(そのポートを使うアプリケーションの通信ではないため)
・死活監視をしているサーバの死活監視も必要(笑)