服务状态监测方法、装置、电子设备及可读存储介质与流程

文档序号:19828250发布日期:2020-02-04 12:07阅读:121来源:国知局
服务状态监测方法、装置、电子设备及可读存储介质与流程

本申请实施例涉及计算机技术领域,尤其涉及一种服务状态监测方法、装置、电子设备及可读存储介质。



背景技术:

在一个项目中,往往包含着许多的服务,例如:一个web项目中,除了自身外,还需要mysql、redis、elasticsearch、logstash等众多其他服务的支持,其中一个服务有问题就可能导致整个系统的瘫痪。

而以往的解决办法,通常是某服务出现问题导致功能受影响后,才会有研发或运维人员查看日志,定位问题,这样的做法在服务数量多、问题需要快速发现、及时定位的项目中就显得有些不够智能和高效,所以亟需研究一种针对项目中各服务状态的监测方法。



技术实现要素:

本申请实施例提供一种服务状态监测方法、装置、电子设备及可读存储介质,以对项目中各服务的运行状态进行自动监测,及时定位问题。

本申请实施例第一方面提供了一种服务状态监测方法,应用于服务状态监测系统,所述服务状态检测系统包括:filebeat和kafka,所述方法包括:

所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源;

所述filebeat通过对每个日志监听输入源分别配置正则表达式,将每个日志监听输入源监控的服务所产生的运行日志进行过滤,以得到错误日志和告警日志;其中,所述错误日志和所述告警日志均携带异常类型标识;

所述filebeat根据所述异常类型标识,将所述错误日志和所述告警日志发送至对应的kafka队列;

所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作。

可选地,在所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源之后,所述方法还包括:

所述filebeat在目标日志监听输入源配置长时间未上报日志监听策略,以得到长时间未上报的日志;其中,所述目标监听输入源监控目标服务,所述长时间未上报的日志携带所述异常类型标识;

所述filebeat将所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径进行匹配;其中,所述目标服务的日志路径预先配置在所述filebeat中;

在所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径匹配成功的情况下,所述filebeat根据所述异常类型标识,将所述长时间未上报的日志发送至对应的kafka队列;

所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作。

可选地,所述filebeat在目标日志监听输入源配置长时间未上报日志监听策略,包括:

所述filebeat在所述目标日志监听输入源配置对应的所述目标服务的closeinactive数值。

可选地,所述方法还包括:

所述filebeat将所述错误日志、所述告警日志和所述长时间未上报的日志中的至少一者发送至存储设备中,以便于运维人员的追溯和查看。

可选地,所述kafka根据不同的队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作,包括:

所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以对应执行发送异常邮件的操作以及记录相同服务类型的告警日志的告警次数,在所述告警次数超过预设阈值的情况下,发送告警邮件的操作;其中,所述告警日志携带所述服务类型的标识。

可选地,所述kafka根据不同的队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作,包括:

所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行调用重启命令或脚本的操作。

本申请实施例第二方面提供一种服务状态监测装置,应用于服务状态监测系统,所述服务状态检测系统包括:filebeat和kafka,所述装置包括:

第一配置模块,用于所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源;

过滤模块,用于所述filebeat通过对每个日志监听输入源分别配置正则表达式,将每个日志监听输入源监控的服务所产生的运行日志进行过滤,以得到错误日志和告警日志;其中,所述错误日志和所述告警日志均携带异常类型标识;

第一发送模块,用于所述filebeat根据所述异常类型标识,将所述错误日志和所述告警日志发送至对应的kafka队列;

第一分发模块,用于所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作。

可选地,所述装置还包括:

第二配置模块,用于所述filebeat在目标日志监听输入源配置长时间未上报日志监听策略,以得到长时间未上报的日志;其中,所述目标监听输入源监控目标服务,所述长时间未上报的日志携带所述异常类型标识;

匹配模块,用于所述filebeat将所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径进行匹配;其中,所述目标服务的日志路径预先配置在所述filebeat中;

第二发送模块,用于在所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径匹配成功的情况下,所述filebeat根据所述异常类型标识,将所述长时间未上报的日志发送至对应的kafka队列;

第二分发模块,用于所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作。

可选地,所述第二配置模块包括:

第二配置子模块,用于所述filebeat在所述目标日志监听输入源配置对应的所述目标服务的closeinactive数值。

可选地,所述装置还包括:

第三发送模块,用于所述filebeat将所述错误日志、所述告警日志和所述长时间未上报的日志中的至少一者发送至存储设备中,以便于运维人员的追溯和查看。

可选地,第一分发模块包括:

第一分发子模块,用于所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以对应执行发送异常邮件的操作以及记录相同服务类型的告警日志的告警次数,在所述告警次数超过预设阈值的情况下,发送告警邮件的操作;其中,所述告警日志携带所述服务类型的标识。

可选地,第二分发子模块包括:

第二分发子模块,用于所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行调用重启命令或脚本的操作。

本申请实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请第一方面所述的方法中的步骤。

本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。

采用本申请实施例提供的一种服务状态监测方法,通过使用filebeat监控各个服务的运行日志,并在filebeat内部设置正则表达式以进行错误日志和告警日志的过滤,对于不同异常类型的日志分别发送至kafka的不同队列下,以根据不同的队列对异常日志执行相应的操作,帮助运维人员自动检测各个服务的状态并及时做出相应操作,避免了问题的遗留、堆积。节约了人力成本,提高了系统的运维效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提出的一种服务状态监测方法的流程图;

图2是本申请一实施例提出的一种服务状态监测方法的流程图;

图3是本申请一实施例提出的一种服务状态监测装置的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参考图1,图1是本申请一实施例提出的一种服务状态监测方法的流程图,应用于服务状态监测系统,所述服务状态检测系统包括:filebeat和kafka。如图1所示,该方法包括以下步骤:

步骤s11:所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源。

在本实施例中,所述filebeat是本地文件的日志数据采集器。作为服务器的代理安装,filebeat可以用于监视日志目录或者任意指定的日志文件。当开启filebeat程序时,它会启动一个或多个探测器(prospectors)去检测指定的日志目录或日志文件,对于探测器(prospectors)找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程(harvester)读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到指定的服务。

在本实施例中,filebeat监控的服务为:服务器中的各个服务,其中,服务包括但不限于以下至少之一:应用程序服务、elasticsearch服务以及mysql服务。

在本实施例中,所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源;且同时配置了该日志监听输入源监控的服务日志的路径。示例地,若filebeat监控应用程序服务和elasticsearch服务,则配置两个日志监听输入源;其中,针对应用程序服务的监控,其监控的运行日志有打印日志,则在应用程序服务器的日志监听输入源中配置打印日志的路径。

步骤s12:所述filebeat通过对每个日志监听输入源分别配置正则表达式,将每个日志监听输入源监控的服务所产生的运行日志进行过滤,以得到错误日志和告警日志;其中,所述错误日志和所述告警日志均携带异常类型标识。

在本实施例中,filebeat提供了include_lines配置,其是一组正则表达式,用于匹配想要得到的行。

在本实施例中,所述filebeat通过对每个日志监听输入源分别配置正则表达式,将每个日志监听输入源监控的服务所产生的运行日志进行过滤,以匹配想要得到的错误日志和告警日志。其中,由于每个日志监听输入源监控的服务或插件的日志格式不同,因此,需要对每个日志监听输入源进行分别配置正则表达式。

在本实施例中,所述异常类型标识用于表征日志的异常类型,例如:错误日志、告警日志以及长时间未上报日志。

在本实施例中,所述错误日志和所述告警日志还均携带有服务类型标识,其中,所述服务类型标识用于表征日志来源。例如,错误日志和告警日志分别来源于监控的应用程序服务和elasticsearch服务,此时,服务日志携带有应用程序服务的标识,告警日志携带有elasticsearch服务的标识。

步骤s13:所述filebeat根据所述异常类型标识,将所述错误日志和所述告警日志发送至对应的kafka队列。

步骤s14:所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作。

在本实施例中,首先,所述filebeat根据所述异常类型标识,将所述错误日志和所述告警日志发送至对应的kafka队列;然后,所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作。

在本实施例中,kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(例如:网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。kafka具有高性能、持久化、多副本备份、横向扩展能力。

通过上述技术方案,通过使用filebeat监控各个服务的运行日志,并在filebeat内部设置正则表达式以进行错误日志和告警日志的过滤,对于不同异常类型的日志分别发送至kafka的不同队列下,以根据不同的队列对异常日志执行相应的操作,帮助运维人员自动检测各个服务的状态并及时做出相应操作;同时,还能快速定位问题,便于对问题的处理,避免了问题的遗留、堆积,节约了人力成本,提高了系统的运维效率。

在本申请的一种实施方式中,步骤s14包括:所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以对应执行发送异常邮件的操作以及记录相同服务类型的告警日志的告警次数,在所述告警次数超过预设阈值的情况下,发送告警邮件的操作;其中,所述告警日志携带所述服务类型的标识。

在本实施例中,所述kafka中收集错误日志的队列,执行发送异常邮件的操作,其中,发送异常邮件的对象是在处理程序中预置的运维人员的邮箱,通过向运维人员发送异常邮件,及时通知运维人员查看或修复错误日志。

所述kafka中收集告警日志的队列,执行记录相同服务类型的告警日志的告警次数,在所述告警次数超过预设阈值的情况下,发送告警邮件的操作。其中,该kafka队列中的应用程序通过告警日志携带的服务类型的标识,将相同服务类型标识的告警日志进行统计,以得出相同服务类型的告警日志的告警次数,以在所述告警次数超过预设阈值的情况下,向预设的运维人员的邮箱发送告警邮件;通过发送告警邮件,通知运维人员该告警日志对应的服务疑似出现问题,便于运维人员进行查看或修复。

示例地,仍以上述监控的服务为:应用程序服务、elasticsearch服务以及mysql服务为例,若针对应用程序服务的告警日志,预设阈值为三次,则该收集告警日志的kafka队列中在收到三次携带应用程序服务标识的告警日志时,向运维人员的邮箱发送告警邮件。

参考图2,图2是本申请一实施例提出的一种服务状态监测方法的流程图。如图2所示,该方法除上述步骤s11以外,还包括以下步骤:

步骤s21:所述filebeat在目标日志监听输入源配置长时间未上报日志监听策略,以得到长时间未上报的日志;其中,所述目标监听输入源监控目标服务,所述长时间未上报的日志携带所述异常类型标识。

在本实施例中,所述目标服务是:正常情况下需持续打印日志的服务,例如:系统中的发送心跳数据包的服务,或者运行的定时任务中会打印日志的服务。

在本申请的一种可能的实施方式中,步骤s21包括:所述filebeat在所述目标日志监听输入源配置对应的所述目标服务的close_inactive数值。

在本实施例中,通过在filebeat内部配置目标监听输入源对应的目标服务的close_inactive数值,以确定多长时间未上报属于服务异常,从而筛选出目标服务中长时间未上报的日志。

步骤s22:所述filebeat将所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径进行匹配;其中,所述目标服务的日志路径预先配置在所述filebeat中。

在本实施例中,目标服务的日志路径是指:正常情况下需持续打印日志服务的日志路径;其是在配置目标监听输入源的同时进行配置的,因此,为预先配置在filebeat中。

步骤s23:在所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径匹配成功的情况下,所述filebeat根据所述异常类型标识,将所述长时间未上报的日志发送至对应的kafka队列。

步骤s24:所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作。

在本实施例中,首先,在所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径匹配成功的情况下,所述filebeat根据所述异常类型标识,将所述长时间未上报的日志发送至对应的kafka队列;然后,所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作。

通过上述技术方案,通过对filebeat内部设置长时间未上报日志监听策略以得到长时间未上报的日志,实现对监控服务中需持续打印日志的服务的实时监测,且将长时间未上报的日志发送至对应的至kafka队列中,以执行相应的操作,便于对出现长时间为上报的异常服务进行处理,避免了问题的遗留、堆积,节约了人力成本,提高了系统的运维效率。

在本申请的一种可能的实施方式中,步骤s24包括:所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行调用重启命令或脚本的操作。

在本实施例中,所述重启命令可以直接存储在kafka队列的应用程序中,所述脚本可以直接存储在监控的服务器中。通过调用重启命令或者脚本,以自动重启长时间未上报日志所对应的异常服务,及时对异常服务进行处理。

在本申请的一种可能的实施方式中,所述方法除上述步骤s21-步骤s24以外,还包括以下步骤:

所述filebeat将所述错误日志、所述告警日志和所述长时间未上报的日志中的至少一者发送至存储设备中,以便于运维人员的追溯和查看。

在本实施例中,所述存储设备可以包括elasticsearch,所述elasticsearch是指搜索服务器,它具有使大量数据具有方便搜索、分析和探索的功能,通过将告警日志和所述长时间未上报的日志中的至少一者发送至elasticsearch中,便于对上述异常日志的查看和追溯。

基于同一发明构思,本申请一实施例提供一种服务状态监测装置,应用于服务状态监测系统,所述服务状态检测系统包括:filebeat和kafka。参考图3,图3是本申请一实施例提供的一种服务状态监测装置的示意图。如图3所示,该装置包括:

第一配置模块301,用于所述filebeat根据监控的服务数量,配置对应数量的日志监听输入源;

过滤模块302,用于所述filebeat通过对每个日志监听输入源分别配置正则表达式,将每个日志监听输入源监控的服务所产生的运行日志进行过滤,以得到错误日志和告警日志;其中,所述错误日志和所述告警日志均携带异常类型标识;

第一发送模块303,用于所述filebeat根据所述异常类型标识,将所述错误日志和所述告警日志发送至对应的kafka队列;

第一分发模块304,用于所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以执行相应的操作。

可选地,可选地,所述装置还包括:

第二配置模块,用于所述filebeat在目标日志监听输入源配置长时间未上报日志监听策略,以得到长时间未上报的日志;其中,所述目标监听输入源监控目标服务,所述长时间未上报的日志携带所述异常类型标识;

匹配模块,用于所述filebeat将所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径进行匹配;其中,所述目标服务的日志路径预先配置在所述filebeat中;

第二发送模块,用于在所述长时间未上报的日志内的无活动行为服务的路径与所述目标服务的日志路径匹配成功的情况下,所述filebeat根据所述异常类型标识,将所述长时间未上报的日志发送至对应的kafka队列;

第二分发模块,用于所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行相应的操作。

可选地,所述第二配置模块包括:

第二配置子模块,用于所述filebeat在所述目标日志监听输入源配置对应的所述目标服务的closeinactive数值。

可选地,所述装置还包括:

第三发送模块,用于所述filebeat将所述错误日志、所述告警日志和所述长时间未上报的日志中的至少一者发送至存储设备中,以便于运维人员的追溯和查看。

可选地,第一分发模块包括:

第一分发子模块,用于所述kafka根据不同的kafka队列,将所述错误日志和所述告警日志分发至相应的处理程序中,以对应执行发送异常邮件的操作以及记录相同服务类型的告警日志的告警次数,在所述告警次数超过预设阈值的情况下,发送告警邮件的操作;其中,所述告警日志携带所述服务类型的标识。

可选地,第二分发子模块包括:

第二分发子模块,用于所述kafka根据不同的kafka队列,将所述长时间未上报的日志分发至相应的处理程序中,以执行调用重启命令或脚本的操作。

基于同一发明构思,本申请另一实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种服务状态监测方法、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1