设为首页 收藏本站
查看: 942|回复: 0

使用shell脚本监控网站运行状态

[复制链接]

尚未签到

发表于 2018-8-24 08:47:35 | 显示全部楼层 |阅读模式
  前言:好久没有写博客了,上来把之前写的博客几乎全都清理掉了,想写的时候写上一些,蛮不错。
  shell监控网站/tomcat状态,依靠返回状态码来进行判断,返回200,302认为状态是正常的,否则认为tomcat/nginx/LB/Haproxy/apache挂掉了,脚本实现如下:
  1. 创建一个站点文件夹,吧需要监控的地址都写到http_site文件里面
  vim http_site
  ### Nginx site begin ###
  http://192.168.129.86:38020
  http://192.168.129.86:38021
  ### Nginx site end ###
  ### LB site begin ###
  http://192.168.2.30:38020
  http://192.168.2.30:38024/38025task
  ### LB site end ###
  ### Web site begin ###
  http://192.168.129.91:8030
  http://192.168.129.93:8030
  ### Web site end ###
  ### Task site begin ###
  http://192.168.129.95:8032/38023task
  http://192.168.129.95:8033/38027task
  ### Task site end ###
  ### Mobile site  begin ###
  http://192.168.129.92:8030
  http://192.168.129.92:8040
  ### Mobile site  end ###
  2. 编写shell脚本实现监控功能,使用curl访问网站,过滤出返回的状态码当做判断条件,如有返回状态码非200/302则发送邮件报警
  vim check_site.sh
  #!/bin/bash
  mysite=/root/script/check_http/http_site
  check_status=/root/script/check_http/temp_status
  historyfile=/root/script/check_http/history/`date  +%Y-%m-%d`/`date +%T`
  failurefile=/root/script/check_http/history/`date  +%Y-%m-%d`/`date +%T`_failure
  mkdir /root/script/check_http/history/`date  +%Y-%m-%d` &>/dev/null
  for  site in `grep -v  -E "^#|^$"  $mysite`
  do
  curl -s  -I  --connect-timeout 3 -m 5  $site  | grep  "HTTP/1.1"  | awk '{print $2}'  >  $check_status
  status=`cat $check_status`
  if [[ $status -eq 200 ]] || [[ $status -eq 302 ]]
  then
  echo  "###########################"             >>$historyfile
  echo  "http_site $site  Access Successful"      >>$historyfile
  else
  echo  "###########################"             >>$historyfile
  echo  "http_site $site  Access Failure"         >>$historyfile
  fi
  done
  grep "Access Failure" $historyfile  &>/dev/null
  if      [ $? -eq 0 ]
  then
  echo -e "\n\nThe following tomcat is not started !!!\n"  >> $failurefile
  echo -e "Please check the services !!!\n"  >> $failurefile
  echo -e "#############################################\n"  >> $failurefile
  grep "Access Failure" $historyfile  >> $failurefile
  echo -e "\n#############################################" >> $failurefile
  mail -s "SFA_Liby_Tomcat_Check !!!"  baiyongjie@winchannel.net   misterbyj@163.com tangzhiyu@winchannel.net   <  $failurefile
  fi
  3. 配置报警邮箱
  vim /etc/mail.rc
  set hold
  set append
  set ask
  set crt
  set dot
  set keep
  set emptybox
  set indentprefix="> "
  set quote
  set sendcharsets=iso-8859-1,utf-8
  set showname
  set showto
  set newmail=nopoll
  set autocollapse
  ignore received in-reply-to message-id references
  ignore mime-version content-transfer-encoding
  fwdretain subject date from to
  set bsdcompat
  set from=15600970600@163.com
  set smtp=smtp.163.com
  set smtp-auth-user=15600970600@163.com smtp-auth-password=Password smtp-auth=login
  4.添加计划任务,每5分钟运行一次
  crontab -e
  */5 * * * * /bin/bash  /root/script/check_http/check_site.sh
  5. 测试脚本,写好以后已经运行好几天了,效果还不错,分享给大家
  为了验证效果,当时停了几个tomcat,6月14号23:12分停掉的,停掉后运行脚本检测到有tomcat没有运行,会生成 _failure文件记录,并发出邮件,达到报警效果
DSC0000.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555765-1-1.html 上篇帖子: Linux常用Shell脚本练习 下篇帖子: bash的多命令执行,shell脚本基础及grep系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表