CN115525392A - 容器监控方法、装置、电子设备及存储介质 - Google Patents
容器监控方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115525392A CN115525392A CN202211169476.9A CN202211169476A CN115525392A CN 115525392 A CN115525392 A CN 115525392A CN 202211169476 A CN202211169476 A CN 202211169476A CN 115525392 A CN115525392 A CN 115525392A
- Authority
- CN
- China
- Prior art keywords
- container
- communication
- jvm
- monitoring
- indexes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/301—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及容器监控领域,具体涉及一种容器监控方法、装置、电子设备及存储介质。包括:对各个容器的运行情况进行监听;在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标;对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。上述方法可以实现对各个容器对应的各类通信日志、容器指标以及JVM指标进行实时监控,从而保证对各个容器进行监控的准确性。此外,当发生意外情况,各个容器停止运行时,电子设备还可以查询各个容器对应的历史记录中的各类通信日志、容器指标以及JVM指标,从而实现对历史容器进行监控。
Description
技术领域
本发明涉及容器监控领域,具体涉及一种容器监控方法、装置、电子设备及存储介质。
背景技术
容器技术是比较流行的提供微服务的Paa S(注:Paa S:平台即服务)技术,而Kubernetes(容器编排管理组件)是近期最流行的容器编排管理技术,基于Kubernetes提供容器云平台是各大云厂商的首选。
在一个大型的公有云容器平台中,一台linux设备上往往运行着大量分属于不同客户和不同业务的容器,并且,由于部署方式的不同,可能既有常驻运行的容器,也有定期和不定期运行的非常驻容器;另外,出于运营和安全等方面的需要,在linux环境下,通常会通过namespace(命名空间)隔离容器与系统上的其它进程,并通过cgroup(control group,控制组)技术对容器进行资源限制。因此,在运行容器的设备上需要有一套通用的容器监控方案,以满足容器平台运营的需要。
但是,现有技术中的容器监控方案只是对容器中的某些数据进行简单的监控,并不能保证对容器进行监控的准确性。
发明内容
有鉴于此,本发明实施例提供了一种容器监控方法,旨在解决现有技术不能保证对容器进行监控的准确性的问题。
根据第一方面,本发明实施例提供了一种容器监控方法,包括:
对各个容器的运行情况进行监听;
在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标;其中,容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种;
对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
本发明实施例提供的容器监控方法,对各个容器的运行情况进行监听,从而可以获取到各个容器对应的运行情况。然后,在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标,保证了获取并记录的各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标的准确性。然后,对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控,保证了对各个容器进行监控的准确性。上述方法可以实现对各个容器对应的各类通信日志、容器指标以及JVM指标进行实时监控,从而保证对各个容器进行监控的准确性。此外,当发生意外情况,各个容器停止运行时,电子设备还可以查询各个容器对应的历史记录中的各类通信日志、容器指标以及JVM指标,从而也可以实现对历史容器进行监控。
结合第一方面,在第一方面第一实施方式中,方法还包括:
根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间;
获取需要对各个容器进行检测的历史时间;
将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间运行的历史容器;
对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障。
本发明实施例提供的容器监控方法,根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间,保证了确定的各个容器对应的运行起止时间的准确性。获取需要对各个容器进行检测的历史时间,将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间运行的历史容器,保证了确定的历史容器的准确性。然后,对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障,保证了确定的各个历史容器发生故障的结果的准确性。上述方法,实现了对历史容器的监控,解决了现有技术中不能对历史容器进行监控,从而导致不能快速确定电子设备故障的问题。
结合第一方面,在第一方面第二实施方式中,在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志,包括:
在各个容器运行过程中,获取各个容器与其他设备进行通信的通信记录;
对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志;
根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志。
本发明实施例提供的容器监控方法,在各个容器运行过程中,获取各个容器与其他设备进行通信的通信记录,保证了获取到的各个容器与其他设备进行通信的通信记录的准确性。然后,对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志,保证了生成的通信日志的准确性。根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志,实现了对通信日志进行分类处理,保证了生成的各个容器与其他设备进行通信的各类通信日志的准确性。从而使得电子设备可以对各类通信日志进行分析,而不是对各个通信日志进行分析,因此提高了电子设备对容器进行监控的效率。
结合第一方面第二方面,在第一方面第三实施方式中,通信信息包括各个通信日志对应的域名请求,根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志,包括:
获取各个通信日志对应的域名请求;
根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志的数量。
本发明实施例提供的容器监控方法,获取各个通信日志对应的域名请求;根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志的数量,实现了可以根据域名请求的不同,将同一域名请求的通信日志合并为一类,且保证了确定的同一域名请求对应的通信日志的数量的准确性。
结合第一方面第二方面,在第一方面第四实施方式中,通信信息包括各个通信日志对应的响应时长,根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志,包括:
获取各个通信日志对应的响应时长;
根据各个通信日志对应的响应时长,对各个通信日志进行聚合处理,并确定各类通信日志对应的平均响应时长。
本发明实施例提供的容器监控方法,获取各个通信日志对应的响应时长;根据各个通信日志对应的响应时长,对各个通信日志进行聚合处理,并确定各类通信日志对应的平均响应时长,实现了根据通信日志对应的响应时长,对通信日志进行聚类,且保证了确定的所有通信日志对应的平均响应时长的准确性。
结合第一方面第三方面,在第一方面第五实施方式中,对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控,包括:
当至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
本发明实施例提供的容器监控方法,当至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障,保证了确定的容器发生故障结果的准确性。
结合第一方面第四方面,在第一方面第六实施方式中,对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控,包括:
当至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
本发明实施例提供的容器监控方法,当至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障,保证了确定的容器发生故障结果的准确性。
根据第二方面,本发明实施例还提供了一种容器监控装置,包括:
监听模块,用于对各个容器的运行情况进行监听;
第一获取模块,用于在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标;其中,容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种;
第一分析模块,用于对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
本发明实施例提供的容器监控装置,对各个容器的运行情况进行监听,从而可以获取到各个容器对应的运行情况。然后,在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标,保证了获取并记录的各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标的准确性。然后,对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控,保证了对各个容器进行监控的准确性。上述方法可以实现对各个容器对应的各类通信日志、容器指标以及JVM指标进行实时监控,从而保证对各个容器进行监控的准确性。此外,当发生意外情况,各个容器停止运行时,电子设备还可以查询各个容器对应的历史记录中的各类通信日志、容器指标以及JVM指标,从而也可以实现对历史容器进行监控。
根据第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的容器监控方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的容器监控方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是应用本发明实施例提供的容器监控方法的流程图;
图2是应用本发明另一实施例提供的容器监控方法的流程图;
图3是应用本发明另一实施例提供的容器监控方法的流程图;
图4是应用本发明另一实施例提供的容器监控方法中对容器指标进行分析的示意图;
图5是应用本发明另一实施例提供的容器监控方法中对容器指标进行分析的示意图;
图6是应用本发明另一实施例提供的容器监控方法的流程图;
图7是应用本发明实施例提供的容器监控装置的功能模块图;
图8是应用本发明实施例提供的容器监控装置的功能模块图;
图9是应用本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请实施例提供的容器监控的方法,其执行主体可以是容器监控的装置,该容器监控的装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部,其中,该计算机设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是电子设备为例来进行说明。
在本申请一个实施例中,如图1所示,提供了一种容器监控方法,以该方法应用于电子设备为例进行说明,包括以下步骤:
S11、对各个容器的运行情况进行监听。
具体地,电子设备可以基于go-log_server服务在kubernetes集群中注册容器事件监听,当有容器因驱逐、部署或故障原因停止运行和重启时,都会在关系型数据库中添加一条记录,从而实现了对各个容器的运行情况进行监听。
S12、在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标。
其中,容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种。
可选的,在各个容器运行过程中,电子设备可以接收各个容器发送的各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标。
可选的,电子设备可以基于与网关之间的连接,获取网关发送的各个容器与其他设备进行通信的各类通信日志。然后,记录各个容器与其他设备进行通信的各类通信日志。其中,网关为企业内部使用的高性能web服务器,负责所有的http请求进出口流量代理。
电子设备还可以使用开源组件cAdvisor进行采集各个容器对应的容器指标,并使用javaagent技术收集各个容器对应的JVM指标,并通过轻量级的http服务器向外暴露。其中,JVM(java virtual machine,java虚拟机)指标。
然后,电子设备可以使用指标收集代理(vm-agent)将各种来源的容器指标以及JVM指标收集后存储到时序数据库中,等待使用标准查询语言进行检索和展示。
S13、对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
具体地,电子设备在获取到各个容器对应的各类通信日志、容器指标以及JVM指标之后,电子设备可以对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
关于该步骤将在下文进行详细介绍。
本发明实施例提供的容器监控方法,对各个容器的运行情况进行监听,从而可以获取到各个容器对应的运行情况。然后,在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标,保证了获取并记录的各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标的准确性。然后,对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控,保证了对各个容器进行监控的准确性。上述方法可以实现对各个容器对应的各类通信日志、容器指标以及JVM指标进行实时监控,从而保证对各个容器进行监控的准确性。此外,当发生意外情况,各个容器停止运行时,电子设备还可以查询各个容器对应的历史记录中的各类通信日志、容器指标以及JVM指标,从而也可以实现对历史容器进行监控。
在本申请一个实施例中,如图2所示,提供了一种容器监控方法,以该方法应用于电子设备为例进行说明,还包括以下步骤:
S21、根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间。
具体地,电子设备在对各个容器进行监听之后,可以根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间。
S22、获取需要对各个容器进行检测的历史时间。
具体地,电子设备可以接收用户输入的需要对各个容器进行检测的历史时间,也可以接收其他设备发送的需要对各个容器进行检测的历史时间,还可以根据电子设备对应的真实情况,获取需要对各个容器进行检测的历史时间。示例性的,假设电子设备在2022年8月1号10:12时,发生了重启,电子设备需要对2022年8月1号10:12之前的预设时长内的容器进行检测,因此,需要对各个容器进行检测的历史时间为2022年8月1号10:12之前的预设时长内,假设预设时长为1小时,则历史时间为2022年8月1号9:12-10:12。
S23、将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间运行的历史容器。
具体地,电子设备在获取到需要对各个容器进行检测的历史时间之后,电子设备可以将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间内运行的历史容器。
S24、对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障。
具体地,电子设备在确定了历史容器之后,可以根据历史容器对应的标识信息,获取历史容器对应的各类通信日志或/和容器指标或/和JVM指标。然后,电子设备对对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障。
示例性的,假设各个历史容器对应的各类通信日志根据各个通信日志对应的域名请求进行分类。当历史容器中的至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定历史容器发生故障。
假设各个历史容器对应的各类通信日志根据各个通信日志对应的响应时长进行分类。当历史容器中的至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定历史容器发生故障。
本发明实施例提供的容器监控方法,根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间,保证了确定的各个容器对应的运行起止时间的准确性。获取需要对各个容器进行检测的历史时间,将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间运行的历史容器,保证了确定的历史容器的准确性。然后,对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障,保证了确定的各个历史容器发生故障的结果的准确性。上述方法,实现了对历史容器的监控,解决了现有技术中不能对历史容器进行监控,从而导致不能快速确定电子设备故障的问题。
在本申请一个实施例中,如图3所示,提供了一种容器监控方法,以该方法应用于电子设备为例进行说明,包括以下步骤:
S31、对各个容器的运行情况进行监听。
关于该步骤请参见图1对S11的介绍,在此不进行追溯。
S32、在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标。
其中,容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种。
在本申请一种可选的实施方式中,上述S32中的“在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志”,可以包括如下步骤:
S321、在各个容器运行过程中,获取各个容器与其他设备进行通信的通信记录。
具体地,电子设备可以基于与网关之间的连接,获取网关发送的各个容器与其他设备进行通信的通信记录。
S322、对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志。
具体地,电子设备可以利用日志收集器对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志。
示例性的,电子设备可以利用日志收集器将各个通信记录转换成JSON格式,生成通信日志。
S323、根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志。
在本申请一种可选的实施方式中,通信信息包括各个通信日志对应的域名请求,上述S323“根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志”,可以包括如下步骤:
(1)获取各个通信日志对应的域名请求。
具体地,电子设备可以对各个通信日志进行读取,获取各个通信日志对应的域名请求。
(2)根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志的数量。
具体地,电子设备根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志,并确定同一域名请求对应的通信日志的数量。
可选的,电子设备还可以根据同一域名请求对应的通信日志的目标地址不同,再次根据各个通信日志对应的目标地址,对同一域名请求对应的通信日志进行再次聚类,并确定同一域名请求下同一目标地址对应的通信日志的数量。
在本申请另一种可选的实施方式中,通信信息包括各个通信日志对应的响应时长,上述S323“根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志”,可以包括如下步骤:
(1)获取各个通信日志对应的响应时长。
具体地,电子设备可以对各个通信日志进行读取,获取各个通信日志对应的响应时长。
(2)根据各个通信日志对应的响应时长,对各个通信日志进行聚合处理,并确定各类通信日志对应的平均响应时长。
具体地,在获取到各个通信日志对应的响应时长之后,电子设备可以对各个通信日志进行聚合处理,将响应时长相近的通信日志分为一类,并确定各类通信日志对应的平均响应时长。
S33、对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
在本申请一种可选的实施方式中,上述S33“对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控”可以包括如下情况:
其中一种情况,当至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
具体地,电子设备可以获取同一域名请求对应的通信日志的数量,当同一域名请求对应的通信日志的数量超过预设数量阈值时,电子设备确定容器发生故障。
示例性的,在同一域名请求对应的通信日志的数量突增至日常均值的几十甚至上百倍时,电子设备确定容器发生故障,且故障原因可能为目标接口被恶意高频请求。
电子设备可以获取第一预设时间内容器指标的增长率,当第一预设时间内容器指标的增长率大于第一预设增长率时,电子设备确定容器发生故障。示例性的,如图4和图5所示为电子设备对各个容器对应的容器指标进行分析的示意图。
示例性的,当至少一个容器对应的容器指标中的cpu使用率在第一预设时间内的增长率大于第一预设增长率时,电子设备确定容器发生故障,且故障原因可能是Java虚拟机频繁进行垃圾回收或者程序编码错误产生死循环。
示例性的,当至少一个容器对应的容器指标中的内存使用率第一预设时间内的增长率大于第一预设增长率时,电子设备确定容器发生故障,且故障原因可能为高负载应用或定时任务加载大量数据到内存中,因此,需要分配更多内存给容器解决。
电子设备可以获取第二预设时间内JVM指标的增长率,当第二预设时间内JVM指标的增长率大于第二预设增长率时,电子设备确定容器发生故障。其中,第一预设时间内与第二预设时间内可以相同也可以不同,第一预设增长率和第二预设增长率可以相同也可以不同,本申请实施例对第一预设时间内与第二预设时间不做具体限定,对第一预设增长率和第二预设增长率也不做具体限定。也就是说上述三个条件至少满足一个时,就可以确定容器发生故障。
示例性的,当至少一个容器对应的JVM指标中的堆内存老年代使用量第二预设时间内的增长率大于第二预设增长率时,堆内存年轻代垃圾回收机制无法有效回收,直至出现内存溢出错误后应用重启或者触发堆内存老年代回收出现较长时间响应停顿时,电子设备确定容器发生故障,且故障原因可能为编码问题引起的内存泄漏。
示例性的,当至少一个容器对应的JVM指标中的使用的线程数第二预设时间内的增长率大于第二预设增长率时,直到程序提示无法创建新线程而重启,电子设备确定容器发生故障,且故障原因可能为线程池错误使用引起的线程无法回收。
其中另一种情况,当至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
具体地,电子设备可以获取各类通信日志的平均响应时长,当至少一类通信日志的平均响应时长超过对应的预设响应时长时,电子设备确定容器发生故障。
示例性的,当各类通信日志中的服务错误率上升,导致各类通信日志的平均响应时长变长,且当至少一类通信日志的平均响应时长超过对应的预设响应时长时,电子设备确定容器发生故障,且故障原因可能为电子设备产生错误。
电子设备可以获取第一预设时间内容器指标的增长率,当第一预设时间内容器指标的增长率大于第一预设增长率时,电子设备确定容器发生故障。
电子设备可以获取第二预设时间内JVM指标的增长率,当第二预设时间内JVM指标的增长率大于第二预设增长率时,电子设备确定容器发生故障。其中,第一预设时间内与第二预设时间内可以相同也可以不同,第一预设增长率和第二预设增长率可以相同也可以不同,本申请实施例对第一预设时间内与第二预设时间不做具体限定,对第一预设增长率和第二预设增长率也不做具体限定。也就是说上述三个条件至少满足一个时,就可以确定容器发生故障。
本发明实施例提供的容器监控方法,在各个容器运行过程中,获取各个容器与其他设备进行通信的通信记录,保证了获取到的各个容器与其他设备进行通信的通信记录的准确性。然后,对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志,保证了生成的通信日志的准确性。获取各个通信日志对应的域名请求;根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志的数量,实现了可以根据域名请求的不同,将同一域名请求的通信日志合并为一类,且保证了确定的同一域名请求对应的通信日志的数量的准确性。实现了对通信日志进行分类处理,保证了生成的各个容器与其他设备进行通信的各类通信日志的准确性。从而使得电子设备可以对各类通信日志进行分析,而不是对各个通信日志进行分析,因此提高了电子设备对容器进行监控的效率。
此外,电子设备还可以获取各个通信日志对应的响应时长;根据各个通信日志对应的响应时长,对各个通信日志进行聚合处理,并确定各类通信日志对应的平均响应时长,实现了根据通信日志对应的响应时长,对通信日志进行聚类,且保证了确定的所有通信日志对应的平均响应时长的准确性。
然后,电子设备对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。具体地,当至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障,保证了确定的容器发生故障结果的准确性。当至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障,保证了确定的容器发生故障结果的准确性。
为了更好地介绍本申请实施例提供的容器监控方法,如图6所示,本申请实施例提供了一种容器监控方法的流程图。如图6所示,容器调度器可以对各个容器进行调度。电子设备可以通过容器调度客户端对各个容器进行容器事件监听。在各个容器运行过程中,电子设备可以基于与网关之间的连接,获取网关发送的各个容器与其他设备进行通信的通信记录。然后,电子设备可以利用日志收集器将各个通信记录转换成JSON格式,生成通信日志。电子设备可以将通信日志放入消息队列,流式计算引擎对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志。然后,将各类通信日志存储至消息队列。电子设备再将各类通信日志从消息队列存储至指标收集代理。此外,指标收集代理还可以收集各个容器对应的容器指标以及JVM指标。然后,指标收集代理将各个容器对应的各类通信日志、容器指标以及JVM指标保存至时许数据库。然后,电子设备对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
应该理解的是,虽然图1-3以及图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3以及图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
如图7所示,本实施例提供一种容器监控装置,包括:
监听模块41,用于对各个容器的运行情况进行监听;
第一获取模块42,用于在各个容器运行过程中,获取并记录各个容器与其他设备进行通信的各类通信日志以及各个容器对应的容器指标以及JVM指标;其中,容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种;
第一分析模块43,用于对各个容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果对各个容器进行监控。
在本申请一个实施例中,如图8所示,上述容器监控装置,还包括:
第一确定模块44,用于根据对各个容器进行监听的结果,确定各个容器对应的运行起止时间;
第二获取模块45,用于获取需要对各个容器进行检测的历史时间;
第二确定模块46,用于将历史时间与各个容器对应的运行起止时间进行对比,确定在历史时间运行的历史容器;
第二分析模块47,用于对各个历史容器对应的各类通信日志或/和容器指标或/和JVM指标进行分析,根据分析结果,确定各个历史容器发生故障。
在本申请一个实施例中,上述第一获取模块42,具体用于在各个容器运行过程中,获取各个容器与其他设备进行通信的通信记录;对各个通信记录解析,并对各个通信记录进行格式转换,生成通信日志;根据各个通信日志对应的通信信息,对各个通信日志进行聚合处理,生成各个容器与其他设备进行通信的各类通信日志。
在本申请一个实施例中,上述第一获取模块42,具体用于获取各个通信日志对应的域名请求;根据各个通信日志对应的域名请求,对各个通信日志进行聚合处理,确定同一域名请求对应的通信日志的数量。
在本申请一个实施例中,上述第一获取模块42,具体用于获取各个通信日志对应的响应时长;根据各个通信日志对应的响应时长,对各个通信日志进行聚合处理,并确定各类通信日志对应的平均响应时长。
在本申请一个实施例中,上述第一分析模块43,具体用于当至少一类通信日志的数量超过预设数量阈值时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
在本申请一个实施例中,上述第一分析模块43,具体用于当至少一类通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内容器指标的增长率大于第一预设增长率或/和第二预设时间内JVM指标的增长率大于第二预设增长率时,确定容器发生故障。
关于容器监控装置的具体限定以及有益效果可以参见上文中对于容器监控方法的限定,在此不再赘述。上述容器监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明实施例还提供一种电子设备,具有上述图7所示和图8所示的容器监控装置。
如图9所示,图9是本发明可选实施例提供的一种电子设备的结构示意图,如图9所示,该电子设备可以包括:至少一个处理器51,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(Display)、键盘(Keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图7或图8所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线52可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器54还可以包括上述种类的存储器的组合。
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本申请图1至3实施例中所示的容器监控方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的容器监控方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种容器监控方法,其特征在于,包括:
对各个容器的运行情况进行监听;
在各个所述容器运行过程中,获取并记录各个所述容器与其他设备进行通信的各类通信日志以及各个所述容器对应的容器指标以及JVM指标;其中,所述容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,所述JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种;
对各个所述容器对应的各类所述通信日志或/和所述容器指标或/和所述JVM指标进行分析,根据分析结果对各个所述容器进行监控。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据对各个所述容器进行监听的结果,确定各个所述容器对应的运行起止时间;
获取需要对各个所述容器进行检测的历史时间;
将所述历史时间与各个所述容器对应的所述运行起止时间进行对比,确定在所述历史时间运行的历史容器;
对各个所述历史容器对应的各类所述通信日志或/和所述容器指标或/和所述JVM指标进行分析,根据分析结果,确定各个所述历史容器发生故障。
3.根据权利要求1所述的方法,其特征在于,所述在各个所述容器运行过程中,获取并记录各个所述容器与其他设备进行通信的各类通信日志,包括:
所述在各个所述容器运行过程中,获取各个所述容器与其他设备进行通信的通信记录;
对各个所述通信记录解析,并对各个所述通信记录进行格式转换,生成通信日志;
根据各个所述通信日志对应的通信信息,对各个所述通信日志进行聚合处理,生成各个所述容器与其他设备进行通信的各类所述通信日志。
4.根据权利要求3所述的方法,其特征在于,所述通信信息包括各个所述通信日志对应的域名请求,所述根据各个所述通信日志对应的通信信息,对各个所述通信日志进行聚合处理,生成各个所述容器与其他设备进行通信的各类所述通信日志,包括:
获取各个所述通信日志对应的域名请求;
根据各个所述通信日志对应的域名请求,对各个所述通信日志进行聚合处理,确定同一所述域名请求对应的所述通信日志的数量。
5.根据权利要求3所述的方法,其特征在于,所述通信信息包括各个所述通信日志对应的响应时长,所述根据各个所述通信日志对应的通信信息,对各个所述通信日志进行聚合处理,生成各个所述容器与其他设备进行通信的各类所述通信日志,包括:
获取各个所述通信日志对应的响应时长;
根据各个所述通信日志对应的响应时长,对各个所述通信日志进行聚合处理,并确定各类所述通信日志对应的平均响应时长。
6.根据权利要求4所述的方法,其特征在于,所述对各个所述容器对应的各类所述通信日志或/和所述容器指标或/和所述JVM指标进行分析,根据分析结果对各个所述容器进行监控,包括:
当至少一类所述通信日志的数量超过预设数量阈值时或/和第一预设时间内所述容器指标的增长率大于第一预设增长率或/和第二预设时间内所述JVM指标的增长率大于第二预设增长率时,确定所述容器发生故障。
7.根据权利要求5所述的方法,其特征在于,所述对各个所述容器对应的各类所述通信日志或/和所述容器指标或/和所述JVM指标进行分析,根据分析结果对各个所述容器进行监控,包括:
当至少一类所述通信日志的平均响应时长超过对应的预设响应时长时或/和第一预设时间内所述容器指标的增长率大于第一预设增长率或/和第二预设时间内所述JVM指标的增长率大于第二预设增长率时,确定所述容器发生故障。
8.一种容器监控装置,其特征在于,包括:
监听模块,用于对各个容器的运行情况进行监听;
第一获取模块,用于在各个所述容器运行过程中,获取并记录各个所述容器与其他设备进行通信的各类通信日志以及各个所述容器对应的容器指标以及JVM指标;其中,所述容器指标包括CPU使用率、内存用量、内存使用率中的至少一种,所述JVM指标包括堆内存、Eden Space、GC耗时、GC次数、使用的线程数、加载的类数量中的至少一种;
第一分析模块,用于对各个所述容器对应的各类所述通信日志或/和所述容器指标或/和所述JVM指标进行分析,根据分析结果对各个所述容器进行监控。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的容器监控方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的容器监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169476.9A CN115525392A (zh) | 2022-09-23 | 2022-09-23 | 容器监控方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211169476.9A CN115525392A (zh) | 2022-09-23 | 2022-09-23 | 容器监控方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525392A true CN115525392A (zh) | 2022-12-27 |
Family
ID=84700565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211169476.9A Pending CN115525392A (zh) | 2022-09-23 | 2022-09-23 | 容器监控方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525392A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107859A (zh) * | 2023-04-11 | 2023-05-12 | 北京宝兰德软件股份有限公司 | 容器故障预测方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-23 CN CN202211169476.9A patent/CN115525392A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107859A (zh) * | 2023-04-11 | 2023-05-12 | 北京宝兰德软件股份有限公司 | 容器故障预测方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426292B (zh) | 一种游戏日志实时处理系统及方法 | |
US9672085B2 (en) | Adaptive fault diagnosis | |
CN111143163B (zh) | 数据监控方法、装置、计算机设备和存储介质 | |
US20120297393A1 (en) | Data Collecting Method, Data Collecting Apparatus and Network Management Device | |
WO2017114152A1 (zh) | 一种业务拨测方法、装置以及系统 | |
US10657099B1 (en) | Systems and methods for transformation and analysis of logfile data | |
CN111563014A (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
US10528456B2 (en) | Determining idle testing periods | |
CN110147470B (zh) | 一种跨机房数据比对系统及方法 | |
CN109684052A (zh) | 事务分析方法、装置、设备及存储介质 | |
US9600523B2 (en) | Efficient data collection mechanism in middleware runtime environment | |
CN112559285A (zh) | 基于分布式服务架构的微服务监控方法及相关装置 | |
CN109409948B (zh) | 交易异常检测方法、装置、设备及计算机可读存储介质 | |
CN111124830A (zh) | 一种微服务的监控方法及装置 | |
CN111339052A (zh) | 一种非结构化日志数据处理方法及装置 | |
CN113835918A (zh) | 一种服务器故障分析方法及装置 | |
CN113760677A (zh) | 异常链路分析方法、装置、设备及存储介质 | |
CN115525392A (zh) | 容器监控方法、装置、电子设备及存储介质 | |
WO2022088803A1 (zh) | 基于云环境的系统信息分析方法、装置、电子设备及介质 | |
CN114064402A (zh) | 服务器系统监控方法 | |
CN110011845B (zh) | 日志采集方法及系统 | |
CN112543127A (zh) | 一种微服务架构的监控方法及装置 | |
CN116260703A (zh) | 分布式消息服务节点cpu性能故障自恢复方法及装置 | |
CN114490237A (zh) | 基于多数据来源的运维监测方法及装置 | |
CN113900898B (zh) | 一种数据处理系统、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |