【PHP】サーバーの負荷を定期的にチェックする方法

サーバーの負荷を定期的に調べて、メールで通知するための方法です。

まず、定期的にスクリプトを実行するので、CRONを利用します。CRONの使い方は、こちらの過去記事を参照。
http://webmaster.chielog.com/php/39.html

サーバーの負荷を調べるには、Linuxのuptimeコマンドを利用します。

もっとも、ここでは、CRONでshを起動し、そこからPHPスクリプトを実行する方法をとります。

そのPHPスクリプトですが、次のようになります。

<?php

//1.uptimeコマンドを実行
$output = `uptime`;

//2.結果を分割
$pieces = explode(":", $output);

//3.宛先・タイトル代入
$to      = 'name@example.com;
$subject = '(server no)-- '.$pieces[3];

//4.送信処理
mail($to, $subject, $output);

//end

■1
上記のLinuxコマンドは、バッククオートで実行していますが、shell_exec()と同様なので、どちらを使っても良いと思います。

■ 2
結果を分割していますが、件名に負荷の値だけを表示したいので、時間の区切り文字で結果を分割して、最後の値だけを、3で付け足しています。メールの中身を見ずに、タイトルだけで、負荷の値を知ることが出来ます。

■ 3
件名には、負荷の値を表示するようにしています。

■ 4
メールの送信処理です、特に日本語は含まれないので、mail関数を使っています。

PHPスクリプトは以上です。

後は、このスクリプトをCRONから実行するために、CRONタブの設定をします。上記リンクを参考にどうぞ。

また、shスクリプトもあわせて設置してください。

PHPスクリプト、CRONの設定、shスクリプトの設置がすめば、設定したメールアドレス宛に、サーバーの負荷の値が定期的に送信されてきます。

ちなみに、当該メールの到着時間を見れば、メールサーバーの調子も推測できます。遅延したりした場合には、対処が必要になるでしょう。

以上です。

カテゴリー: PHP, UNIX/Linux パーマリンク

コメントを残す

メールアドレスが公開されることはありません。