linux shell 监控web服务

来源:互联网 发布:1521端口入侵 编辑:程序博客网 时间:2024/05/16 16:58

   在启动监控前,先安装sendmail通过发送邮件来实现告警通知。为了能达到及时提醒的作用,我们采用移动139邮箱,接到邮件手机短信实时提醒。

一、安装sendmail

1.安装sendmail来发邮件
# yum -y install sendmail
# /etc/init.d/sendmail start
# chkconfig sendmail on

需要安装sendmail并开启防火墙的25端口,如果你需要收邮件110端口也要开

2.安装mutt邮件客户端,并设置相关信息
# yum -y install mutt
# cp /etc/Muttrc /root/.muttrc 重命名,并修改配置

vi /root/.muttrc
  set charset="utf-8"           #设置发邮件编码
  set use_envelope_from=yes
  set rfc2047_parameters=yes    #解决附件乱码问题
  set realname="报警"           #发件人别名
  set use_from=yes              #指定是否显示别名
  set from=root@localhost       #发送人地址,当前主机名称,若配置其他邮箱,需配置协议主机名和密码

二、检查脚本

vi check_web.sh

#!/bin/bash#====================================================#监控web服务是否可用#====================================================while truedo    Mail="158****3564@139.com"     FailCount=0    Retval=0    GetUrlStatus() {                for ((i=1;i<=3;i++))     #使用i++判断访问次数,如果wget两次超时则判断网站异常                do                        wget -T 3 --tries=1 --spider http://${1} >/dev/null 2>&1                        #-T超时时间,--tries尝试1次,--spider蜘蛛                        [ $? -ne 0 ] && let FailCount+=1;    #访问超时时,$?不等于0,则FailCount加1                done                Date=`date +%F" "%H:%M`                if [ $FailCount -gt 1 ];then                        Retval=1                        echo "check fail!!!,sendmail....."                        echo -e "Date : $Date\nProblem : $url is not running." | mutt -s "web server Monitor" $Mail                else                        Retval=0                        echo "Date : $Date  $url is running."                fi                return $Retval        #如果返回值为0,就正常退出循环,不为0则继续循环     }     for url in `cat url | sed '/^#/d'`     do        #GetUrlStatus $url && echo yes || echo no        GetUrlStatus $url    done    sleep 3           #死循环,设置每3s运行一次done
脚本读取url文件中域名来检查,我们需要创建一个url文件,并添加访问域名:

echo "www.baidu.com" >url

echo "test.abc.com" >>url

好了,运行脚本,看一下。

./check_web.sh  #发送邮件比较慢

0 0
原创粉丝点击