• 配置需要监控的服务器
    • 数组定义:host_ports=(host_name=host_port=uri_path)
      host_name为容易识别的服务器名称
      host_port为服务器ip和服务端口
      uri_path为经济的请求路径
    • 为脚本运行的服务器开放防火墙端口,内网ip和外网ip皆可,但要与host_port一致
      -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 121.45.111.17 --dport 8090 -j ACCEPT
  • 监控结果记录日志
    • 先记录日期
      echo `date +'%Y-%m-%d %H:%M:%S'` > $log
    • 选择notify_host,需要提供发送邮件的接口,所以前面定义数组时将有邮件接口的host放在前面,找到第一个运行正常的host即可作为notify_host
          if [ -z $notify_host ]; then
              notify_host=$host_port
          fi
    • 检查完后检查日志文件,大于1行则发邮件通知
      curl http://$notify_host/admin/monitor.html?log=$log > /dev/null 2>&1
  • crontab定时运行监控脚本
    • crontab配置,每20分钟检查一次
      */20 * * * * /soft/monitor.sh >> /soft/logs/monitor-cron.log
    • 运行效果,测试时每两分钟检查一次
    • 邮件通知

脚本内容
log=/soft/logs/monitor.log
echo `date +'%Y-%m-%d %H:%M:%S'`
echo `date +'%Y-%m-%d %H:%M:%S'` > $log
host_ports=(
caifuxiang-slave-test=121.45.111.17:8080=/monitor.html
ghcaiyuan-slave-test=121.45.111.17:8080=/monitor.html
caifuxiang-app=121.45.111.17:8080=/monitor.html
caifuxiang-app2=121.45.111.17:8080=/monitor.html
ghcaiyuan-app=121.45.111.17:8080=/monitor.html
ghcaiyuan-app2=121.45.111.17:8080=/monitor.html
caifuxiang-master-upload=121.45.111.17:8090=/upload/crossdomain.xml
ghcaiyuan-master-upload=121.45.111.17:8090=/upload/crossdomain.xml
)
#echo ${host_ports[*]}
for ((i=0;i<${#host_ports[@]};++i))
do
host_name=`echo ${host_ports[i]}|cut -d "=" -f 1`
host_port=`echo ${host_ports[i]}|cut -d "=" -f 2`
uri_path=`echo ${host_ports[i]}|cut -d "=" -f 3`
#echo $host_port
if curl http://$host_port$uri_path > /dev/null 2>&1
then
        #echo "$host_name is ok"
    if [ -z $notify_host ]; then
        notify_host=$host_port
    fi
else
    echo "$host_name is not ok"
        echo "$host_name is not ok" >> $log
fi
done
log_lines=`cat $log|wc -l`
#echo "$log lines: $log_lines"
if [ $log_lines -gt 1 ]; then
    echo "send notify email using: $notify_host, log: $log"
    #curl http://$notify_host/admin/monitor.html?log=$log > /dev/null 2>&1
    log_content=`cat $log` #post log_content to notify_host, cause it can't get file $log
    curl -d "log=$log_content" http://$notify_host/admin/monitor.html > /dev/null 2>&1
else
    echo "everything is ok"
fi

附件列表

linux服务监控脚本的更多相关文章

  1. linux centos7 定时执行服务监控脚本

    2021-08-25 1. 需求 在服务挂掉之后我们要怎么做才能保证服务在短时间内开启?可以编写脚本监控服务的状态,在服务挂掉后及时将其开启,并定时执行该脚本. 2. 脚本编写 思路:平常我们可以通过 ...

  2. Zabbix Linux http 监控脚本

    说明:自定义监控脚本,监控内存是否启用主进程 创建文件:vim check_http.sh #!/bin/bash result=`ps -ef | grep httpd | grep -v grep ...

  3. linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码

    1.本地发布脚本 publish.sh #!/bin/sh currentDay=`date +%Y%m%d` currentTime=`date +%Y%m%d%H%M%S` tomcat1=/da ...

  4. Linux 负载监控脚本

    #!/bin/bash Date=`echo $(date +%Y\-%m\-%d\ %H:%M:%S)`HostName=`hostname`IP=`ifconfig eth0 | grep &qu ...

  5. linux服务器监控脚本

    #!/bin/bash #获取cpu使用率 cpuUsage=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $2}'` #获取磁盘使用率 data_name=&qu ...

  6. linux网络监控脚本

    http://www.51testing.com/html/92/77492-828434.html

  7. linux重启服务的脚本命令

    最近做网站测试,每次测试完成都要重启服务,为此写了一个简单的shell脚本 linux服务重启shell脚本示例 2014年12月18日 linux服务重启脚本,如何实现linux服务的定时重启,可以 ...

  8. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

  9. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

随机推荐

  1. arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

    测试方法 function test(){ var arr = [0,1,2,3]; arr.splice(1,1,'a');//case console.dir(arr); } case1: arr ...

  2. How Tomcat Works(十三)

    本文分析tomcat容器的安全管理,servlet技术支持通过配置部署描述器(web.xml文件)来对受限内容进行访问控制:servlet容器是通过一个名为验证器的阀来支持安全限制的,当servlet ...

  3. Js中获取frames中的元素

    var oCombo =  window.parent.frames["frmresourcetype"].document.getElementById('cmbType') ; ...

  4. hdoj 5344 MZL's xor

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=5344 #include<stdio.h> #include<cstring> ...

  5. 联想硬盘分区表格式修改 GPT -> MBR

    知识点分析:随机预装Win8的电脑,磁盘为GPT格式的,如果需要安装Win7等早期版本系统,需要转换为MBR格式的,使用Diskpart命令即可完成转换. 操作步骤: 注意:转换磁盘格式需要清空磁盘中 ...

  6. ASP.NET中DesignMode属性

    参考:http://blog.sina.com.cn/s/blog_4c9da9b50100r4u7.html http://book.51cto.com/art/200902/108836.htm ...

  7. VPW协议解析

    http://www.dpfdoctor.net/content/?220.html SAE J1850 VPW协议也是OBD II标准中的一种,通常应用于GM车系中. VPW英文全称是Variabl ...

  8. Android上的SQLLite性能分析

    也许有人还不知道,Android 是有一些内建的 类库支持 SQL Lite 数据库的操作.他提供了一个很好的方式在 Android 上组织少量的数据.不管怎样,在使用这些类库的时候有一些陷阱是需要注 ...

  9. [Angular 2 Router] Configure Your First Angular 2 Route

    Using the Angular 2 router requires defining routes, passing them in to the RouterModule.forRoot and ...

  10. MySQL 5.7 深度解析: 临时表空间

    http://www.actionsky.com/docs/archives/159  2016年1月8日  杨涛涛 先来说说临时表的概念. 临时表顾名思义,就是临时的,用完销毁掉的表. 数据既可以保 ...