`
gaozhonghui
  • 浏览: 241898 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古自治区
社区版块
存档分类
最新评论

Web服务自动监控shell

阅读更多
我们在线上跑的服务,不知道为什么最近有几回运行的进程莫名其妙的就没有了,就特意写了这个监控脚本,让其自动扫描服务,把访问不正常的服务,自动启动或重启服务,并且导出当时的线程使用情况,方便定位问题。

步骤:
1.修改web服务名称和端口
monitorTcp.sh

2.修改扫描时间
monitorServer.sh

3.启动守候进程
/usr/bin/nohup /bin/sh /home/Gzh/shell/monitorServer.sh 2>&1 > /dev/null &

monitorServer.sh
#!/bin/sh
###########################################################
#desc:后台守候检查服务是否正常
#author:gaozhonghui
#mail:toptreegzh@163.com
#date:20121210
###########################################################

while true
do
   /bin/sh /home/Gzh/shell/monitorTcp.sh > /dev/null 2>&1
   sleep 10
done


monitorTcp.sh
#!/bin/sh
#####################################################
#desc:扫描后台服务器的应用服务器,若不能正常访问则重启
#author:gaozhonghui
#mail:toptreegzh@163.com
#date:20121127
#######################################################

year=`date -d "today" +"%Y"`
monthday=`date -d "today" +"%m"`
date=$(date -d "today" +"%Y%m%d")

#被监控服务器、端口列表
#str = web服务文件夹:端口号
server_all_list=(
	'www.test2.com:9090'
	'www.test.com:8090'
)

#应用服务器基路径
serverBasePath="/web/webserver/jboss/"
#日志路径
logBasePath="/web/webserver/logs/$year/$monthday/"

#获得监控服务PID
function_getPID(){
   local PID=`ps -ef|grep $1|grep java |awk '{print $2}'`
   echo $PID
}

#dump 线程详细信息方便定位问题
function_jstackinfo(){
 PID=`function_getPID $1`
 if [ x$PID != x"" ] ;then
    if [ ! -d ${logBasePath} ];then
       mkdir -p ${logBasePath}  	
    fi

    jstack -l ${PID} >> ${logBasePath}"jstack_$1_${date}.log"	
 fi
}

#关闭应用服务
function_shutdown(){
  local shutdownSh=${serverBasePath}$1"/bin/shutdown.sh"
  if [ -f $shutdownSh ];then
        local PID=`function_getPID $1`

        if [ x$PID != x"" ] ;then
                sh $shutdownSh > /dev/null 2>&1
                sleep 2
        fi

        local PID2=`function_getPID $1`

        if [ x$PID2 != x"" ];then
                kill -9 $PID2
        fi
  fi	
}

#启动应用服务
function_startup(){
 local startupSh=${serverBasePath}$1"/bin/startup.sh"
 if [ -f $shutdownSh ];then
	sh $startupSh > /dev/null 2>&1
 fi
}

#重启应用服务
function_restart(){
  function_shutdown $1
  sleep 5
  function_startup $1
}

#扫描监控服务
for server in ${server_all_list[@]}; do
   server_ip=127.0.0.1
   server_name=$( echo ${server} | awk -F ':' '{print $1}')
   server_port=$( echo ${server} | awk -F ':' '{print $2}')
   
   #status:    0,http down    1,http ok    2,http down but ping ok 
   if nc -vv -z -w 2 $server_ip $server_port > /dev/null 2>&1;then
       status=1
   else
       if nc -vv -z -w 3 $server_ip $server_port > /dev/null 2>&1;then
           status=1
       else
           if ping -c 1 $server_ip > /dev/null 2>&1;then
               status=2
           else
               status=0
           fi
       fi
   fi
	
   if [ x$status != x"1" ];then
	PID=`function_getPID  ${server_name}`
	
	if [ x$PID != x ];then
		function_jstackinfo  ${server_name}
		function_restart  ${server_name}
	else
		function_startup ${server_name}
	fi	
   fi
	
done

0
5
分享到:
评论
6 楼 dplqg 2012-12-24  
挺好的呀,顶楼主一个,谢谢分享
5 楼 daixianmeng 2012-12-20  
回去研究一下,谢谢!!
4 楼 gaozhonghui 2012-12-20  
mrcai314 写道
不知道有没有效果

我们生产环境跑有段时间了,表现良好。
您可以动手局域网测试。
3 楼 gaozhonghui 2012-12-20  
txf_7337 写道
注释都不写,踩一个

有时间把注解补全。
2 楼 mrcai314 2012-12-20  
不知道有没有效果
1 楼 txf_7337 2012-12-20  
注释都不写,踩一个

相关推荐

    web应用执行shell操作服务器资源

    通过Web应用启动和管理这些服务,可以实现自动化运维,提高效率,但也需注意避免因误操作导致的服务中断。 7. **日志监控与审计**:所有通过Web应用执行的Shell操作都应记录在日志中,便于后期审查和审计。日志分析...

    自动监控Web服务进程的shell脚本

    自动监控Web服务进程的shell脚本。我们在线上跑的服务,不知道为什么最近有几回运行的进程莫名其妙的就没有了,就特意写了这个监控脚本,让其自动扫描服务,把访问不正常的服务,自动启动或重启服务,并且导出当时的...

    服务器资源监控.zip

    Python是一种强大的编程语言,因其简洁易读的语法和丰富的库支持,常被用于开发各种自动化工具和后台服务。Flask则是一个轻量级的Web服务器和应用程序框架,它允许开发者快速构建RESTful API和Web应用,非常适合实现...

    linux-一些常用的shell脚本用于webserver的服务安装线上代码发布推送等

    总结,"linux-一些常用的shell脚本用于webserver的服务安装线上代码发布推送等"提供了宝贵的资源,不仅能够帮助我们自动化日常运维任务,提高工作效率,还能作为学习和提升Linux技能的有效途径。通过深入理解和应用...

    监控php-fpm并自动重启服务的shell脚本

    ### 监控php-fpm并自动重启服务的Shell脚本详解 #### 背景介绍 在Web开发中,PHP是常用的服务器端脚本语言之一,而`php-fpm`(FastCGI Process Manager)是一种PHP FastCGI的实现,能够提供更好的性能表现和资源...

    监控内部web系统http响应状态异常时自动重启

    标题“监控内部web系统http响应状态异常时自动重启”指的是一个自动化监控解决方案,它能够检测内部web系统的HTTP响应状态,并在发现异常时自动重启服务,确保系统的稳定运行。这一技术通常应用于大型分布式系统或者...

    shell脚本实现本地文件与服务器文件同步

    ### Shell脚本实现本地文件与服务器文件同步 #### 背景与意义 在软件开发过程中,经常需要将本地开发环境中的文件同步到服务器上进行部署或测试。手动上传不仅耗时而且容易出错,因此编写一个自动化脚本来实现文件...

    shell脚本编程100例

    本书《shell脚本编程100例》为读者提供了100个实战性的shell脚本编程实例,涵盖了检测网段主机状态、猜数字游戏、打印乘法口诀、使用rsync备份数据、切割Nginx日志、监控服务端口、使用mtime删除历史文件或日志文件...

    shell脚本发布jar包服务,war包服务

    在Java应用部署中,shell脚本通常用于启动、停止、监控服务等操作。 - `tomcat.sh`可能是一个用于管理Tomcat服务器的脚本,如启动、停止、重启Tomcat实例,或者配置环境变量。 2. **Java Archive (JAR) 文件**: ...

    自动化运维和Shell手册

    【Shell手册】则涉及到Shell脚本编程,它是Linux或Unix系统中用于编写自动化任务的命令解释器。通过Shell脚本,运维人员可以编写一系列命令,实现批量处理任务,例如文件管理、数据处理、系统维护等。Shell脚本的...

    linux 下web服务器每天生成日志的shell脚本

    在Linux环境中,Web服务器如Apache或Nginx每天都会生成大量的访问日志,这些日志对于监控服务器状态、分析用户行为、排查问题等都至关重要。为了有效地管理和利用这些日志,我们可以编写一个shell脚本来自动化地处理...

    Linux下Shell编程从入门到精通视频教程.txt

    15、Shell批量监控服务发送邮件报警.mp4 14、Linux下自动化运维企业案例.mp4 13、Linux系统增量备份脚本.mp4 12、Shell编程四剑客及案例详解.mp4 11、Shell编程之SED及GREP综合讲解.mp4 10、Linux下深入编程之函数及...

    Linux下Shell从入门到精通完整版视频.zip

    目录网盘文件永久链接 1.Linux下Shell编程基础入门.mp4 2.Shell编程之变量及LAMP导航菜单...17.Shell批量监控服务发送邮件报警.mp4 18.Shell编程之实战WEB界面展示一.mp4 19.Shell编程之实战WEB界面展示二.mp4 .....

    实战LINUX+SHELL编程与服务器管理(2/2)

    3. **服务器管理**:这部分内容涵盖如何维护和优化Linux服务器,包括服务配置(如Apache、Nginx web服务器,MySQL数据库等)、性能监控、安全策略(如防火墙规则、权限控制、SSH安全设置)以及故障排查。通过学习,...

    Linux服务管理与自动化运维 PPT课件

    通过学习Bash或其他Shell语言,可以编写自动化任务,如文件备份、系统监控等。 3. **Zabbix**:Zabbix是一款开源的企业级监控解决方案,用于监控网络服务、硬件状态和应用程序性能。理解Zabbix的配置、安装、数据...

    shell脚本练习,自动化部署脚本

    它能监控系统服务状态,并在主服务器失效时自动将流量切换到备用服务器。在自动化部署中,配置keeplived可以确保Nginx或Tomcat服务的持续可用性,减少服务中断带来的影响。 `NFS`(Network File System)是用于在...

    LINUX系统与自动化监控系统的安全性分析.pdf

    电力自动化监控系统中的WEB服务允许远程维护和浏览,这就需要Linux系统提供强大的防火墙和安全策略,防止未授权的访问。 在电力监控系统中,事件报警功能能实时监测异常情况,重要报警信息会立即通知操作人员,同时...

    SSH Secure Shell Client

    4. **启动和管理服务**:用户可以启动、停止或重启web服务器及相关服务,确保应用正常运行。 5. **日志查看**:通过SSH客户端,用户可以实时查看服务器的日志文件,帮助诊断和解决问题。 6. **安全更新和维护**:...

    linux系统Tomcat重启shell脚本

    Linux 系统 Tomcat 重启脚本判断日志超过一定大小自动重启,是指在 Linux 操作系统中使用 shell 脚本来监控 Tomcat 服务器的日志文件大小,当日志文件超过一定大小时,自动重启 Tomcat 服务器,以确保服务的稳定运行...

Global site tag (gtag.js) - Google Analytics