Chinaunix首页 | 论坛 | 博客
  • 博客访问: 40408
  • 博文数量: 23
  • 博客积分: 920
  • 博客等级: 准尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 11:45
文章分类

全部博文(23)

文章存档

2011年(1)

2009年(22)

我的朋友
最近访客

分类: LINUX

2009-10-14 18:05:15

同时管理太多Linux服务器,如有提供WEB服务,邮件服务,有FTP文件服务,有数据库服务器,那么如何有效的来管理,是件烦琐的事,我采用一台监控服务器,不停的扫描工作服务器,如果那台服务器,出现故障,自动报警。

更多免费Linux视频

    可以使用MSN消息,也可以采用手机短信,手机短信可以用的移动邮件功能,使报警信息以邮件方式发送。
    本报警用Shell脚本+php程序,PHP接口程序接收shell脚本传递的信息并进行分析是否发送MSN信息和手机邮件。
  1.    WEB服务器监控脚本:

#!/bin/sh
LANG=C

#被监控服务器、端口列表
server_all_list=(\
192.168.1.1:80 \
192.168.1.2:80 \
192.168.1.3:80 \
192.168.1.9:80 \
)

date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")#采用HTTP POST方式发送检测信息给接口程序boobooke.php,接口程序负责分析信息,决定是否发送报警MSN消息
send_msg()
{
   /usr/bin/curl -m 10 -d menu=http -d date=$date -d ip=$server_ip -d port=$server_port -d status=$status

}

server_all_len=${#server_all_list[*]}
i=0
while  [ $i -lt $server_all_len ]
do
   server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
   server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
     #status:    0,http down    1,http ok    2,http down but ping ok
       if curl -m 10 -G
> /dev/null 2>&1
       then
           status=1
           echo "服务器${server_ip},端口${server_port}能够正常访问!"
       else
           if ping -c 1 $server_ip > /dev/null 2>&1
           then
               status=2
               echo "服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!"
           else
               status=0
               echo "服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!"
           fi
       fi
#echo $status
send_msg
send_msg
   let i++
done

2.    PHP接口程序:

/**
*********************************************************************
* Copyright (c) 2008, [赶星]
* All rights reserved.
*
* 文件名称: boobooke.php
* 摘    要: 服务器监控系统※赶星修改※接口程序
* 描    述:
* 作    者: 张宴  新浪UC:103500  博客:blog.s135.com
* 作    者: 赶星  QQ:10908105    博客:
* 版    本: 1.4
* 时    间: 2008-10-25
*********************************************************************
*/
//-----------------定义发msn函数---------------
function sendmsn()
{
$send_msn = "
机器人MSN帐号
$send_msn_password = "boobooke";//机器人MSN密码
$re_msn = "
接收管理员MSN帐号
global $message;
error_reporting(E_ALL);
include('sendMsg.php');
$sendMsg = new sendMsg();
$sendMsg->login($send_msn,$send_msn_password);
$sendMsg->createSession($re_msn);
$sendMsg->sendMessage(iconv("GBK", "UTF-8", $message), 'Times New Roman', '008000');
}
//--------------函数定义结束-------------------
 
//HTTP服务器监控  
if (htmlspecialchars($_POST["menu"]) == "http")     
{     
    $date = htmlspecialchars($_POST["date"]);     
    $ip = htmlspecialchars($_POST["ip"]);  
    $port = htmlspecialchars($_POST["port"]);  
    $status = htmlspecialchars($_POST["status"]);//状态,0表示无法访问,1表示正常,2表示无法访问但能ping通  
    $message = "WEB服务器监控系统 ※赶星修改※ V1.4\r\n";
    $message = $message . "----------------------------------------\r\n";
    $message = $message . "报警服务器:" . $ip . "\r\n";
    $message = $message . "----------------------------------------\r\n";
    $message = $message . "报警端口:" . $port . "\r\n";
    $message = $message . "----------------------------------------\r\n";
    $message = $message . "报警时间:" . $date . "\r\n";
    $message = $message . "----------------------------------------\r\n";
    $message = $message . "报警内容:\r\n";
    if ($status==0)
        {
            $message = $message . "●无法访问,并且无法ping能,请火速处理~_~";
            $is_send_msn="1";
         }
    if ($status==1)
        {
            $message = $message . "●一切正常";
            $is_send_msn="0";
         }
    if ($status==2)
        {
            $message = $message . "●服务器无法访问,但是能够Ping通";
            $is_send_msn="1";
        }
   
    if ($is_send_msn == "1")
            {
             sendmsn();//发MSN信息
             mail(, "机器报警", $message, 手机短信功能。  
            }
           else
        {
           echo "★一切正常,无须发送报警MSN消息!\n";
         }
    
}   
 
?>
 
发送MSN短消息用了一个PHP类:sendMsg(网上可以下载到),使用该PHP类发消息,必须将发送、接收双方的MSN互加为联系人,发送中文时,先用iconv将字符集转为UTF-8: $sendMsg->sendMessage(iconv("GBK", "UTF-8", $message), 'Times New Roman', '008000');
 
 
在线视频讲解:
============================================
在线观看:
在线观看:

============================================
阅读(893) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~