最近サーバーの調子が悪いので、サーバーにトラブルがあったら連絡くれるようにしてみました。
有料の監視ツールを使うほどでもないので、簡単に無料でできるか調べると、
アシアルさんでいいのを発見!これを使ってDBも監視するようにしました。
アシアルさんでいいのを発見!これを使ってDBも監視するようにしました。
以下監視プログラムです。
move_check_server.php (外部のサーバーに設置cronで定期実行)
mb_language("ja"); mb_internal_encoding("UTF-8"); define('SERVER_IP', 'xxx.xxx.xxx.xxx'); define('SERVER_NAME', 'xxx.jp'); define('MYSQL_URL', 'http://xxxx.jp/move_check_db.php'); define('MAIL_TO', 'xxx@xxx.jp'); define('MAIL_FROM', 'error@xxx.jp'); $result = ''; //pingチェック $ping_command_str = "ping -c 3 -w 5 ". SERVER_IP; if (strstr(`$ping_command_str`, '100% packet loss')) { $result .= "サーバー(ping)が停止しています。\n"; } //webアクセスチェック if ($res = file_get_contents(MYSQL_URL)) { // DB(MySQL)アクセスチェック if ($res == 'error') { $result .= "DB(MySQL)が停止しています。\n"; } } else { $result .= "httpdが停止しています。\n"; } //停止していればをメール送信 if ($result != '') { $subject = SERVER_NAME. "(". SERVER_IP. ")が停止しています。"; mb_send_mail(MAIL_TO, $subject, $result, 'From: '. MAIL_FROM); }
move_check_db.php (監視するサーバーに設置)
define('MYSQL_HOST', 'localhost'); define('MYSQL_USER', 'xxx'); define('MYSQL_PASS', 'xxx'); $link = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die("error"); if ($link) { mysql_close($link); echo 'ok'; }
良かったら使ってください!