您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關利用PHP怎么對服務器的狀態進行監控,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
PHP服務器狀態監控對于很多朋友來講都沒做,只有看到網站掛了才知道,這種半夜網站關了是不知道情況了,對于網站也非常不好,為此這兩天抽空寫了個網頁服務器狀態監控,看到有朋友說需要,那我就放出來吧。很簡單的東西。
使用方法:
打開壓縮包里面的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','Status'); $mail->AddReplyTo('admin@xxx.com','Status'); $mail->Subject = $subject; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test $mail->MsgHTML($body); $address = 'admin@admin.com'; //接收郵箱 //更改這里的內容為你要監控的IP: $server_ip_list = array( '61.135.169.121', '221.204.173.200', '173.194.127.83' );
然后訪問你http://yourdomain.com/status.php文件,即可看到當前服務器狀態并且自動發送郵件到你設置的郵箱。如果需要自動監控,請添加Cron任務或者使用什么監控寶之類的!
完整代碼如下:
<?php /* * 服務器狀態監控 */ header('Content-type:text/html;charset=utf-8'); include './smtp/class.smtp.php'; include './smtp/class.phpmailer.php'; function sendmail($subject = '',$body = '') { date_default_timezone_set('Asia/Shanghai');//設定時區東八區 $mail = new PHPMailer(); //new一個PHPMailer對象出來 // $body = eregi_replace("[]",'',$body); //對郵件內容進行必要的過濾 $mail->CharSet ="UTF-8";//設定郵件編碼,默認ISO-8859-1,如果發中文此項必須設置,否則亂碼 $mail->IsSMTP(); // 設定使用SMTP服務 $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','Status'); $mail->AddReplyTo('admin@xxx.com','Status'); $mail->Subject = $subject; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test $mail->MsgHTML($body); $address = 'admin@admin.com'; //接收郵箱 $mail->AddAddress($address, ''); //$mail->AddAttachment("images/phpmailer.gif"); // attachment 附件 //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo 'Mailer Error: ' . $mail->ErrorInfo; } else { // echo "Message sent!恭喜,郵件發送成功!"; } } //check server status function checkServerSatatus($ip) { $str = null; $fp = @fsockopen($ip,80,$errno,$errstr,10); if (!$fp) { return false; } else { fclose($fp); return true; } } $server_ip_list = array( '61.135.169.121', '221.204.173.200', '173.194.127.83' ); ?> <!doctype html> <html lang="zh_CN"> <head> <meta charset="UTF-8"> <title>服務器狀態監控</title> <style> * { margin: 0px; padding: 0px; } body { font-family: "Microsoft yahei",Arial; font-size:14px; } header { height: 40px; background-color: #2e2e2e; width: 100%; line-height: 35px; } header > h4 { color: #fff; margin-left: 20px; } footer { text-align: center; } a { color: #424242; text-decoration: none; } .wrap { height: auto; zoom:1; overflow: auto; max-width: 500px; width: 100%; margin: 50px auto; } .table { border-collapse: collapse; border: 1px solid #eee; width: 100%; } tr,td{ color: #424242; border-collapse: collapse; border: 1px solid #F0F0F0; height: 30px; text-align: center; } tr:nth-child(2n+1) { background-color: #F7F8FC; } tr:hover { background-color: #F7F8FC; } .online,.offline { height: 20px; background-color: #2ECC71; width: 40px; margin: 0px auto; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; color: #fff; } .offline { width: 50px; background-color: #E74C3C; } </style> </head> <body> <header> <h4>服務器在線狀態監控</h4> </header> <div class="wrap"> <table class="table"> <tbody> <tr><td>ID</td><td>Location</td><td>Address</td><td>Status</td></tr> <?php $i = 0; foreach ($server_ip_list as $key => $val) { $api = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$server_ip_list[$key].''); $json = json_decode($api); $result = $json->data; $i++; if (checkServerSatatus($server_ip_list[$key])) { echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="online">在線</div></td></tr>"; } else { echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="offline">不在線</div></td></tr>"; $subject = "您的服務器 {$server_ip_list[$key]} 無法訪問!"; $body = "您的服務器{$server_ip_list[$key]} 無法訪問,此郵件根據你設置的監控頻率發送,當服務器恢復正常郵件自動停止發送!"; sendmail($subject,$body); } } ?> </tbody> </table> </div> </body> </html>
注意:
include './smtp/class.smtp.php';
include './smtp/class.phpmailer.php';
文件可以下載phpmailer包然后我們在包里面這兩個文件復制出來然后即可使用了。
上述就是小編為大家分享的利用PHP怎么對服務器的狀態進行監控了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。