[背景]原来对端口的监控是用nagios的,今天,看了php的fsockopen,就感觉用它可以做点事喽。。。。
[过程]
先给大家一张图

代码如下:
require_once('adodb/adodb.inc.php');
$db_type = 'mysql';
$db_host = 'localhost';
$db_user = 'cdnnode';
$db_pass = 'xxxxxxxxx';
$db_name = 'cdnode';
$GLOBALS['MY_SESS_CONN'] =& ADONewConnection($db_type);
$GLOBALS['MY_SESS_CONN']->Connect( $db_host, $db_user, $db_pass, $db_name);

if (! $MY_SESS_CONN){
        echo "Unable to connect to DB: " . mysql_error();
        exit;
}
   
    $sql = "SELECT ip,port from nodes";

    $result = mysql_query($sql);

    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }

    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
?>


CDN NODES Monitors!


CDN Nodes Status




echo "";   
$i=0;
while ($row = mysql_fetch_assoc($result)) {
      if($i%4 == 0){
          echo ""; 
       }
       echo "";
       $res = @fsockopen($row[ip],$row[port],$errno,$errstr,2);
       if($res)
           {
                echo "";
           }
       else
           {
                echo "";
           }

       $i+=1;
       }

echo "
$row[ip]
OK!
Fail!
";

mysql_free_result($result);
?>


感觉如何,大家也试试吧!


如果想了解更多,请关注我们的公众号
公众号ID:opdevos
扫码关注

php 端口监控_第1张图片