掌桥专利:专业的专利平台
掌桥专利
首页

一种基于检测服务状态并自动重启的方法

文献发布时间:2023-06-19 13:29:16


一种基于检测服务状态并自动重启的方法

技术领域

本发明涉及一种服务监控及自动恢复方法,尤其涉及一种基于检测服务状态并自动重启的方法。

背景技术

服务监控并自动恢复是目前业务系统高可用性的基本需求,同时服务状态的巡检工作也是运维人员经常需要维护的工作之一。随着业务需求越来越复杂以及并发量的爆发式增长,对服务的可用性要求越来越高,在尽快恢复业务的同时要提取相关的分析信息,给运维人员带来很大的压力。由此可见,使用常规手段显然不能满足目前需求,而且维护的效率较低。综合性的自检测及自动化的执行和信息收集,才是服务自恢复的一个发展方向。

目前运维常用的自监测服务通常会采用监控端口,监控服务进程以及监控测试页状态,一旦发现以上监控项不在线或返回异常均采用直接重启的方法去恢复服务。由于现有的技术方案,单纯通过判断监控端口、监控服务进程的在线状态重启相关服务,没有保留监控项处问题时相关的网络连接状态及JAVA服务的相关JVM信息,因此给后续问题排查带来很大的难度。

发明内容

本发明所要解决的技术问题是提供一种基于检测服务状态并自动重启的方法,在恢复业务的同时保留了相关的故障环境信息,便于后续问题分析,能够减少故障发现及故障排除所需的时间,提高用户的使用体验。

本发明为解决上述技术问题而采用的技术方案是提供一种基于检测服务状态并自动重启的方法,包括如下步骤:S1)在被监控服务器或设备上预先配置监控脚本;S2)采用服务器或设备自带的定时任务定时自动运行监控脚本;S3)采用服务进程状态及测试页面响应状态码的联合方式去监控服务的可用性;S4)当任一监控项不正常时均把服务器或设备当前的网络连接状态及JAVA服务的相关JVM信息导出来,同时重启服务进行自恢复。

上述的基于检测服务状态并自动重启的方法,其中,所述步骤S1在监控脚本中配置Curl命令用于构造http request报文访问测试URL,所述步骤S4使用CURL命令测试网页返回值,监控当前web服务的运行状态,排除服务处理假死无响应的状态。

上述的基于检测服务状态并自动重启的方法,其中,所述步骤S1在监控脚本中配置Netstat命令用于显示路由表、实际的网络连接以及每一个网络接口设备的状态信息,所述步骤S4使用Netstat命令打印统计网络连接状态、当前连接并发数信息,为后续的问题排查提供网络连接情况。

上述的基于检测服务状态并自动重启的方法,其中,所述步骤S1在监控脚本中配置Jstack工具用于生成虚拟机当前的线程快照信息,当出现线程停顿时,所述步骤S4使用Jstack工具获得core文件的java stack和native stack的信息。

本发明对比现有技术有如下的有益效果:本发明提供的基于检测服务状态并自动重启的方法,利用监控脚本检测服务页面响应情况和服务进程情况,服务重启前把相关服务信息导出来,在恢复业务的同时保留了相关的故障环境信息,为后续的故障排查提供数据环境,便于后续问题分析,从而减少故障发现及故障排除所需的时间,提高了用户的使用体验。

附图说明

图1为本发明基于检测服务状态并自动重启示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

目前生产上会经常出现服务无响应但端口进程均在线的情况,因此除了判断服务的端口或进程状态还要判断服务的响应状态,在自动重启服务前需要把相关网络信息及JVM信息存储起来进行后续排障的依据。本发明提供的基于检测服务状态并自动重启的方法,包括如下步骤:

S1)在被监控服务器或设备上预先配置监控脚本;

S2)采用服务器或设备自带的定时任务定时自动运行监控脚本;

S3)采用服务进程状态及测试页面响应状态码的联合方式去监控服务的可用性;

S4)当任一监控项不正常时均把服务器或设备当前的网络连接状态及JAVA服务的相关JVM信息导出来,同时重启服务进行自恢复。

本发明的监控方法采用服务进程状态及测试页面响应状态码的联合方式去监控服务的可用性,当监控项任一项不正常时均把服务器当前的网络连接状态及JAVA服务的相关JVM信息导出来,同时重启服务进行自恢复;在恢复业务的同时保留了相关的故障环境信息,为后续的故障排查提供数据环境。

本发明采用服务器或设备自带的定时任务定时自动运行监控脚本,并把监控项信息存储在指定的位置以便后续分析排查问题;根据被监控项的应答情况,判断被监控服务的运行状态,对其功能的可用性进行实时监控,避免被监控服务故障对系统服务提供的影响,从而减少故障发现及故障排除所需的时间,提高了用户的使用体验。

请参见图1,本发明采用CURL页面响应检测、进程在线状态、Jstack检测和服务故障运行环境信息提取相结合的技术方案,在监控服务进程和测试页状态的同时,一旦发现配置的监控项不在线或响应返回异常时先通过jvm相关命令把网络连接状态及JAVA服务的相关JVM信息保存起来的,同时重启服务进行自恢复;这样就能在恢复业务的同时保留了程序的故障状态,为后续的故障分析及复盘提供相关信息。

Curl命令是一个功能强大的网络工具,能通过命令行访问测试URL,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。可以用它构造httprequest报文,且可以解析服务器返回的http response,额外还支持cookie特性,能完成web浏览器的基本功能,同时还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。它能够通过http、ftp等方式下载文件,也能够上传文件。

在脚本中使用CURL测试网页返回值,可以很方便的实现定时监控web服务的运行状态,排除服务处理假死无响应的状态curl-s-o/dev/null-m 10--connect-timeout 10WebUrl-w%{http_code}。

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。在脚本中使用netstat打印统计网络连接状态、当前连接并发数等信息为后续的问题排查提供网络连接情况netstat-an|awk'/tcp/{print$6}'|sort|uniq-c。

Jstack是java虚拟机自带的一种堆栈跟踪工具,用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息用于生成虚拟机当前的线程快照信息,包含每一条线程的堆栈信息。该命令通常用于定位线程停顿原因,当出现线程停顿时,可通过stack查看每个线程的堆栈信息,进而分析停顿原因。如果java程序崩溃生成core文件,Jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,Jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息,如果现在运行的java程序呈现hung的状态,Jstack是非常有用的。

虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。

相关技术
  • 一种基于检测服务状态并自动重启的方法
  • 一种计算机死机状态自动重启方法
技术分类

06120113693811