ホームページ >バックエンド開発 >PHPチュートリアル >サーバー状態監視を実装する PHP メソッド、サーバー監視を実装する PHP_PHP チュートリアル

サーバー状態監視を実装する PHP メソッド、サーバー監視を実装する PHP_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:081087ブラウズ

サーバーステータス監視を実装するPHPメソッド、サーバー監視を実装するPHP

この記事の例では、PHP でサーバーのステータス監視を実装する方法を説明します。参考のためにみんなで共有してください。具体的な分析は次のとおりです:

多くの友人は PHP サーバーのステータス監視をしたことがありません。Web サイトが夜中にシャットダウンされると、その状況がわかりません。この 2 日間で時間をかけて書いてきました。Web サーバーのステータス モニターが必要だという人がいたら、公開します。とてもシンプルなものです。

使用方法:

圧縮パッケージ内のstatus.phpファイルを開きます。ここの内容を自分のメール情報に編集します。コードは次のとおりです:

コードをコピーします コードは次のとおりです:
$mail->Host = 'smtp.exmail.qq.com' // SMTP サーバー
; $mail->Port = 25; // SMTPサーバーのポート番号
; $mail->Username = 'admin@xxx.com' // SMTP サーバーのユーザー名
; $mail->Password = 'password' // SMTP サーバーのパスワード
; $mail->SetFrom('admin@xxx.com','ステータス');
$mail->AddReplyTo('admin@xxx.com','ステータス');
$mail->件名 = $subject;
$mail->AltBody = 'メッセージを表示するには、HTML 互換のメール ビューアを使用してください!' // オプションで、コメントアウトしてテストします
$mail->MsgHTML($body);
$address = 'admin@admin.com' //メールを受信します
; // ここの内容を監視したい IP に変更します:
$server_ip_list = 配列(
「61.135.169.121」、
「221.204.173.200」、
「173.194.127.83」
);

次に、http://yourdomain.com/status.php ファイルにアクセスして現在のサーバーのステータスを確認し、設定した電子メール アドレスに電子メールを自動的に送信します。自動監視が必要な場合は、Cron タスクを追加するか、何らかの監視ツールを使用してください。
完全なコードは次のとおりです:
コードをコピーします コードは次のとおりです:
/*
* サーバーステータス監視
*/
header('Content-type:text/html;charset=utf-8');
'./smtp/class.smtp.php' を含めます;
'./smtp/class.phpmailer.php' を含めます;
関数 sendmail($subject = '',$body = '') {
Date_default_timezone_set('Asia/Shanghai');//東巴地区のタイムゾーンを設定します
$mail = new PHPMailer(); //新しいPHPMailerオブジェクトが出てきます
                                                                                                                                                                                                   $mail->CharSet ="UTF-8";//メールのエンコーディングを設定します。デフォルトは ISO-8859-1 です。中国語を送信する場合は、これを設定する必要があります。そうしないとコードが文字化けします
$mail->IsSMTP() // SMTP サービスを使用するように設定します
$mail->SMTPAuth = true; $mail->SMTPAuth = true; // SMTP認証機能を有効にする $mail->Host = 'smtp.exmail.qq.com' // SMTP サーバー
; $mail->Port = 25; // SMTPサーバーのポート番号
; $mail->Username = 'admin@xxx.com' // SMTP サーバーのユーザー名
; $mail->Password = 'password' // SMTP サーバーのパスワード
; $mail->SetFrom('admin@xxx.com','ステータス');
$mail->AddReplyTo('admin@xxx.com','ステータス');
$mail->件名 = $subject;
$mail->AltBody = 'メッセージを表示するには、HTML 互換のメール ビューアを使用してください!' // オプションで、コメントアウトしてテストします
$mail->MsgHTML($body);
$address = 'admin@admin.com' //メールを受信します
; $mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif") // 添付ファイル Attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // 添付ファイル
If(!$mail->Send()) {
echo 'メーラー エラー: ' $mail->ErrorInfo;
} その他 {
// echo "メッセージが送信されました! おめでとうございます、メールは正常に送信されました!";
}
}
//サーバーのステータスを確認します
関数 checkServerSatatus($ip) {
$str = null;
$fp = @fsockopen($ip,80,$errno,$errstr,10);
if (!$fp) {
false を返します;
} その他 {
fclose($fp);
true を返します;
}
}
$server_ip_list = 配列(
「61.135.169.121」、
「221.204.173.200」、
「173.194.127.83」
);
?>


<頭>
<メタ文字セット="UTF-8">
サーバーステータス監視
<スタイル>
* {
マージン: 0px;
パディング: 0px;
}
ボディ{
フォントファミリー: "Microsoft yahei",Arial;
フォントサイズ:14px;
}
ヘッダー{
高さ: 40px;
背景色: #2e2e2e;
幅: 100%;
行の高さ: 35px;
}
ヘッダー > h3 {
色: #fff;
マージン左: 20px;
}
フッター{
text-align: 中央;
}

色: #424242;
テキスト装飾: なし;
}
.wrap {
高さ: 自動;
ズーム:1;
オーバーフロー: 自動;
最大幅: 500px;
幅: 100%;
マージン: 50px 自動;
}
.table {
border-collapse: 折りたたむ;
ボーダー: 1px ソリッド #eee;
幅: 100%;
}
tr,td{
色: #424242;
border-collapse: 折りたたむ;
境界線: 1 ピクセルの実線 #F0F0F0;
高さ: 30px;
text-align: 中央;
}
tr:nth-child(2n+1) {
背景色: #F7F8FC;
}
tr:ホバー{
背景色: #F7F8FC;
 }
 .オンライン、.オフライン {
  高さ: 20px;
  背景色: #2ECC71;
  幅: 40px;
  マージン: 0px 自動;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  境界半径: 5px;
  色: #fff;
 }
 .オフライン {
  幅: 50px;
  背景色: #E74C3C;
 }
 


 <ヘッダー>
 

服务器在線上态监控


 
 

  <テーブルクラス="テーブル">
   <みんな>
    gt;ID 場所gt;住所gt;ステータス
         $i = 0;
     foreach ($server_ip_list as $key => $val) {
      $api = file_get_contents('http://ip.taabao.com/service/getIpInfo.php?ip='.$server_ip_list[$key].'');
      $json = json_decode($api);
      $result = $json->data;
      $i++;
      if (checkServerSatatus($server_ip_list[$key])) {
       echo "{$i}{$result->country}{$result->region}{$result->city}{$server_ip_list[$key]}
在中
" ;
      } その他 {
       echo "{$i}{$result->country}{$result->region}{$result->city}{$server_ip_list[$key]}
非通信
";
       $subject = "您的サーバー {$server_ip_list[$key]} 無法访问!";
       $body = "您的サーバー{$server_ip_list[$key]} 無法访问,この邮件は你設定による监制御周波数送信正常,当服サーバー恢复邮件自動停止送信!";
       sendmail($subject,$body);
      }
     }
     ?>
  
 
 

 


注意:
'./smtp/class.smtp.php' を含めます;
'./smtp/class.phpmailer.php' を含めます;
この 2 つのファイルは、phpmailer のパッケージにダウンロードして、パッケージ内で作成され、すぐに使用できるようになります。 追記: これは非常に単一のサーバーの制御が不十分なだけで、非常に多くの成熟した無料製品がある場合は、dnspod のセキュリティが 1 つ制御されている場合は、要求をより適切に満たすことができ、その後は動作できるようになります。

ここで説明されている大規模な PHP プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/924537.html

tru​​ehttp://www.bkjia.com/PHPjc/924537.html技術記事 PHP がサーバー状態制御を実行する方法、php がサーバー状態制御を実行する方法については、PHP がサーバー状態制御を実行する方法について説明します。具体的な分析は次のとおりです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。