CN110476154A - 用于数据收集的代理服务器设备和方法 - Google Patents
用于数据收集的代理服务器设备和方法 Download PDFInfo
- Publication number
- CN110476154A CN110476154A CN201880021681.6A CN201880021681A CN110476154A CN 110476154 A CN110476154 A CN 110476154A CN 201880021681 A CN201880021681 A CN 201880021681A CN 110476154 A CN110476154 A CN 110476154A
- Authority
- CN
- China
- Prior art keywords
- data
- proxy server
- client agent
- manager
- plug
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
提供一种代理服务器处理设备和关联方法,用于接收来自管理器的控制信号,所述控制信号基于所述管理器接收的用户输入。此外,将所述控制信号发送到客户端代理,以控制从至少一个节点收集数据和通过至少一个信道将数据传送到目的地的一个或多个方面。所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
Description
本申请要求于2017年4月12日递交的发明名称为“用于数据收集的代理服务器设备和方法”的第15/486,151号美国非临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本发明涉及数据收集系统,尤其是使用基于客户端代理的架构收集数据。
背景技术
传统上,数据收集工具(例如,系统/应用日志数据收集器、性能监控系统、网络监控系统等)专为单一目的而设计,具有中等可扩展性。因此,当从不同的来源(可能是出于不同的目的)收集数据时,通常需要不同的工具集。总之,这些工具不仅会消耗大量系统资源,还会给系统管理员带来部署和管理负担。
发明内容
提供了一种代理服务器处理设备,包括存储指令的非瞬时性存储器以及与所述非瞬时性存储器通信的一个或多个处理器。所述一个或多个处理器执行所述指令,以根据管理器接收的用户输入从所述管理器接收控制信号。此外,将所述控制信号发送到客户端代理,以控制从至少一个节点收集数据和通过至少一个信道将数据传送到目的地的一个或多个方面。所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
此外,还提供了一种计算机实现的方法。从管理器接收控制信号,其中所述控制信号基于所述管理器接收的用户输入。此外,将所述控制信号发送到客户端代理,以控制从至少一个节点收集数据和通过至少一个信道将数据传送到目的地的一个或多个方面。所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
还提供了一种计算机程序产品,包括存储在非瞬时性计算机可读介质上的计算机可执行指令,当处理器执行所述指令时指示所述处理器:接收来自管理器的控制信号,所述控制信号基于所述管理器接收的用户输入。此外,将所述控制信号发送到客户端代理,以控制从至少一个节点收集数据和通过至少一个信道将数据传送到目的地的一个或多个方面。所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
可选地,在上述任一实施例中,所述一个或多个方面可以包括在多个目的地中选择所述数据的目的地。
可选地,在上述任一实施例中,所述一个或多个方面可以包括在多个信道中选择所述至少一个信道。
可选地,在上述任一实施例中,所述控制信号还可以用于在将所述数据传送到所述目的地之前控制从所述至少一个节点收集的数据处理的一个或多个方面。可选地,所述处理可以包括所述数据的采样、加密和/或过滤。
可选地,在上述任一实施例中,所述代理服务器处理设备与所述客户端代理的通信可以比所述代理服务器处理设备与所述管理器的通信更为频繁。
可选地,在上述任一实施例中,所述客户端代理向所述管理器发送初始化信号,所述管理器为响应所述初始化信号指示所述客户端代理与所述代理服务器处理设备通信。可选地,所述管理器基于所述代理服务器处理设备的可用性和/或位置,指示所述客户端代理与所述代理服务器处理设备通信。
可选地,在上述任一实施例中,可以接收来自所述客户端代理的状态信息,并将所述状态信息发送到所述管理器,其中所述控制信号至少部分基于所述状态信息。
可选地,在上述任一实施例中,所述管理器根据与所述代理服务器处理设备通信的客户端代理的数量,执行与所述代理服务器处理设备相关的负载平衡。
可选地,在上述任一实施例中,所述软件组件可以能够包括不同类型的软件组件。
可选地,在上述任一实施例中,所述软件组件可以包括插件。这类插件包括第一插件,用于所述数据收集;以及第二插件,用于通过所述至少一个信道向所述目的地传送所述数据。此外,这些插件还可以包括第三个插件,用于在将所述数据传送到所述目的地之前处理从所述至少一个节点收集的数据。
上述实施例的上述功能中的一个或多个功能可以实现通过单个客户端代理对多个数据收集软件组件(例如,插件等)进行控制,从而通过管理器提供更简化的插件管理和控制方法。在另一些实施例中,将一个或多个代理服务器置于上述管理器和多个上述客户端代理之间,以便允许(在一些实施例中)这类客户端代理和代理服务器之间进行更持久的通信,而不一定需要与所述管理器进行这类额外持久的通信,以适应在一些实施例中对所述管理器进行更远程的部署。进而,这又可以对系统进行更高效/更有效的管理且更容易扩展,否则在缺乏这类功能的系统中会摒弃这类操作。应注意,前述的潜在优点仅出于说明的目的而进行阐述,并且不应被解释为以任何方式进行限制。
附图说明
图1示出了根据一实施例的用于数据收集的系统;
图2示出了根据另一实施例的用于数据收集的系统;
图3示出了根据另一实施例的用于数据收集的方法;
图4示出了根据一实施例的用于收集数据的客户端代理软件框架;
图5示出了根据另一实施例的用于收集数据的插件堆栈;
图6示出了根据一实施例的代理服务器;
图7示出了根据一实施例的管理器;
图8示出了根据一实施例的映射服务器;
图9示出了根据一实施例的设置图形用户界面(graphical user interface,简称GUI)的中央控制系统;
图10示出了根据一实施例的用于管理系统的示例GUI;
图11示出了根据一实施例的数据收集系统;
图12是根据一实施例的网络架构图;
图13是根据一实施例的示例性处理设备的示图。
具体实施方式
此处描述了各种可能的实施例,这些实施例能够通过单个客户端代理对多个数据收集软件组件(例如,插件等)进行控制,从而通过管理器提供更简化的插件管理和控制方法。在另一些实施例中,将一个或多个代理服务器置于上述管理器和多个上述客户端代理之间,以便允许(在一些实施例中)这类客户端代理和代理服务器之间进行更持久的通信,而不一定需要与所述管理器进行这类额外持久的通信,以适应在一些实施例中对所述管理器进行更远程的部署。
图1示出了根据一实施例的用于数据收集的系统100。如图所示,所述系统100包括多个客户端代理进程102(以下简称“代理服务器102”),每个客户端代理进程102都以插件104的形式与多个软件组件进行通信,所述插件104又与多个节点105(例如服务器、用户设备、嵌入式设备等)进行通信,用于从节点105中收集数据。所述系统100还包括管理器进程108(以下简称“管理器108”),所述管理器进程108通过至少一个网络110(例如互联网、广域网(wide area network,简称WAN)、路由器/交换机网络等)和一个或多个代理服务器106与所述客户端代理102通信。
虽然上述组件显示为彼此直接通信(例如,通过使用进程间通信发送消息),但应注意,上述通信可以间接通过其它(未示出)组件进行。此外,虽然显示为离散,但可以根据需要集成所述客户端代理102、插件104和所述节点105(以及所示组件中的任何其它组件)。但是,应注意,上述每个组件可包括能够执行以下描述的功能中的一项或多项功能的任何软件和/或硬件(将在下文介绍其示例)。现在将针对上述每个组件、操作及其互操作性阐述更多信息。
在使用中,所述客户端代理102均用于从所述相应的节点105收集数据,利用所述插件104,并通过至少一个信道将此类数据传送到目的地(将在后续实施例的描述中详细说明)。在本说明书的上下文中,此类数据可以指包括、描述和/或源自相应节点105的操作的任何信息。在各种实施例中,此类数据可涉及处理器负载、内存或磁盘使用率、端口状态、网络统计、日志监控和/或相应节点105操作的任何其它方面。
同样,在本说明书中,上述客户端代理102可以分别包括能够使用多个软件组件(例如插件104)收集/传送数据的任何软件和/或硬件。此外,在本说明书中,所述软件组件可以包括任何软件和/或硬件,这些软件和/或硬件用于自定义通过所述客户端代理102收集数据和传送此类数据的一个或多个方面。例如,在各种实施例中,此方面可涉及多个目的地中的一个目的地(将所述数据传送到该目的地)、多个信道中的至少一个信道(通过该信道传送所述数据)和/或处理(例如,采样、过滤、加密等)从节点105收集的数据,然后再将所述数据传送到所述目的地。有关此类目的地、信道等示例的更多信息将在后续实施的说明中详细说明
在一个可能的实施例中,所述软件组件(例如,插件104等)可以包含不同类型。例如,在一个可选实施例中,所述软件组件(例如,插件104等)可以由不同的实体(例如供应商、开发人员等)开发和/或用于不同的目的(例如,不同的数据收集目的)。但是,在其它实施例中,所述软件组件(例如,插件104等)可由单一实体和/或出于相同/类似目的开发,但仍能在所述数据收集和传送方面进行定制。无论如何,所述软件组件(例如,插件104等)可用于以不同的方式(相对于彼此)收集和/或传送数据。
为根据一个可能的实施例实现此目的,所述软件组件可以具体采取插件104的形式,在本说明书的上下文中,所述插件104可以包括可执行软件组件,所述可执行软件组件用于通过应用程序接口(application program interface,简称API)与相应客户端代理102通信并进一步定制相应客户端代理102的功能。在一些可能的实施例中,此类可执行软件组件可以包括但不限于二进制文件、库、脚本(例如,外壳脚本、Python脚本、JavaScript等)和/或jar文件。在其它可选实施例中,所述插件104可通过API注册到所述对应的客户端代理102。可选地,由于所述插件104的添加、删除和/或更新,此类注册可以是动态的。通过此设计,在执行相应的客户端代理102时,此客户端代理102可以找到任何和所有注册的插件104,并执行所述插件104,以使此执行所产生的其它功能可以定制(例如增强、扩展等)所述客户端代理102的操作,将在下文详细说明。
为清楚起见,图1中所示的本实施例的其余描述将假设上述软件组件具体包括插件104,并且理解在其它实施例中,其它软件组件(例如扩展、加载项等)可以代替/增加所述插件104。
在运行期间,也可以配置所述插件104以不同方式运行的上述方面(例如,已选择、已控制等)由用户通过所述管理器108控制,以便所述不同插件104可以以更流畅的方式进行控制。在各种实施例中,此类配置可以在初始化期间(例如,系统设置)和/或在运行时间期间进行,用于即时配置或重新配置。为实现此目的,所述管理器108可以包括用于接收用户输入109的任何硬件和/或软件,以基于此用户输入109,控制从所述节点105收集所述数据的上述方面以及将所述数据传送到所述目的地,并进一步生成控制信号(例如,以传输消息或其它进程间通信的形式)。在本说明书中,此类用户输入109可包括通过任何时间接收的任何本地或远程接口(例如,在初始化、实时、操作后等之前)的任何输入。进一步地,在各种实施例中,所述控制信号可以包括命令、指令或任何其它信令,包括但不限于启动数据收集的启动命令、停止数据收集的停止命令、初始化软件和/或配置更新等的命令。
为了支持所述管理器108、所述客户端代理102和所述插件104(通过所述各自客户端代理102)之间的通信,所述代理服务器106(以下简称“代理服务器106”)可以包括用于在所述各自客户端代理102和所述管理器108之间部署以与其进行通信的任何硬件和/或软件。在各种实施例中,此类通信可以通过耦合来实现,该耦合可以采取任何形式,包括但不限于直接耦合(例如,不具有它们之间的任何组件)、间接耦合(例如,具有它们之间的一个或多个组件)、本地网络和/或广域网。如上所述,图1中所示的实施例涉及所述管理器108和所述代理服务器106之间基于网络110的连接,以及所述代理服务器106和所述相应客户端代理102(以及关联的插件104)之间的更直接/本地连接。
为了支持所述管理器108对所述客户端代理102和/或插件104的控制,所述代理服务器106可用于接收所述管理器108生成的控制信号,并根据所述控制信号控制从所述节点105收集所述数据的上述方面以及向所述数据的目的地传送所述数据。在一个实施例中,这可以通过简单地中继此类控制信号和/或在将此类控制信号传送到所述客户端代理102(以及通过所述相应客户端代理102传送到所述插件104)之前将其进行时移或聚合来实现。在其它实施例中,可以使用所述控制信号的其它处理,包括但不限于在中继所述控制信号之前重新格式化、转换等信号。如下文将阐述的,所述客户端代理102和所述管理器108(通过所述代理服务器106)之间可以发生其它信令,包括向所述管理器108提供所述客户端代理102(和关联的插件104)的状态更新。
无论如何,作为一个可能的选项,所述客户端代理102和所述代理服务器106之间的通信可以比所述管理器108和所述代理服务器106之间的通信更频繁(例如,持久)。通过此设计,所述管理器108可以通过一个或多个不可靠/较慢的网络更远程(并且可能位于中心)定位,同时所述代理服务器106仍允许更快速地从所述客户端代理102和/或插件104收集数据。
因此,在一些可选实施例中,所述代理服务器106减轻从所述管理器108与所述客户端代理102通信的负担,并优化所述代理服务器106和所述管理器108之间的网络流量以实现可扩展性。在需要大规模客户端代理部署的这种可能实施例中,所述代理服务器106可以是水平可扩展的,因此,可以部署为重复服务器集群,以实现客户端代理负载分配和高可用性。此类代理服务器106集群可以进一步部署在任何地方,而不受地理位置限制(例如,在全球的数据中心等),以满足接近客户端代理102的需求。在这种意义上,代理服务器106可用作将所述系统100的覆盖范围扩展到待收集数据所在位置的基础设施。
根据用户的需求,现在将阐述关于在各种可选结构和应用中可以或不可以实现所述方法的更多说明性信息。应注意,下面的信息是为了说明的目的而提出的,不应该被解释为以任何方式进行限制。任何以下特征可以可选地进行合并,不论是否已描述其它特征。
图2示出了根据另一实施例的用于数据收集的系统200。可选地,所述系统200可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,在一个可能的实施例中,所述系统200的任何功能都可以在图1的系统100的环境中实现(或反之亦然)。但是,应注意,所述系统200可以在其它合适的环境中实现。
与图1的系统100类似,所述系统200包括多个客户端代理202,每个客户端代理202均设置插件204形式的多个软件组件,用于从相应节点205收集数据。此外,此类插件204也可以在以下方式上有所不同:收集所述数据的方式(例如,数据收集类型、此类收集的定时/速度等)、处理所述数据的方式(例如采样、过滤、加密等)和/或所述数据通过一个或多个信道214(例如,输出数据的特定目的地216、输出所述数据的特定信道214等)与一个或多个目的地216共享的方式。
如图所示,所述插件204收集的数据由所述相应的客户端代理202通过由所述信道214和目的地216组成的数据面进行通信。在各种实施例中,此类目的地216可包括所述数据的用户、管理员和/或人/机器消费者的任何节点。此外,所述目的地216可以与与客户端代理202和插件204关联的逻辑应用级控制面分离/不同。然而,所述信道214可以包括任何介质,这些介质可用于适应由所述不同插件204通过所述各自客户端代理202收集和传送的数据类型的通信。例如,在一个可能的实施例中,所述信道214可包括用于收集来自不同系统和数据源(例如KAFKA、REDIS、HDFS等)的事件日志的日志聚合信道。
此外,上述控制面还提供多个统一监控集群208和代理服务器206形式的管理器。在使用中,这种控制面通过将控制信号210传送到所述客户端代理202来实现对所述代理服务器202(以及利用所述插件204进行数据收集/通信的方式)的控制。可选地,所述控制面还可以通过所述代理服务器206启用从所述客户端代理202到所述群集208的状态报告。在一个实施例中,所述代理服务器206可以使用套接字(例如,内部终端等)完成此类通信。这又可以实现对所述客户端代理202进行更明智和/或更智能的控制。
通过此设计,所述控制面可以通过设置有此类插件204的相应客户端代理202来管理此类控件,从而更有效地控制数据收集、处理和/或通过所述不同插件204输出的数据。在一个可能的实施例中,所述系统100可因此避免使用执行插件204功能的多个不同客户端代理(未显示),在这些不同客户端代理中,每个都需要单独的控制/管理器。此外,代理服务器206可以实现与相应客户端代理202的更多本地和/或持久连接,以便所述群集208可以通过较慢的网络进行更远程的部署,而不必直接在所述客户端代理202和所述群集208之间进行较慢、较不可靠的连接。
为此目的,一个实体(例如公司、个人等))可以部署与一个或多个客户站点(包括相应的节点205)相关的客户端代理202、插件204和代理服务器206,如图所示。此类部署还可以使此类客户能够监控和/或控制所述系统200从所述节点205收集所述数据的方式,并通过客户指定的信道214将所述数据传送到客户指定的目的地216。因此,所述客户可以更有效和/或更高效地监控其站点处的节点205。
图3示出了根据另一实施例的数据收集方法300。可选地,所述方法300可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,在一个可能的实施例中,可以在图1的系统100和/或图2的系统200的环境中执行所述方法300的任何功能。但是,应理解,所述方法300可以在其它合适的环境中实现。
如图所示,所述方法300涉及一个或多个客户端代理302、代理服务器304(例如,图1的代理服务器106、图2的代理服务器206)和管理器306之间的交互。在其中一个客户端代理302的初始化操作1(例如,在启动或安装新客户端代理时)之后,所述客户端代理302将初始化信号(例如,请求等)发送到所述管理器306,如操作2所示。此请求的目的是向所述管理器306指示所述客户端代理302已准备好开始数据收集,并为其分配一个代理服务器304以支持此类数据收集。
作为响应,所述管理器306选择所述代理服务器304为所述客户端代理302提供服务。请参阅操作3。在一个实施例中,所述管理器306可以基于所述代理服务器304的可用性和/或位置选择所述代理服务器304。例如,如果所述代理服务器304在与所述客户端代理302的预定阈值距离内,则所述代理服务器304是所述客户端代理302的最近代理服务器,和/或所述代理服务器304具有足够的网络和/或处理带宽来为所述客户端代理302(除已服务的任何代理服务器之外)提供服务,则所述管理器306可以选择所述代理服务器304为所述客户端代理302提供服务。凭借这种能力,所述管理器306可以基于例如与所述代理服务器304通信的客户端代理302的数量来执行与代理服务器相关的负载平衡。
为此目的,所述客户端代理302均用于向所述管理器306发送(可能直接发送)所述初始化信号,而所述管理器306用于为响应所述初始化信号,指示所述客户端代理302(在操作4中)与适当的代理服务器304通信。为实现此目的,在操作5中,所述客户端代理302可以与所述代理服务器304连接并建立持续通信线路(例如,通过身份验证、验证等),在一个实施例中,所述客户端代理302可以在整个数据收集持续时间内保持(以最小频率)该持续通信线路。
在所述客户端代理302和所述代理服务器304之间建立通信后,可以在操作6中启动数据收集、处理和输出(通过适当的信道)。关于此类数据收集,在操作7中,所述客户端代理302均用于将状态信息发送到所述代理服务器304,以便由所述管理器在操作8-9中进行中继和存储。
通过此设计,可以根据所述状态信息控制所述客户端代理302。例如,在一个实施例中,所述管理器306可以设置由操作10中接收的用户输入产生的手动创建和/或更新的规则。此外,此类用户输入和/或规则可能会导致在操作11中发出一个或多个控制信号,以调整每个操作12的代理服务器操作(例如重新分配代理服务器),以及将操作13中的一个或多个控制信号中继至所述客户端代理302,以调整数据收集的任何期望的方面(例如收集、处理、输出等)。请参阅操作14。
图4示出了根据一实施例的用于收集数据的客户端代理软件框架400。可选地,所述客户端代理软件框架400可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述客户端代理软件框架400可以分别在图1和2的客户端代理102或202的情景中实现。但是,应理解,所述客户端代理软件框架400可以在其它合适的环境中实现。
如图所示,所述客户端代理软件框架400可以通过包含多个插件421的软件插件框架进行扩展(例如,分别参见图1和图2的插件104和204等)。所述客户端代理软件框架400与这种插件框架配合使用,该插件框架可以包括不同的插件类型,例如监控插件422、日志插件424、第三方网络插件426和用户开发的插件428,这些插件仅作为示例。
作为另一种可能性,可以提供一个插件模板,以允许对其操作进行自定义。在一个可能的实施例中,此类插件模板可包括用户可使用的API模板,用于编写自己的插件。使用此API模板,用户可以确保其插件的任何传入/传出通信(例如呼叫等)将具有适当的格式并遵循适当的协议,以确保可以与相应的客户端代理进行互操作。凭借实现此API的新插件代码,任何新插件都将由相应的客户端代理兼容、可管理和可运行。
为实现此目的,所述客户端代理软件框架400包括插件管理器404、线程工厂406、进程管理器408和计时器416。所述插件管理器404负责管理所述插件421的加载,并根据模板中编码的配置数据将其绑定到与一个或多个数据信道相关联的处理堆栈423中,该模板描述了构建客户端代理软件框架400启动时所需的所有参数。如后文所述,每个完整的监控任务包括三个操作:收集、处理(可选)和输出,其中每个操作都由不同的插件执行。通过此设计,所有插件都可以折叠为这三个类别,并组织为三个相应的堆栈(即层)。对于完整的监控任务配置,从与收集相关的类别/堆栈中至少选择一个插件,从与输出相关的类别/堆栈中至少选择一个插件,从与进程相关的类别/堆栈中至少选择一个插件。因此,此类选择的插件可以由配置文件关联在一起(例如编译、拼接在一起等),以便形成所述处理堆栈423,所述处理堆栈423共同规定了收集哪些数据、如何处理这些数据以及在何处输出这些数据。
在一个可能的实施例中,此类配置文件可以是JavaScript对象标记(JavaScriptObject Notation,简称JSON)文件,其中包含指定所述客户端代理软件框架400中的多个线程的参数、插件描述符列表(例如,包括插件标识符、插件名称、插件版本和/或插件说明的插件信息)、插件类型(例如,共享库、外部应用)、插件模块列表以及相应的执行顺序等。所述线程工厂406是一个用于创建可配置的计算节点线程的设施,以便在客户端代理启动时执行插件。此外,所述计时器416是向所述插件421提供时间敏感任务的定时服务的设施。
转至所述流程管理器408,此类组件控制总体插件执行。在执行此操作时,所述进程管理器408从现有线程池中调度计算节点线程,以便按照所述中央控制计时器416控制的常规时间间隔执行所述插件421。在一个实施例中,每个插件421可以包括状态机,该状态机可以处于活动、暂停或错误状态(或该事件的任何其它状态)。在所述活动状态下,所述插件421针对待执行的工作检查输入队列。如果所述队列中有消息,所述插件421会调度所述消息,执行逻辑执行(即,数据收集),然后根据定义所述插件堆栈423的数据信道映射将所述处理后的消息传递到所述插件430和/或432的下一堆栈层的输入队列。在上述暂停或错误状态下,所述插件421不执行任何操作。此外,使用通信协议418通过代理服务器(例如,图1的代理服务器106)将所述插件状态报告给管理器420(例如,图1的管理器108),以反映客户端代理和插件的执行状态。在一些实施例中,所述插件421可设计为非阻塞状态机器,以提高所述客户端代理软件框架400的性能。
在各种实施例中,插件421(或其组件)可以有三种类型:输入(例如收集、入口)类型插件425、输出(例如出口)类型插件434和/或处理类型插件429。所述输入类型插件425可用于从数据源(例如日志文件、系统指标、数据库等)收集数据。此外,可以将所述输出类型插件434用于通过各种数据通道将输入数据转发到临时在途存储器(例如,缓存)或最终存储目的地。此类最终目的地可以是用于向相关消息代理服务器输出数据的特定客户端(例如,KAFKA客户端)、用于使用REST应用程序接口(application program interface,简称API)将数据发送到目的地的超文本传输协议(hypertext transfer protocol,简称HTTP)客户端、用于将数据发送到REDIS密钥值缓存的REDIS客户端等。通过此设计,所述插件421可以灵活排列,从而提供能够满足各种监控任务的可扩展框架。
继续参考所述插件421,可以将所述处理类型插件429用于在通过所述输出类型插件434转发之前进行数据处理。此类处理可以采取任何形式,包括但不限于过滤、加密、采样等。例如,如图4所示,此类进程类型插件429可以包括数据过滤器插件430和数据采样器插件432的组合。因此,所述客户端代理软件框架400允许所述软件插件421可堆叠,以便根据应用要求形成完整的数据收集、处理和转发堆叠。此外,此类插件421可在初始化期间配置,并在运行时进一步重新配置。
可选地,可以通过由固定大小的消息报头和随附的可变长度数据(如果有)组成的消息协议在所述插件421(或其部分)之间传输数据。通过所述消息报头,消息可以编码为控制或数据消息。此外,所述插件421分别维护消息队列,以从所述堆叠423中的一个或多个上层模块接收入口消息。在一个可能的实施例中,从所述堆栈423的角度来看,所述数据方向可以是从所述上模块到所述下模块的单向。在其它实施例中,可以考虑双向通信。
图5示出了根据另一实施例的用于收集数据的插件堆栈500。可选地,所述插件堆栈500可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,可以在图4的插件堆栈423的环境中实现所述插件堆栈500。但是,应理解,所述插件堆栈500可以在其它合适的环境中实现。
如图所示,所述插件堆栈500包括采用数据生成器502形式与采用数据处理器504形式的进程类型插件通信的输入类型插件,而所述数据处理器504又与采用数据宿506形成的输出类型插件通信。所述插件堆栈500的这些插件设置有输入队列503,以接收来自上游插件的消息,还设置有事件队列(event queue,简称EVQ)505,以接收输入/输出(input/output,简称I/O)完成消息508,所述消息508指示下游对消息处理的完成时间。在各种实施例中,所述I/O完成消息508可提供各种指示,包括但不限于完成指示、错误指示、重新发送指示和/或无数据指示等。
在执行过程中,所述插件堆栈500由线程池中的可用线程通过线程工厂(例如,图4的线程工厂406)执行。运行后,所述插件堆栈500会从输入消息队列中调度用于执行的消息。通常,此类消息队列处理到所述队列中没有消息为止。但是,开发人员可以选择强制将最大数量的消息处理后再将底层处理器的控制交给其它插件。但是,每条消息可以处理到完成为止,此时,将所述消息传递到下一个插件模块的入口消息队列503,以便进一步处理或转发到目的地消息代理服务器。
在使用中,队列中的消息可以按先入先出(first-in-first-out,简称FIFO)顺序处理,以保留入口数据和事件序列的顺序。此外,所述数据生成器502或底层处理器可以按需动态分配消息,并将消息传递到所述插件堆栈500中较低的其它插件。应注意,当插件完成对接收到的消息的处理时,此类插件可以将所述消息存储在所述插件堆栈500中的下一个插件的消息队列中以进行进一步处理;或者,如果要丢弃所述消息,则将所述I/O完成消息508发送到所述源插件,以向所述系统释放消息缓冲区,如图5所示。还应注意,所述数据生成器502可以从设计为与其合作的任何数据源中提取数据。
图6示出了根据一实施例的代理服务器600。可选地,所述代理服务器600可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述代理服务器600可以分别在图1和图2的代理服务器106或所述代理服务器206的环境中实现。但是,应理解,所述代理服务器600可以在其它合适的环境中实现。
如图所示,所述代理服务器600部署在管理器612(例如,图1的管理器108)和客户端代理614(例如,图1的客户端代理102)之间。所述代理服务器600用于在所述客户端代理614附近提供管理系统终端,以优化所述客户端代理614和所述管理器612之间的流量,并可以对所述客户端代理614进行直接控制。通过此设计,在某些实施例中,整个系统的可扩展性和响应能力得到增强。
所述代理服务器600还提供两种服务。图形用户界面(graphical userinterface,简称GUI)服务604(在GUI会话管理器606的控制下)允许用户在所述管理器612中发出命令,并确保在所述客户端代理614中中继和实现这些命令。此外,客户端代理服务610(在客户端代理会话管理器606的控制下)允许所述客户端代理614连接到所述代理服务器600以响应命令和报告客户端代理状态更新。
所述代理服务器600还使用数据库管理(database management,简称DBM)接口611来使用DMB服务616,以便将客户端代理状态报告转发给管理器612。虽然所述DMB服务616显示为与所述管理器612分开,但应注意,在各种实施例中(将在下文描述),此类DMB服务616可以是所述管理器612的组件。
如前所述,在启动时,所述客户端代理614尝试在其附近找到所述代理服务器600,以便连接到所述代理服务器600。为实现此操作,可以使用映射服务查找最近的代理服务器,以连接到所述代理服务器。此最接近的代理服务器可以是指定为服务于所述客户端代理614的预配置代理服务器群集。除了向所述客户端代理614提供代理服务器位置服务外,这种映射服务还实现负载分配算法,以便将客户端代理连接负载分配到可用的代理服务器(例如,所述代理服务器600)。有关此类映射服务操作的更多详细信息将在后续实现的说明中进行详细说明。
一旦连接到所述代理服务器600,所述客户端代理614可以向所述管理器612报告其运行状态,并且此状态可以通过所述DMB服务616存储,所述DMB服务616又可以由管理员通过基于Web的控制台或其它界面立即检索和查看。通过这种方式,所述管理员可以实时或近实时监控任何单个客户端代理(包括所述客户端代理614及其插件模块)的执行状态,并向所述客户端代理614发出命令以控制其操作。
为了避免网络流量对所述DMB服务616出现延迟,在所述队列613达到可配置水印之前或者在可配置队列时间限制到期时,所述代理服务器600可以缓存队列613中的报告。一旦所述DMB服务616收到所述报告,其可以立即将所述报告记录到客户端代理状态数据库,然后由所述管理器612使用该数据库在所述GUI控制台上显示(也可用于控制所述客户端代理614)。
图7示出了根据一实施例的管理器700。可选地,所述管理器700可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述管理器700可以在图1的管理器108的环境中实现。但是,应理解,所述管理器700可以在其它合适的环境中实现。
如图所示,所述管理器700包括映射服务器(mapping server,简称MS)704、控制中心系统702、DBM系统706、数据库系统708和基于Web的GUI 710。在一个可能的实施例中,可以将所述管理器700的每个上述组件实现为由多台重复服务器组成的集群,以实现可扩展性和高可用性。在使用中,所述MS 704保存整个系统(客户端代理/代理服务器)的服务位置映射,并向所述系统的组件提供服务到位置设施。
所述DBM系统706处理来自所述系统的管理组件的数据库请求,所述管理组件包括但不限于所述MS 704、控制中心系统702、任何代理服务器等。在一个可能的实施例中,只有所述DBM系统706可以直接访问所述数据库系统708。作为另一选项,所述数据库系统708可以实施MySQL。
在一个实施例中,所述控制中心系统702可以包括用于向网络浏览器用户提供数据呈现服务的服务器。此外,所述控制中心系统702可以实现一管理系统,用户可以使用该系统对整个系统的所有组件进行点击式管理。所述控制中心系统702还可以使用所述DBM系统706和代理服务器提供的服务。它还可以使用所述MS 704在启动时查找用于特定操作的适当数据库服务和代理服务器服务。
如前所述,所述管理器700及其任何组件都可以部署为集群配置,以实现可扩展性和高可用性。在其它实施例中,所述管理器700可以部署在与所述代理服务器集群相同或不同的数据中心(data center,简称DC)中。例如,在一个实施例中,所述管理器700可以部署在远程数据中心中,同时与部署在其它数据中心中的代理服务器群集通信。在此类配置中,使用网络浏览器的用户可以以图形方式查看整个系统的状态,并实时或接近实时地管理每个系统组件。通过此设计,在一些实施例中,所述系统可以允许对所述系统的每个组件进行细粒度的直接点击式控制和管理,以及对远程位置上的托管组件进行实时或近乎实时的响应,而无论客户端代理的数量如何。
图8示出了根据一实施例的映射服务器800。可选地,所述映射服务器800可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的上下文中实现。例如,所述映射服务器800可以在图7的MS 704的环境中实现。但是,应理解,所述映射服务器800可以在其它合适的环境中实现。
所述映射服务器800提供对其它系统组件805(例如,客户端代理、代理服务器、其它管理器组件等)的映射服务。为实现此目的,所述映射服务器800包括用于连接这类其它系统组件805的服务API 804,以及用于连接DBM 810的DBM接口808(例如,图7的DBM 706)。此外,所述映射服务器800通过所述DBM接口808和所述DBM 810在系统数据库(例如,图7的数据库系统708)中维护采用服务位置映射812形式的服务器状态表。此类服务位置映射812通过每个系统组件实现的状态报告(例如心跳等)定期更新,包括所有代理服务器和代理服务器。
然而,映射服务器800从DBM 810检索服务器状态数据,并使用这些数据为向所述DBM 810注册的系统组件805提供位置服务。通过此设计,在使用所述映射服务之前,系统组件805可与所述映射服务器800进行身份验证,所述映射服务器800又与所述DBM 810协作,以验证所述系统组件805。为支持此功能,所述系统组件805分别可以预配置所述映射服务器800的互联网协议(Intemet Protocol,简称IP)地址,以便在启动时定位到映射服务。
所述系统组件805成功进行身份验证后,所述系统组件805可以查询所述映射服务以获取所需服务的类型。对于需要所述DBM服务的GUI和代理服务器,此类组件可以从所述映射服务器800查询活动DBM服务器。对于客户端代理,此类服务可以通过关联的代理服务器实现,因此所述映射服务器800可以为所述请求客户端代理确定适合的相应代理服务器。此类对应的代理服务器可以是在特定地理位置(例如数据中心)为客户端代理提供服务的代理服务器。此外,所述代理服务器可以位于其服务的客户端代理附近,但也可以位于所述管理员通过所述数据库系统中维护的客户端代理-代理服务器关联映射确定的任何其它位置。
所述DBM接口808用作与所述DBM 810连接的接口,所述DBM 810可以是任何可扩展的SQL或NoSQL数据库系统,例如MySQL、ORACLE DBMS、MongoDB、弹性搜索或其组合。此外,所述DBM 810还维护许多数据库,包括:注册数据库、服务器状态数据库、客户端代理状态数据库和插件描述数据库,所述注册数据库记录所有代理服务器和客户端代理的IP地址;所述服务器状态数据库记录所有已注册管理服务器的状态;所述客户端代理状态数据库记录所有已注册客户端代理的状态以及所述插件描述数据库记录可用插件模块及其相关任何可配置参数的说明。
在使用中,代理服务器或客户端代理只能在所述系统具有相应的注册记录(对于此类组件)时加入管理器。出于安全原因,在提供对服务的访问权限之前,代理服务器和客户端代理将与所述管理器成功进行身份验证。所述DBM 810提供一组REST和SOCKET.IO API服务。所述控制中心使用REST API服务访问所述系统的各种数据库,以支持来自远程网络浏览器实例的管理GUI操作,其中包括用于显示、配置更新、管理控制以及配置和插件模块部署的组件状态检索。
在一个实施例中,SOCKET.IO服务可以实现API,以通过定期心跳机制为服务状态报告提供支持。此类心跳消息可包含唯一的服务器标识和其它状态信息,例如服务器运行状况、连接负载等。此外,所述SOCKET.IO服务还可以提供API,让所述代理服务器按需提交从所述连接的客户端代理接收的客户端代理状态报告。
图9示出了根据一实施例的设置了GUI的中央控制系统900。可选地,所述中心控制系统900可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的环境中实现。例如,所述中央控制系统900可以在图7的中央控制系统702/GUI 710的环境中实现。但是,应理解,所述中心控制系统900可以在其它合适的环境中实现。
所述设置了GUI的中央控制系统900包括MS接口902、Web接口906、DBM接口910、代理服务器接口918,所述MS接口902用于与至少一个MS 904进行连接;所述Web接口906用于与Web客户端908进行连接;所述DBM接口910用于与DBM 912进行连接,以及所述代理服务器接口918用于与一个或多个代理服务器914进行连接,而所述代理服务器914又促使与多个客户端代理916进行通信。通过此设计,所述设置了GUI的中央控制系统900提供前端图形用户界面Web服务器,允许用户查看所有系统组件(例如管理器、代理服务器、客户端代理等),还提供了后端服务用于传输数据和部署任务。在一些实施例中,所述设置了GUI的中央控制系统900还可以实现调度器(例如,NodeJS计算节点等),以均匀、并行的方式分配部署负载。此外,所述设置了GUI的中央控制系统900还可以通过所述DBM接口910连接到所述DBM 912,以便向所述用户呈现各种信息,并允许所述用户控制整个系统的各个方面。
在一个示例性使用案例中,通过所述MS接口902向所述系统发出请求,以便在操作1中进行身份验证。在操作2中,从所述MS 904请求并接收DBM IP。在操作3中,与所述DBM912建立Web套接字连接。此外,将服务器状态报告发送到所述DBM 912,如操作4所示。在操作5中,所述Web客户端908通过REST API连接。为此目的,用户可以在操作6中通过DBM接口910查看、编辑、创建和删除所述数据库中的记录。此外,在操作7中,可以通过所述代理服务器接口918向所述客户端代理发送命令以实现收集、处理和/或输出任务。
图10示出了根据一实施例的用于管理系统的示例GUI 1000。可选地,所述GUI1000可以在任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的环境中实现。例如,所述GUI 1000可以在图9的中央控制系统900的环境中实现。但是,应理解,所述GUI 1000可以在其它合适的环境中实现。
如前所述,所述设置了GUI的中央控制系统(例如,图9中所述设置了GUI的中央控制系统900)可以连接到DBM,以向所述用户呈现各种统计数据1002,并允许用户通过关联的管理图标1004来控制整个系统的各个方面。具体而言,如图10所示,所述GUI 1000提供了多个组1006,每个组代表一客户端代理分组。此外,所述GUI 1000还提供了这样多个客户端代理1008,允许用户通过关联的客户端代理管理图标1004A进行控制,从而允许用户应用命令来暂停和/或恢复客户端代理插件操作。
所述GUI 1000还提供多个插件1010和关联的插件管理图标1004B,可用于访问菜单等,用于上传、删除、升级等此类插件。但是,所述设置了GUI的中央控制系统900可以显示多个项目1012和可用于管理项目以应用于客户端代理插件的关联项目管理图标1004C(采用规则等形式)。另外,所述GUI 1000还提供了多个部署1014和关联的部署管理图标1004,用于构建插件配置并将插件配置部署到代理服务器,然后将所述插件配置和插件文件分发到适用的代理服务器。
在各种实施例中,所述GUI 1000可预配置用于启动时连接到的MS主机列表,并且此列表可以采用服务器状态报告1015的形式显示。当连接的MS主机发生故障时,所述GUI1000可以无限期地循环通过MS主机IP以重新连接。在MS连接时,所述GUI 1000可以通过所述MS进行身份验证并请求有效的DBM IP。此外,用户可以经由浏览器通过REST API连接到与所述GUI 1000关联的网络服务器。GUI后端服务随后可以通过web套接字向DBM发送/接收数据,并且所述GUI 1000可以显示状态1016。收到用户发起的命令后,所述GUI 1000可以通过web套接字连接到代理服务器,并指示所述代理服务器向选定的客户端代理发送命令、插件配置和文件等。
图11示出了根据一实施例的数据收集系统1190。可选地,所述数据收集系统1190可以使用任何先前的和/或随后的附图和/或其描述中阐述的任何一个或多个实施例的任何一个或多个特征实现。但是,应注意,所述数据收集系统1190可以在其它合适的环境中实现。
如图所示,提供了一种采用客户端代理模块1192形式的客户端代理装置,用于从至少一个节点收集数据、使用多个插件以及通过至少一个通道将数据传输到目的地。在各种实施例中,所述客户端代理模块1192可以包括但不限于图1中的客户端代理102、至少一个处理器(将在下文描述)以及控制其的任何软件和/或能够实现上述功能的任何其它电路。
还包括一种采用管理器模块1196形式的管理器装置,用于接收用户输入,以控制从所述至少一个节点收集数据以及将所述数据传送到所述目的地的一个或多个方面,并根据所述用户输入生成控制信号。在各种实施例中,所述管理器模块1196可以包括但不限于图1中的管理器108、至少一个处理器(将在下文描述)以及控制其的任何软件和/或能够实现上述功能的任何其它电路。
继续参考图11,采用客户端代理模块1194形式的代理服务器装置与所述代理服务器模块1192和所述管理器模块1196进行通信,用于接收所述控制信号,并基于所述控制信号控制从所述至少一个节点收集所述数据以及将所述数据传送到所述目的地的一个或多个方面。在各种实施例中,所述代理服务器模块1194可以包括但不限于图1的代理服务器106、至少一个处理器(将在下文描述)以及控制其的任何软件和/或能够实现上述功能的任何其它电路。
图12是根据一实施例的网络架构1200的示图。如图所示,提供至少一个网络1202。在各种实施例中,可以结合至少一个网络1202的任何一个或多个组件来实现在描述之前的任何图时所阐述的任何一个或多个组件/特征。
在本网络架构1200的上下文中,所述网络1202可以采取任何形式,包括但不限于电信网络、局域网(local area network,简称LAN)、无线网络、广域网(wide areanetwork,简称WAN),例如互联网、对等网络、有线网络等。虽然仅示出了一个网络,但是,应理解,可以提供两个或更多个类似或不同的网络1202。
有多个设备耦合到所述网络1202。例如,服务器1212和计算机1208可以耦合到所述网络1202以进行通信。这种计算机1208可以包括台式计算机、笔记本电脑和/或任何其他类型的逻辑。此外,各种其他设备可以耦合到网络1202,包括个人数字助理(personaldigita1 assistant,简称PDA)设备1210、移动电话设备1206、电视1204等。
图13是根据一实施例的示例性处理设备1300的示图。可选地,所述处理设备1300可以在图12的网络架构1200的任何设备的上下文中实现。但是,应理解,所述处理设备1300可以在任何期望的环境中实现。
如图所示,所述处理设备1300包括连接到总线1312的至少一个处理器1302。所述处理设备1300还包括存储器1304[例如硬盘驱动器、固态驱动器、随机存取存储器(randomaccess memory,简称RAM)等。]耦合到所述总线1312。所述存储器1304可以包括一个或多个存储器组件,甚至可以包括不同类型的存储器。进一步包括通信接口1308(如本地/远程网络接口、存储器访问接口等)和输入/输出(input/output,简称I/O)接口1310(例如,显示器、扬声器、麦克风、触摸屏、触摸板、鼠标接口等)。
所述处理设备1300还可以包括辅助存储1306。所述辅助存储1306耦合到所述总线1312和/或所述处理设备1300的其他组件。所述辅助存储1306可以包括例如硬盘驱动器和/或可移动存储驱动器,比如软盘驱动器、磁带驱动器和光盘驱动器等。移动存储驱动器以众所周知的方式从可移动存储单元读取和/或向可移动存储单元写入。
就此而言,计算机程序或计算机控制逻辑算法可以存储于所述存储器1304、所述辅助存储1306和/或任何其它存储器。这种计算机程序执行时使所述处理设备1300能够执行各种功能(例如,如上所述)。存储器1304、辅助存储器1306和/或任何其它存储器包含非瞬时性计算机可读介质。
在一个实施例中,所述至少一个处理器1302在所述存储器1304或所述辅助存储器1306中执行指令,以实现先前所述的与所述客户端代理、代理服务器和/或管理器相关的任何功能。
应注意,在一个方面中,此处描述的技术在存储在计算机可读介质中的可执行指令中体现,以供指令执行机器、装置或设备使用或与其结合使用,例如,基于计算机的或包括处理器的机器、装置或设备。本领域技术人员将认识到,对于一些实施例,包括其他类型的计算机可读介质,可存储计算机可访问的数据,比如磁带盒、闪存卡、数字视频光盘、伯努利盒、随机存取存储器(random access memory,简称RAM)和只读存储器(read-onlymemory,简称ROM)等。
如这里所使用的,“计算机可读介质”包括用于存储计算机程序的可执行指令的任何合适介质中的一个或多个,使得指令执行机器、系统、装置或设备可以读取(或取出)来自计算机可读介质的指令并执行用于执行所述方法的指令。合适的存储格式包含电子、磁性、光和电磁格式中的一个或多个。常规的示例性计算机可读介质的非穷举清单包括:诸如便携式计算机磁盘、RAM、ROM、可擦除可编程只读存储器(EPROM或闪存)以及光存储设备,其中包括便携式光盘(compact disc,简称CD)、便携式数字视频光盘(digital video disc,简称DVD)、高清晰度DVD(high definition digital video disc,简称HD-DVDTM)和蓝光光碟。
非瞬时性计算机可读介质包括所有类型的计算机可读介质,包括磁存储介质、光存储介质和固态存储介质,并且具体不包括信号。应当理解,软件可以安装在此处描述的设备上并可以随此处描述的设备一同出售。或者,可以获取软件并加载到设备中,包括通过光盘介质或以网络或分发系统的任何方式获取软件,例如,包括从软件开发者所有的服务器或从非软件开发者所有但为其所用的服务器获取软件。例如,所述软件可以存储在服务器上以便通过因特网分发。
应理解,所描述的图中示出的组件的布置是示例性的,并且可能有其它布置。还应理解,由权利要求书界定的、下文描述的并且在各种框图中所说明的各种系统组件表示根据本文中所公开的主题配置的一些系统中的逻辑组件。
例如,这些系统组件中的一个或多个可以整体或部分地通过所描述的图中示出的布置中示出的至少部分组件实现。另外,尽管这些组件中的至少一个至少部分地实现于电子硬件组件并因此构成机器,但是其它组件可以实现于软件,当包含于执行环境中时所述组件构成机器、硬件或软件和硬件的组合。
更具体地,由权利要求书界定的至少一个组件至少部分实现于电子硬件组件,例如指令执行机器(例如,基于处理器的或包含处理器的机器),和/或实现于专用电路或电路系统(例如,互连以执行专用功能的离散逻辑门)。其它组件可以实现于软件、硬件或软件和硬件的组合中。此外,可以组合这些其它组件中的一些或全部组件,可以完全省略一些组件并且可以添加其它组件,同时仍实现本文中描述的功能。因此,本文中描述的主题可以许多不同变化形式体现,且所有此类变化形式涵盖在权利要求书的范围内。
在以上描述中,除非另外指明,否则参考动作和由一个或多个设备执行的操作的符号表示来描述主题。因而,应理解,有时被称为计算机执行动作和操作的此类动作和操作包含构造形式的数据处理器的操作。这种操作对数据进行变换或将该数据保持在计算机的内存系统中各个位置,以本领域技术人员容易理解的方式重新配置或改变设备的操作。数据作为数据结构保存在内存的物理位置处,数据结构具有由数据格式限定的特定性质。然而,虽然在前文上下文中描述了主题,但这并不表示对所述主题的限制,因为所属领域的技术人员将了解,下文中描述的各种动作和操作也可以实施于硬件中。
为了促进对本文中描述的主题的理解,根据动作顺序描述许多方面。由权利要求限定的这些方面中的至少一个方面由电子硬件组件执行。例如,将认识到,可通过专用电路或电路系统,通过正由一个或多个处理器执行的程序指令或通过这两者的组合执行各个动作。本文中对任何动作顺序的描述并不意图暗示必须遵循用于执行此顺序而描述的特定次序。本文所描述的所有方法可以以任何适当的次序来执行,除非本文中另有说明或上下文另有清楚否定。
在描述主题(特别是在下面的权利要求的上下文中)中使用术语“一”,“一个”和“所述”以及类似的指示物将被解释为涵盖单数和复数,除非本文另有说明或与上下文明显矛盾。在此引证数值的范围仅旨在用作单独地提及每个单独的数值落在所述范围内描述的方法,除非在此另有说明,并且每个单独的数值并入到本说明书书中就像它被单独地在此引证一样。此外,上述描述仅出于说明的目的,而不是出于限制的目的,寻求保护的范围由附属权利要求及其任何等效物来限定。本文提供的任何和所有示例或示例性语言(例如,“比如”)的使用仅旨在更好地说明主题,并且不会对主题的范围提出限制,除非另有声明。使用术语“基于”和其它类似短语指示在附属权利要求和书面描述中产生结果的条件,并不旨在排除产生所述结果的其它条件。本说明书书中的任何语言都不应理解为指示实践本实施例所必需的任何非声明的要素。
本文中描述的实施例包含发明人实施所要求的主题已知的一个或多个模式。应理解,所属领域的一般技术人员读了上述描述将明显了解上述实施例的变化形式。本发明人期望熟练的业内人士适当时采用此类变化,并且本发明人想以不同于本文中特定描述的其它方式来实践本发明所主张的主题。因此,所主张的主题包含可适用法律所准许的在附属权利要求中叙述的主题的所有变化和等效物。此外,除非本文另外指示或以其它方式明确指出与内容相矛盾,否则本发明涵盖上述要素以其所有可能的变化形式的任何组合。
Claims (29)
1.一种代理服务器处理设备,其特征在于,包括:
非瞬时性存储器,用于存储指令;
一个或多个处理器,用于与所述非瞬时性内存通信,其中,所述一个或多个处理器执行所述指令完成以下操作:
根据管理器接收的用户输入,从所述管理器接收控制信号;
将所述控制信号发送到客户端代理,向所述数据的目的地传送所述数据以控制以下的一个或多个方面:从至少一个节点收集数据和通过至少一个信道向所述数据的目的地传送所述数据,其中,所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
2.根据权利要求1所述的代理服务器处理设备,其特征在于,所述一个或多个方面包括在多个目的地中选择所述数据的目的地。
3.根据权利要求1所述的代理服务器处理设备,其特征在于,所述一个或多个方面包括在多个信道中选择所述至少一个信道。
4.根据权利要求1所述的代理服务器处理设备,其特征在于,所述控制信号还用于控制以下一个或多个方面的处理:在将所述数据向所述目的地传送之前,处理从所述至少一个节点收集的数据。
5.根据权利要求4所述的代理服务器处理设备,其特征在于,所述处理包括所述数据的采样、加密或过滤中的至少一种。
6.根据权利要求1所述的代理服务器处理设备,其特征在于,所述代理服务器处理设备与所述客户端代理的通信比所述代理服务器处理设备与所述管理器的通信更为频繁。
7.根据权利要求1所述的代理服务器处理设备,其特征在于,所述客户端代理向所述管理器发送初始化信号,所述管理器为响应所述初始化信号指示所述客户端代理与所述代理服务器处理设备通信。
8.根据权利要求7所述的代理服务器处理设备,其特征在于,所述管理器基于所述代理服务器处理设备的可用性或位置中的至少一个,指示所述客户端代理与所述代理服务器处理设备通信。
9.根据权利要求1所述的代理服务器处理设备,其特征在于,所述一个或多个处理器执行所述指令完成以下操作:
接收来自所述客户端代理的状态信息;
向所述管理器发送所述状态信息,其中所述控制信号至少部分基于所述状态信息。
10.根据权利要求1所述的代理服务器处理设备,其特征在于,所述管理器根据与所述代理服务器处理设备通信的客户端代理的数量,执行与所述代理服务器处理设备相关的负载平衡。
11.根据权利要求1所述的代理服务器处理设备,其特征在于,所述软件组件包括不同类型的软件组件,所述软件组件以不同的方式收集所述数据。
12.根据权利要求1所述的代理服务器处理设备,其特征在于,所述软件组件包括插件。
13.根据权利要求12所述的代理服务器处理设备,其特征在于,所述插件包括第一插件,用于所述数据收集;以及第二插件,用于通过所述至少一个信道向所述目的地传送所述数据。
14.根据权利要求13所述的代理服务器处理设备,其特征在于,所述插件包括第三插件,用于在向所述目的地传送所述数据之前处理从所述至少一个节点收集的数据。
15.一种计算机实现的方法,其特征在于,包括:
接收来自管理器的控制信号,所述控制信号基于所述管理器接收的用户输入;
将所述控制信号发送到客户端代理,向所述数据的目的地传送所述数据以控制以下的一个或多个方面:从至少一个节点收集数据和通过至少一个信道向所述数据的目的地传送所述数据,其中,所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
16.根据权利要求15所述的方法,其特征在于,所述一个或多个方面包括在多个目的地中选择所述数据的目的地。
17.根据权利要求15所述的方法,其特征在于,所述一个或多个方面包括在多个信道中选择所述至少一个信道。
18.根据权利要求15所述的方法,其特征在于,所述控制信号还用于控制以下一个或多个方面的处理:在将所述数据向所述目的地传送之前,处理从所述至少一个节点收集的数据。
19.根据权利要求18所述的方法,其特征在于,所述处理包括所述数据的采样、加密或过滤中的至少一种。
20.根据权利要求15所述的方法,其特征在于,与所述客户端代理的通信比与所述管理器的通信更频繁。
21.根据权利要求15所述的方法,其特征在于,所述客户端代理直接向所述管理器发送初始化信号,所述管理器为响应所述初始化信号指示所述客户端代理与代理服务器处理设备通信。
22.根据权利要求21所述的方法,其特征在于,所述管理器基于所述代理服务器处理设备的可用性或位置中的至少一个,指示所述客户端代理与所述代理服务器处理设备通信。
23.根据权利要求15所述的方法,其特征在于,还包括:
接收来自所述客户端代理的状态信息;
向所述管理器发送所述状态信息,其中所述控制信号至少部分基于所述状态信息。
24.根据权利要求15所述的方法,其特征在于,所述管理器基于与代理服务器处理设备通信的客户端代理的数量执行负载平衡。
25.根据权利要求15所述的方法,其特征在于,所述软件组件包括不同类型的软件组件,所述软件组件以不同的方式收集所述数据。
26.根据权利要求15所述的方法,其特征在于,所述软件组件包括插件。
27.根据权利要求26所述的方法,其特征在于,所述插件包括第一插件,用于所述数据收集;
以及第二插件,用于通过所述至少一个信道向所述目的地传送所述数据。
28.根据权利要求27所述的方法,其特征在于,所述插件包括第三插件,用于在将所述数据传送到所述目的地之前处理从所述至少一个节点收集的数据。
29.一种计算机程序产品,其特征在于,包括存储于非瞬时性计算机可读介质中的计算机可执行指令,所述指令在被处理器执行时指示所述处理器执行以下操作:
根据管理器接收的用户输入从所述管理器接收控制信号;
将所述控制信号发送到客户端代理,向所述数据的目的地传送所述数据以控制以下的一个或多个方面:从至少一个节点收集数据和通过至少一个信道向所述数据的目的地传送所述数据,其中,所述数据收集和所述数据传送的执行方式是所述客户端代理使用多个软件组件,每个软件组件定制所述数据收集和所述数据传送的一个或多个方面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/486,151 US20180302486A1 (en) | 2017-04-12 | 2017-04-12 | Proxy apparatus and method for data collection |
US15/486,151 | 2017-04-12 | ||
PCT/CN2018/079444 WO2018188452A1 (en) | 2017-04-12 | 2018-03-19 | Proxy apparatus and method for data collection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110476154A true CN110476154A (zh) | 2019-11-19 |
CN110476154B CN110476154B (zh) | 2021-09-03 |
Family
ID=63790400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880021681.6A Active CN110476154B (zh) | 2017-04-12 | 2018-03-19 | 用于数据收集的代理服务器设备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180302486A1 (zh) |
EP (1) | EP3596604A4 (zh) |
CN (1) | CN110476154B (zh) |
WO (1) | WO2018188452A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109450907A (zh) * | 2018-11-21 | 2019-03-08 | 中国银行股份有限公司 | 基于websocket的通信系统搭建方法及装置 |
EP3918449A4 (en) * | 2019-01-28 | 2022-03-16 | Magic Leap, Inc. | METHOD AND SYSTEM FOR RESOLVING HEMISPHERE AMBIGUITY IN SIX DEGREE OF FREEDOM POSE MEASUREMENTS |
CN111200637B (zh) * | 2019-12-20 | 2022-07-08 | 新浪网技术(中国)有限公司 | 一种缓存的处理方法及装置 |
CN112822064A (zh) * | 2020-12-29 | 2021-05-18 | 南京浩明慧谷信息科技有限公司 | 一种Socket通讯检测方法 |
US11902081B1 (en) * | 2022-01-31 | 2024-02-13 | Splunk Inc. | Managing collection agents via an agent controller |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781703A (en) * | 1996-09-06 | 1998-07-14 | Candle Distributed Solutions, Inc. | Intelligent remote agent for computer performance monitoring |
US20040078800A1 (en) * | 2002-07-29 | 2004-04-22 | Manzano Michael R. | System and method for using a mobile agent object to collect data |
US20050076112A1 (en) * | 2001-03-29 | 2005-04-07 | Govindan Ravindran | System and method for management of remote devices in a network |
CN102854819A (zh) * | 2004-05-04 | 2013-01-02 | 费舍-柔斯芒特系统股份有限公司 | 用于过程控制系统的面向服务的架构 |
CN103401704A (zh) * | 2013-07-24 | 2013-11-20 | 佳都新太科技股份有限公司 | 一种分布式日志采集服务器的实现方案 |
CN103795749A (zh) * | 2012-10-30 | 2014-05-14 | 国际商业机器公司 | 用于诊断运行在云环境中的软件产品的问题的方法和装置 |
US9197522B1 (en) * | 2012-03-21 | 2015-11-24 | Emc Corporation | Native storage data collection using multiple data collection plug-ins installed in a component separate from data sources of one or more storage area networks |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010020242A1 (en) * | 1998-11-16 | 2001-09-06 | Amit Gupta | Method and apparatus for processing client information |
US20080281963A1 (en) * | 2000-03-02 | 2008-11-13 | Rick Fletcher | Distributed remote management (drmon) for networks |
US6684250B2 (en) * | 2000-04-03 | 2004-01-27 | Quova, Inc. | Method and apparatus for estimating a geographic location of a networked entity |
JP2004318540A (ja) * | 2003-04-17 | 2004-11-11 | Hitachi Ltd | 性能情報監視装置、方法およびプログラム |
US20060116981A1 (en) * | 2004-11-30 | 2006-06-01 | Stefan Krimmel | Method and system for automated data collection and analysis of a computer system |
US20070044539A1 (en) * | 2005-03-01 | 2007-03-01 | Bryan Sabol | System and method for visual representation of a catastrophic event and coordination of response |
US8065397B2 (en) * | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
US7831562B1 (en) * | 2007-06-12 | 2010-11-09 | Symantec Corporation | Backup and restore operations using distributed control information |
US8190707B2 (en) * | 2007-10-20 | 2012-05-29 | Citrix Systems, Inc. | System and method for transferring data among computing environments |
US9418110B1 (en) * | 2008-06-30 | 2016-08-16 | Emc Corporation | Intelligent, scalable, low-overhead mechanism for data retrieval in a distributed network environment |
US8214329B2 (en) * | 2008-08-26 | 2012-07-03 | Zeewise, Inc. | Remote data collection systems and methods |
US9411864B2 (en) * | 2008-08-26 | 2016-08-09 | Zeewise, Inc. | Systems and methods for collection and consolidation of heterogeneous remote business data using dynamic data handling |
US8429650B2 (en) * | 2008-11-14 | 2013-04-23 | Oracle International Corporation | System and method of security management for a virtual environment |
WO2011093898A1 (en) * | 2010-01-31 | 2011-08-04 | Hewlett-Packard Development Company Lp | Method and system for management of sampled traffic data |
CN101848475A (zh) * | 2010-05-25 | 2010-09-29 | 中国科学技术大学 | 基于协议测试的对无线网络中的节点进行监测的方法和装置 |
CN102281251B (zh) * | 2010-06-09 | 2014-12-17 | 中兴通讯股份有限公司 | 一种实现智能家居应用的装置、系统和方法 |
US20120246297A1 (en) * | 2011-03-25 | 2012-09-27 | Vijaya Shanker | Agent based monitoring for saas it service management |
US9634951B1 (en) * | 2014-06-12 | 2017-04-25 | Tripwire, Inc. | Autonomous agent messaging |
JP2016045930A (ja) * | 2014-08-22 | 2016-04-04 | キヤノン株式会社 | 管理システム、及び、管理システムの制御方法 |
US9924033B2 (en) * | 2014-10-23 | 2018-03-20 | Teletech Holdings, Inc. | Method for collecting data using a user interaction event-driven data collection system |
US10476766B1 (en) * | 2015-06-19 | 2019-11-12 | Amazon Technologies, Inc. | Selecting and configuring metrics for monitoring |
US10404568B2 (en) * | 2015-07-31 | 2019-09-03 | Cisco Technology, Inc. | Agent manager for distributed transaction monitoring system |
US10079730B2 (en) * | 2015-09-30 | 2018-09-18 | Amazon Technologies, Inc. | Network based resource configuration discovery service |
US10225375B2 (en) * | 2016-08-30 | 2019-03-05 | Ca, Inc. | Networked device management data collection |
US10333733B2 (en) * | 2017-03-20 | 2019-06-25 | Vmware, Inc. | Controlling proxy devices through a managed gateway |
-
2017
- 2017-04-12 US US15/486,151 patent/US20180302486A1/en not_active Abandoned
-
2018
- 2018-03-19 EP EP18784725.6A patent/EP3596604A4/en not_active Withdrawn
- 2018-03-19 WO PCT/CN2018/079444 patent/WO2018188452A1/en unknown
- 2018-03-19 CN CN201880021681.6A patent/CN110476154B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781703A (en) * | 1996-09-06 | 1998-07-14 | Candle Distributed Solutions, Inc. | Intelligent remote agent for computer performance monitoring |
US20050076112A1 (en) * | 2001-03-29 | 2005-04-07 | Govindan Ravindran | System and method for management of remote devices in a network |
US20040078800A1 (en) * | 2002-07-29 | 2004-04-22 | Manzano Michael R. | System and method for using a mobile agent object to collect data |
CN102854819A (zh) * | 2004-05-04 | 2013-01-02 | 费舍-柔斯芒特系统股份有限公司 | 用于过程控制系统的面向服务的架构 |
US9197522B1 (en) * | 2012-03-21 | 2015-11-24 | Emc Corporation | Native storage data collection using multiple data collection plug-ins installed in a component separate from data sources of one or more storage area networks |
CN103795749A (zh) * | 2012-10-30 | 2014-05-14 | 国际商业机器公司 | 用于诊断运行在云环境中的软件产品的问题的方法和装置 |
CN103401704A (zh) * | 2013-07-24 | 2013-11-20 | 佳都新太科技股份有限公司 | 一种分布式日志采集服务器的实现方案 |
Also Published As
Publication number | Publication date |
---|---|
EP3596604A4 (en) | 2020-04-08 |
US20180302486A1 (en) | 2018-10-18 |
WO2018188452A1 (en) | 2018-10-18 |
EP3596604A1 (en) | 2020-01-22 |
CN110476154B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108880887B (zh) | 基于微服务的陪护机器人云服务系统及方法 | |
CN110476154A (zh) | 用于数据收集的代理服务器设备和方法 | |
US6915338B1 (en) | System and method providing automatic policy enforcement in a multi-computer service application | |
WO2021017301A1 (zh) | 基于Kubernetes集群的管理方法、装置及计算机可读存储介质 | |
CN112788074B (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
KR101926394B1 (ko) | 클라우드 컴퓨팅 시스템 및 클라우드 시스템에서의 부하 분리 방법 | |
US7155380B2 (en) | System and method for designing a logical model of a distributed computer system and deploying physical resources according to the logical model | |
US10133797B1 (en) | Distributed heterogeneous system for data warehouse management | |
CN103927218B (zh) | 事件分发方法及系统 | |
CN105809356A (zh) | 一种基于应用集成云平台的信息系统资源管理方法 | |
US10491698B2 (en) | Dynamic distribution of persistent data | |
US20060149838A1 (en) | System and Method for Logical Modeling of Distributed Computer Systems | |
CN104156216A (zh) | 一种面向云计算的异构存储管理系统及方法 | |
CN107612984B (zh) | 一种基于互联网的大数据平台 | |
CN105592122A (zh) | 一种云平台监控方法以及云平台监控系统 | |
US20130227568A1 (en) | Systems and methods involving virtual machine host isolation over a network | |
KR102345082B1 (ko) | 클라우드 기반 iec61850 정보 처리 방법 | |
CN101632076A (zh) | 实时统一管理信息数据转换和监测设备及其方法 | |
CN110007950A (zh) | 一种应用程序接口的管理方法、装置及服务器 | |
CN106464584A (zh) | 根据程序设计接口提供路由器信息 | |
WO2022104612A1 (zh) | 数据分发流程配置方法及装置、电子设备、存储介质 | |
CN111506297A (zh) | 一种移动顶层设计系统 | |
CN105827671A (zh) | 分布式使用、集中管理的系统平台以及门户服务器 | |
CN104219175A (zh) | 数据交换与服务调用系统及方法 | |
CN112351106B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |