一种系统监控方法及装置
文献发布时间:2023-06-19 11:19:16
技术领域
本发明属于互联网领域,特别涉及一种系统监控方法及装置。
背景技术
目前,随着计算机网络技术的日益成熟和人们生活水平的不断提高,尤其是移动互联网络的普及,上网已经逐渐成为了当代人生活中重要的生活元素。在常见的网络应用系统,一般地,服务器与多个业务系统对接,而每个业务系统都有相应的线上接口来实现相关的业务功能。服务器需要有效掌握各业务系统的运行情况。然而在网络运行过程中,线上接口的各种各样的故障时有发生。而且,线上接口发生故障也是不可预见和不可避免的,只能通过有效的监控来及时发现线上接口发生的故障,以便可以及时予以解决,保证各业务系统的正常运行,有效的提高网络的利用率,最终改善用户的使用体验。
现有技术中采用一些开源软件,通过端口号或者配置模板进行对系统中的进程进行监控。
但是上述监控方法监控精确度低,维护不灵活,配置也相对复杂。
发明内容
为了解决上述技术问题,本发明提供了一种系统监控方法、装置及计算机存储介质。
本发明具体技术方案如下:
一方面,提供了一种系统监控方法,系统监控方法包括:
获取被监控进程信息;
将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应;
将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端;
报警终端根据被监控进程信息发出报警信息。
在一种可选地实施例中,将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,包括:
获取本次所有被监控进程的位置信息;
获取位置信息对应的位置上前次被监控进程的运行情况;
将位置信息对应的位置上前次被监控进程的运行情况与本次被监控进程的运行情况进行比对,得到比对结果,根据比对结果得到增加的被监控进程和减少的被监控进程。
在一种可选地实施例中,根据比对结果得到增加的被监控进程和减少的被监控进程,包括:
当与被监控进程对应的位置上被监控进程前次没有出现时,被监控进程为增加的进程;
当与被监控进程对应的位置上被监控进程本次没有出现时,被监控进程为减少的进程。
在一种可选地实施例中,将位置信息对应的位置上前次被监控进程的运行情况与本次被监控进程的运行情况进行比对,得到比对结果,根据比对结果得到增加的被监控进程和减少的被监控进程,包括:
获取位置信息对应的位置上前次和本次重复出现的被监控进程数组;
根据位置信息对应的位置上前次和本次重复出现的被监控进程数组除去位置信息对应的位置上前次和本次重复出现的被监控进程,剩余被监控进程为增加的被监控进程和减少的被监控进程。
在一种可选地实施例中,将位置信息对应的位置上前次被监控进程的运行情况与本次被监控进程的运行情况进行比对,还包括:
判断位置上前次和本次被监控进程重复出现的频次,当位置信息对应的位置上前次和本次被监控进程重复出现频次大于预设频次时,以位置信息对应的位置上前次和本次未重复出现的被监控进程作为下次被监控进程的比对基础进行比对。
在一种可选地实施例中,所述方法包括:
获取本次所有被监控进程信息;
根据所有被监控进程信息对每个被监控进程赋予一个哈希值;
获取所有被监控进程的哈希值总和;
将本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和进行比对。
在一种可选地实施例中,获取本次所有被监控进程信息,包括:对本次所有被监控进程信息进行排序;
将本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和进行比对,包括:当本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和不同时,根据对本次所有被监控进程信息的排序将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对。
在一种可选地实施例中,将被监控进程按照预设位置进行排序,包括:获取被监控进程的身份信息,根据被监控进程的身份信息对被监控进程进行排序,其中,每一个身份信息与一个被监控进程一一对应。
在一种可选地实施例中,获取被监控进程信息,包括:间隔第一预设时间获取新加入被监控进程信息并检测新加入被监控进程信息是否满足系统进程中的预设进程信息,当新加入被监控进程信息满足系统进程中的预设进程信息时在当前被监控进程中加入新加入被监控进程的信息。
另一方面,还提供了一种系统监控装置,系统监控装置包括:存储器、处理器以及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述任一的方法。
本发明的有益效果如下:本申请实施例提供的方法通过获取被监控进程信息,将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应,如此,将本次获取的监控进程与上次运行的被监控进程进行比对时,减少了比对的时间,提高了监控效率;将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端;报警终端根据被监控进程信息发出报警信息。本申请实施例提供的监控方法由于对每个被监控进程进行排序,提高了监控精确度,且不需要配置端口号或配置模板,提高产品运营的服务可用度,提升用户体验。
附图说明
图1为本申请实施例提供的系统监控方法流程示意图;
图2为本申请实施例提供的一种系统监控方法流程示意图。
具体实施方式
下面结合附图和以下实施例对本发明作进一步详细说明。
在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
请参见图1,图1为本申请实施例提供的监控方法流程示意图,该系统监控方法包括:
S101、获取被监控进程信息。
S102、将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应。
S103、将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端。
S104、报警终端根据被监控进程信息发出报警信息。
本申请实施例提供的监控方法至少具有以下技术效果:
本申请实施例提供的方法通过获取被监控进程信息,将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应,如此,将本次获取的监控进程与上次运行的被监控进程进行比对时,减少了比对的时间,提高了监控效率;将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端;报警终端根据被监控进程信息发出报警信息。本申请实施例提供的监控方法由于对每个被监控进程进行排序,提高了监控精确度,从而有效的避免因监控遗漏导致生产线故障,有效的提高产品运营服务可用度,且不需要配置端口号或配置模板,提高产品运营的服务可用度,提升用户体验。
以下将通过可选地实施例进一步描述本申请实施例提供的监控方法:
S101、获取被监控进程信息。
在一种可选地实施例中,S101包括:间隔第一预设时间获取增加的被监控进程信息并检测增加的被监控进程信息是否满足系统进程中的预设进程信息,当增加的被监控进程信息满足系统进程中的预设进程信息时在当前被监控进程中加入增加的被监控进程的信息。
第一预设时间可以根据用户需要进行设定,作为一种示例,第一预设时间可以为10秒钟、20秒钟或者1分钟等,本申请实施例对第一预设时间不限于此。通过对增加的被监控进程信息与系统进程中的预设进程信息进行比对,当增加的被监控进程信息满足系统进程中的预设进程信息时在当前被监控进程中加入增加的被监控进程身份信息及其运行相关参数。如此可以保证系统运行安全,避免非系统中的进程运行对系统造成安全。
其中,本申请实施例所述的被监控进程包括系统默认进程和服务进程,本申请实施例所监控的进程对象主要为服务进程,系统默认进程一般不发生变化。也就是说,本申请实施例中的发生变化的进程均为服务进程。需要说明的是,系统中会有很多待运行的进程,通过获取系统中所有进程的身份信息及其运行相关参数,可以为当前运行的被监控进程运行相关参数变化提供参考。
在一种可选地实施例中,可以通过获取被监控进程的运行相关参数来进一步监控进程的运行状态,运行相关参数包括:被监控进程的CPU使用率、内存使用率以及优先级中的至少一个。
作为一种示例,操作系统启动后,加载任务列表,执行任务列表中的任务,该操作系统监控进程实时监控系统中所有运行的进程和所有休眠的进程,当被监控进程开始运行时,获取所有被监控进程的身份标识(即PID)以及其运行相关参数,例如CPU使用率、内存使用率及初始优先级,并将获取的相关运行参数保存。其中,被监控进程运行过程中,被监控进程的CPU使用率、内存使用率等运行相关参数实时变化,该监控进程实时监控被监控的进程运行相关参数,从来自被监控进程的使用率信号中获取被监控进程的身份标识及其运行相关参数。
在一种可选地实施例中,本申请实施例提供的方法还包括:获取系统中被监控进程的新加入信号,根据新加入信号的被监控进程在当前被监控进程中加入新加入被监控进程信息,例如新加入被监控进程的身份信息及其运行相关参数。
需要说明的是,本申请实施例提供的方法可以通过建立进程字典库的方式存储被监控进程信息。当有增加的被监控进程时,将该增加的被监控进程加入被监控进程字典库中。当有减少的被监控进程时,将该减少的被监控进程从进程字典库中删除。
S102、将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应。
在一种可选地实施例中,将被监控进程按照预设位置进行排序,包括:获取被监控进程的身份信息,根据被监控进程的身份信息对被监控进程进行排序,其中,每一个身份信息与一个被监控进程一一对应。
作为一种示例,可以根据每个被监控进程的PID对被监控进程进行排序,每一个PID与一个被监控进程一一对应,如此,当有被监控进程发生变化时,可以快速通过其PID得到被监控进程的位置和名称,减少查找的时间,提高监控效率。
在一种可选地实施例中,也可以根据被监控进程的运行先后对其进行排序,或者根据被监控进程占用系统内存大小对其进行排序,本申请实施例对被监控进程排序不限于此。
S103、将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端。
在一种可选地实施例中,S103包括:S1031、S1032与S1033。
S1031、获取本次所有被监控进程的位置信息。
作为一种示例,可以通过系统中的探针实时获取系统中所有运行的被监控进程,并对所有的被监控进程做好标签,按照本申请实施例提供的预设位置存储所有被监控进程,方便对增加的和减少的被监控进程进行比对。
其中,PID是指各被监控进程的身份标识,被监控进程开始运行时,系统就会自动给每个被监控进程分配一个唯一的PID,通过每个被监控进程的PID可以确定该被监控进程的所在位置,根据每个被监控进程的PID将被监控进程进行排序。作为一种示例,本申请实施例提供的PID可以在将本次获取的所有进程信息与前次获取的所有被监控进程信息比对完之后进行收回,以保证每次比对时,每个被监控进程的PID不发生变化,保证比对结果的准确性。
使用率信号是被监控进程运行过程中相关参数值变化的信号,该使用率信号中至少包括被监控进程的身份标识及其运行相关参数,可以是由操作系统自身进程主动获取,作为一种示例,可以通过探针获取所有被监控进程的身份标识及其运行相关参数,也可以是由被监控的进程主动上报,本申请实施例对此不做具体限定。
S1032、获取位置信息对应的位置上前次被监控进程的运行情况。
需要说明的是,每个被监控进程在监控服务器中的位置是确定的,当该被监控进程运行时,该位置即被占用,当该被监控进程没有运行时,该位置即为空缺的。一个位置信息对应的位置上前次该被监控进程的运行情况有两种,一种是该被监控进程在前次已经运行,一个是该被监控进程在前次没有运行。
S1033、将位置信息对应的位置上前次被监控进程的运行情况与本次被监控进程的运行情况进行比对,得到比对结果,根据比对结果得到增加的被监控进程和减少的被监控进程。
在一种可选地实施例中根据比对结果得到增加的被监控进程和减少的被监控进程包括:
当与被监控进程对应的位置上被监控进程前次没有出现时,被监控进程为增加的进程。
可以理解的是,当与被监控进程对应的位置上被监控进程前次没有出现时,说明该被监控进程本次才出现,即被监控进程为增加的进程。
当与被监控进程对应的位置上被监控进程本次没有出现时,被监控进程为减少的进程。
可以理解的是,当与被监控进程对应的位置上被监控进程前次出现,但是本次没出现,说明该被监控进程为减少的进程。
在一种可选地实施例中,S1033包括:
S10331、获取位置信息对应的位置上前次和本次重复出现的被监控进程数组。
需要说明的是,本申请实施例所述的位置信息对应的位置均指被监控进程在监控服务器上的存储位置。在本实施例中,被监控进程在监控服务器上的存储形式为数组形式。数组是有序的元素序列。在程序设计中,为了处理方便,把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。作为一种示例,本申请实施例提供的数组可以为指针数组,指针数组中每个元素都必须具有相同的存储类型,在本实施例中,前次出现的被监控进程为一个存储类型,本次出现的被监控进程为一个存储类型,如此,当有增加的被监控进程和减少的被监控进程时可以清楚的得到增加或减少的被监控进程。
S10332、根据位置信息对应的位置上前次和本次重复出现的被监控进程数组除去位置信息对应的位置上前次和本次重复出现的被监控进程,剩余被监控进程为增加的被监控进程和减少的被监控进程。
在一种可选地实施例中,将位置信息对应的位置上前次被监控进程的运行情况与本次被监控进程的运行情况进行比对还包括:
判断位置信息对应的位置上前次和本次被监控进程重复出现的频次,当位置信息对应的位置上前次和本次被监控进程重复出现频次大于预设频次时,以位置信息对应的位置上前次和本次未重复出现的被监控进程作为下次被监控进程的比对基础进行比对。
可以理解的是,当某一个被监控进程出现的频次过多时,说明该被监控进程比较稳定,下次获取的被监控进程可以不用将其作为比对基础,如此,可以减少系统比对的作业量,减轻系统监控负担。作为一种示例,预设频次可以根据用户的需要进行设定,例如可以是10次、15次或20次等,本申请实施例对预设频次不限于此。
本申请实施例提供的方法包括
获取本次所有被监控进程信息。
进一步地,获取本次所有被监控进程的身份信息或相关运行参数等。
根据所有被监控进程信息对每个被监控进程赋予一个哈希值。也就是说,本实施例中,不需要获取被监控进程的存储位置,而是根据所有被监控进程信息对每个被监控进程赋予一个哈希值。如此减少了监控程序,降低了监控成本。
需要说明的是,哈希值又称作哈希函数,哈希表中元素是由哈希函数确定的。将数据元素的关键字作为自变量,通过一定的函数关系(称为哈希函数)计算出的值,即为该元素的存储地址。本申请实施例中对每一个被监控进程赋予一个哈希值,即给予了每一个被监控进程一个存储地址,每一个被监控进程具有一个存储地址。采用哈希值对被监控进程进行标记,提高了查找所有被监控进程中哪一个是增加的或减少的进程的速率。
获取所有被监控进程的哈希值总和。
在一种可选地实施例中,可以为每一个哈希值赋予一个数值,每一个哈希值所对应的数值固定不变,对所有的哈希值求和,当哈希值总和增大时,说明被监控进程有增加,当哈希值减少时,说明被监控进程减少。
将本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和进行比对。
作为一种示例,给每个被监控进程一个哈希值,并对第一个哈希值赋予具体的数值1001,第二个哈希值的数值为1002,第三个哈希值的数值为1003……,对第n个哈希值的数值为1000n等,第一个至第三个被监控进程的哈希值总和为3006,当有增加的被监控进程时,该被监控进程对应的哈希值总和会大于3006,当被监控进程减少时,该被监控进程对应的哈希值总和会小于3006。
在一种可选地实施例中,获取本次所有被监控进程信息,包括:对本次所有被监控进程信息进行排序;
将本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和进行比对,包括:当本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和不同时,根据对本次所有被监控进程信息的排序将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对。
需要说明的是,当发现被监控进程的哈希值增大或减少时,需要在本次所有的被监控进程中找到增加的或减少的被监控进程。如果通过对所有的进程进行查找,则需要花费大量的时间,加重系统的负担。本申请实施例通过对本次所有被监控进程信息进行排序,当本次所有被监控进程的哈希值总和与前次被监控进程的哈希值总和不同时,根据对本次所有被监控进程信息的排序将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对。
进一步地,可以对所有的被监控进程所对应的哈希值进行分段,然后求取每段的哈希值总和,当该段的哈希值总和发生变化时在进一步从该段中查找增加或减少的被监控进程,当该段的哈希值总和没有发生变化时,则对下一段进行查找。如此,提高了查找的效率。
作为一种示例,可以对所有的被监控进程对应的哈希值分为2段,也可以分为3段或者4段,可以根据用户需要或者被监控进程的多少确认对哈希值分段的多少。本申请实施例对上述分段多少不限于此。
S104、报警终端根据被监控进程信息发出报警信息。
根据被监控进程的减少信号从被监控进程中删除被监控进程,例如删除退出被监控进程的身份信息及其运行相关参数,使系统不再需要对其进行监控,并将该删除信息发送给报警终端,由报警终端将该删除信息告知用户,由用户根据需要确认是重新开启该进程还是不再对其进行监控。
在一种可选地实施例中,本申请实施例提供的报警终端还可以根据运行相关参数发生变化的进程信息以及删除信息发出报警信息。
报警终端得到运行相关参数发生变化的进程信息后确认是结束该进程还是降低该进程的优先级等,或者根据删除信息确认是否重新启用该进程或者不再使用该进程,也就不再对其进行监控。
在一种可选地实施例中,将每次报警信息进行存储作为历史报警信息,将每次报警信息与历史报警信息进行比对,根据比对结果发出目标报警信息。
本申请实施例提供的方法可以将每次的报警信息存储,形成历史报警信息,每次报警前报警终端将报警信息与历史报警信息进行比对,可以根据历史报警信息得到此次报警信息所对应的处理结果,并将该结果反馈给用户,提高对监控结果的处理效率。
作为一种示例,本次的报警信息为该被监控进程退出,历史报警信息为将退出的被监控进程重新加入,则报警终端可以根据比对结果给出重新加入该进程的建议。
在一种可选地实施例中,根据比对结果发出最终报警信息,包括:
当比对结果大于历史报警信息时发出目标报警信息。
本申请实施例提供的方法也可以对比对结果大于报警信息时进行报警,作为一种示例,某进程的CPU使用率大于历史报警信息的使用率,此时就可以发出报警信息。
在一种可选地实施例中,该方法还包括判断报警是否成功,如果报警成功则进入下一轮询,如果报警失败,则持续报警,直至报警成功为止。
在一种可选地实施例中,如果报警成功,则报警终端向系统发送包报警成功的信息,系统接收到该信息后开始下一轮询。
另一方面,本申请实施例还提供了一种系统监控装置,该系统监控装置包括:存储器、处理器以及存储在存储器上的计算机程序,处理器执行计算机程序以实现上述任一所述的方法。
本申请实施例提供的装置基于采用上述方法通过获取被监控进程信息,将被监控进程按照预设位置进行排序,每一个被监控进程与一个位置一一对应,如此,将本次获取的监控进程与上次运行的被监控进程进行比对时,减少了比对的时间,提高了监控效率;将本次获取的所有被监控进程信息与前次获取的所有被监控进程信息按照预设规则进行比对,当被监控进程的数量增加或减少时,将增加或减少的被监控进程信息发送给报警终端;报警终端根据被监控进程信息发出报警信息。本申请实施例提供的监控方法由于对每个被监控进程进行排序,提高了监控精确度,从而有效的避免因监控遗漏导致生产线故障,有效的提高产品运营服务可用度,且不需要配置端口号或配置模板,提高产品运营的服务可用度,提升用户体验。
以下将通过可选地实施例进一步描述本申请实施例提供的监控方法。
实施例
请参见图2,图2为本申请实施例提供的一种系统监控方法流程示意图。
首先通过探针每隔第一预设时间,例如每隔一分钟搜集系统中运行的被监控进程,与已经获取的系统中相对应的被监控进程进行比对,如果进程数量发生了变化,作为一种示例,如果被监控进程的种类增加,则添加新的被监控进程。即在本申请实施例提供的被监控进程字典库中增加该新加入的被监控进程,如果被监控进程的种类减少,则从被监控进程字典库中删除该减少的被监控进程,并将该新加入的被监控进程和删掉的被监控进程的信息发送给报警终端的报警接口,由报警终端报警。报警后判断报警是否成功,如果成功,本轮询结束,如果报警失败则继续推送该信息,直至报警成功为止。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
- 一种输液监控的床头终端、系统、输液监控方法及皮试监控方法
- 一种兼容多操作系统的系统监控方法及装置