phpで簡単にサーバーを監視して通知をメールで送る
問題
サーバーのディスク容量とか、負荷状況とか、Webサーバーの生きてる死んでるを、時々教えて欲しい。
解答例
phpは以下のことができます。
- コマンドライン版があるので、crontabで定期的に処理をさせることができる。
- OSのコマンドを実行する。実行結果を取得することができる。
- メールを送ることができる。
監視&通知システムを作るには十分ですね!
事例1
・サーバーのディスク使用量の状況を毎日教えて欲しい。
ディスク使用量を教えてくれるコマンドは dfコマンド。
/home/yoshimura/kanshi.php に、以下のスクリプトを書いて、
<?php exec('df', $r, $e); mail('yoshimura@example.com', 'Kanshi System Mail', implode("\n", $r));
crontab で、以下のように設定しておくと(phpへのパスは環境による)、
30 5 * * * /usr/local/bin/php /home/yoshimura/kanshi.php
毎日、朝5時30分に、以下のようにレポートがメールで届く。
件名: Kanshi System Mail 本文: Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 50627204 29637356 18376600 62% / /dev/xvda1 101086 42294 53573 45% /boot tmpfs 524376 0 524376 0% /dev/shm
コメント