本文实例讲述了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任务或者使用什么监控宝之类的!
完整代码如下:
复制代码 代码如下:<"[]",'',$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'
      );
"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 > h3 {
  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>
  <h3>服务器在线状态监控</h3>
 </header>
 <div class="wrap">
  <table class="table">
   <tbody>
    <tr><td>ID</td><td>Location</td><td>Address</td><td>Status</td></tr>
    <"<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包然后我们在包里面这两个文件复制出来然后即可使用了。

ps:这个只是一个非常的简单的不能很好的监控到服务器了,现在有很多成熟的免费产品都可以更好的达到我们要求,如dnspod里面有一个D监控了,然后我们就可以操作。

希望本文所述对大家的PHP程序设计有所帮助。

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?