CN109462504A - 一种通用Agent管控的系统 - Google Patents
一种通用Agent管控的系统 Download PDFInfo
- Publication number
- CN109462504A CN109462504A CN201811336255.XA CN201811336255A CN109462504A CN 109462504 A CN109462504 A CN 109462504A CN 201811336255 A CN201811336255 A CN 201811336255A CN 109462504 A CN109462504 A CN 109462504A
- Authority
- CN
- China
- Prior art keywords
- agent
- control
- unit
- interface
- monitoring
- 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
Classifications
-
- 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
-
- 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
Abstract
本发明公开了一种通用Agent管控的系统,该系统包括REST接口、easyagent服务器、GRPC系统、管控客户端、Ageng类别/功能单元;管控客户端包括缓存器单元、监控单元、控制器单元和管控存储文件单元。本发明通过七个REST接口,使Agent类别/功能单元可以轻松无限扩张;本发明通过GRPC全双工通信,客户网络环境不需要开监听端口,所有控制指令实时传输;本发明通过cgroup,tc控制主机资源使用,并上报监控资源使用情况;本发明通过Agent进行守护,异常退出自动拉起;本发明通过Agent进行健康检查。
Description
技术领域
本发明属于通信领域,尤其涉及一种通用Agent管控的系统。
背景技术
现有的技术方案存在以下问题:
(1)Agent类别/功能是固定的,不可扩展的,只能通过升级自身来实现 Agent类别/功能扩展。比如graylog sidecar只支持wxlog,winlogbeat, filebeat。
(2)需要在客户网络环境开监听端口,用来接收服务端传来的控制指令,有较大安全风险。
(3)默些管控不需要在客户网络环境开监听端口,而是通过轮询方式接收服务端传来的控制指令,但这牺牲了实时性。
(4)难以限制/控制Agent消耗的资源。
发明内容
为克服现有技术的不足之处,本发明提供一种通用Agent管控的系统。
本发明是通过以下技术方案实现的:
一种通用Agent管控的系统,其特征在于,该系统包括REST接口、easyagent 服务器、GRPC系统、管控客户端、Ageng类别/功能单元;所述REST接口包括 Agent安装接口、Agent卸载接口、Agent启动接口、Agent停止接口、Agent配置更新接口、Agent更新接口和Agent执行命令接口;所述管控客户端包括缓存器单元、监控单元、控制器单元和管控存储文件单元。
作为上述技术方案的优选,所述控制器单元包括cgroup/tc单元和健康检查单元。
作为上述技术方案的优选,所述监控单元包括监控自己的CPU/内存/网络流量/启动命令、监控各个Agent的CPU/内存/网络流量/启动命令、监控主机系统的CPU/内存/交换分区/负载/启动时间/文件系统/网络流量、每个Agent启动后开始监控、Agent停止后关闭监控和监控自己和主机在sidecar启动后就开始监控。
作为上述技术方案的优选,所述控制器单元包括创建控制管理器,根据配置初始化各个Agent对象;启动Agent对象,接收服务端指令。
作为上述技术方案的优选,所述健康检查单元包括健康检查Shell脚本、健康检查周期、第一次启动健康检查前等待时间、健康检查超时时间和健康检查重试次数。
本发明的有益效果是:
(1)本发明通过七个REST接口,使Agent类别/功能单元可以轻松无限扩张;
(2)本发明通过GRPC全双工通信,客户网络环境不需要开监听端口,所有控制指令实时传输;
(3)本发明通过cgroup,tc控制主机资源使用,并上报监控资源使用情况;
(4)本发明通过Agent进行守护,异常退出自动拉起;
(5)本发明通过Agent进行健康检查。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1是本发明的框架示意图;
图2是本发明中管控客户端的架构图;
图3是本发明中管控守护进程流程图。
具体实施方式
下面将结合具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明,但并不作为对本发明的限定。
如图1-3所示,一种通用Agent管控的系统,该系统包括REST接口、easyagent服务器、GRPC系统、管控客户端、Ageng类别/功能单元;REST接口包括Agent安装接口、Agent卸载接口、Agent启动接口、Agent停止接口、Agent 配置更新接口、Agent更新接口和Agent执行命令接口;管控客户端包括缓存器单元、监控单元、控制器单元和管控存储文件单元。
具体的,本实施例中,控制器单元包括cgroup/tc单元和健康检查单元。
进一步的,监控单元包括监控自己的CPU/内存/网络流量/启动命令、监控各个Agent的CPU/内存/网络流量/启动命令、监控主机系统的CPU/内存/交换分区/负载/启动时间/文件系统/网络流量、每个Agent启动后开始监控、Agent停止后关闭监控和监控自己和主机在sidecar启动后就开始监控。
此外,控制器单元包括创建控制管理器,根据配置初始化各个Agent对象;启动Agent对象,接收服务端指令。
同时,健康检查单元包括健康检查Shell脚本、健康检查周期、第一次启动健康检查前等待时间、健康检查超时时间和健康检查重试次数。
HTTP REST API接口
Agent安装[同步]:/api/v1/agent/install[Sync]POST
参数 | 说明 |
collectorId | 管控id |
configurationPath | filbeat配置文件地址 |
binaryPath | filbeat可执行文件地址 |
name | agent名称即filebeat |
parameter | agent运行参数,','号隔开 |
installScript | filebeat安装脚本内容 |
installParameter | 安装脚本的执行参数,','号隔开 |
healthShell | 健康检查脚本 |
healthPeriod | 健康检查间隔 |
workDir | 工作目录 |
timeout | 脚本超时 |
Agent卸载[同步]:/api/v1/agent/{agent_id}/uninstall[Sync]POST
Agent启动[同步]:/api/v1/agent/{agent_id}/start[Sync]GET
参数 | 说明 |
agent_id | agent标识 |
Agent停止[同步]:/api/v1/agent/{agent_id}/stop[Sync]GET
参数 | 说明 |
agent_id | agent标识 |
Agent配置更新[同步]:/api/v1/agent/{agent_id}/config[Sync]POST
Agent更新[同步]:/api/v1/agent/{agent_id}/update[Sync]POST
参数 | 说明 |
parameter | 运行参数,','号隔开 |
shellScript | agent更新脚本 |
timeout | 脚本超时 |
Agent执行命令[同步]:/api/v1/sidecar/{sidecar_id}/execscript POST
参数 | 说明 |
execScript | 执行脚本的内容 |
parameter | 运行参数,','号隔开 |
timeout | 脚本超时 |
agentId | Agent ID[可选] |
这七个API为原子接口(没有内在关系),使用者根据自己业务特点灵活调用。
接入管控方式:
命令行:
curl
‘http://x.x.x.x:8889/api/v1/deploy/sidecar/install/shell?TargetPath=/opt/dts
tack/easymanager/easyagent&CallBack=aHR0cDovL21hdHJpeDo4ODY0
L2FwaS92Mi9hZ2VudC9pbnN0YWxsL2NhbGxiYWNrP2FpZD0tMQ=='
|sh
CallBack:使用者回调地址→URL escape→base64encode
页面SSH:
在页面上填入宿主机IP地址列表和用户名/密码/密钥。非root用户接入需要sudo+NOPASSWD权限。
Register&&CallBack回调:
第一次安装管控时,管控启动后会向easyagent-server注册:
注册时包含管控唯一Id(sid),CallBack和主机基本信息,easyagent-server 接受注册后回调使用者(http头中添加sid和hostname)。
GRPC介绍:
GRPC一开始由google开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。
基于HTTP/2:
HTTP/2提供了连接多路复用、双向流、服务器推送、请求优先级、首部压缩等机制。可以节省带宽、降低TCP链接次数、节省CPU,帮助移动设备延长电池寿命等。gRPC的协议设计上使用了HTTP2现有的语义,请求和响应的数据使用HTTP Body发送,其他的控制信息则用Header表示。
IDL使用ProtoBuf:
GRPC使用ProtoBuf来定义服务,ProtoBuf是由Google开发的一种数据序列化协议(类似于XML、JSON、hessian)。ProtoBuf能够将数据进行序列化,并广泛应用在数据存储、通信协议等方面。压缩和传输效率高,语法简单,表达力强。
多语言支持(C,C++,Python,PHP,Nodejs,C#,Objective-C、Golang、Java):
GRPC支持多种语言,并能够基于语言自动生成客户端和服务端功能库。目前已提供了C版本grpc、Java版本grpc-java和Go版本grpc-go,其它语言的版本正在积极开发中,其中,grpc支持C、C++、Node.js、Python、Ruby、Objective-C、 PHP和C#等语言,grpc-java已经支持Android开发。
GRPC已经应用在Google的云服务和对外提供的API中,其主要应用场景如下:
低延迟、高扩展性、分布式的系统。
同云服务器进行通信的移动应用客户端。
设计语言独立、高效、精确的新协议。
便于各方面扩展的分层设计,如认证、负载均衡、日志记录、监控等。
IDL定义:
registerSidecar:管控启动时调用该grpc函数,注册成功后才允许调用后面函数。
readyForControl:管控启动时调用该grpc函数,跟服务端连接等待stream指令。
reportEvent:管控端任何event信息(异常信息/agent性能数据/主机性能数据)都将异步发往服务端。
GRPC网络异常,不会影响已经运行的Agent(只是无法控制)。
Json-file DB:
该文件是管控(sidecar)持久化存储文件。sidecar重启时会加载此文件,送给controller初始化Agent。
AgentConfig结构:
Controller关键代码:
controller.NewController()创建控制管理器,根据配置初始化各个Agent对象agent.NewAgent(),最后启动Agent对象ag.Run(),调用StartRecvCtl接收服务端指令。
Cgroup介绍和设置:
Cgroups是control groups的缩写,是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。最初由google的工程师提出,后来被整合进Linux内核。
Agent安装时调用installCgroup(),每一个agent申请一个classid,并创建一个cgroup对象cg:
agent每次启动都要调用addCgroup()添加到该cgroup:
说明:
1.需要使用cpu子系统限制cpu使用率%。
2.需要使用memory子系统限制内存使用量,超过则OOM(禁用虚拟内存)。
3.需要使用net_cls子系统标记ClassID,ClassID用来给tc限流和流量统计。
TC(Traffic Control)介绍和设置:
Linux内核内置了一个Traffic Control框架,可以实现流量限速,流量整形,策略应用(丢弃,NAT等)。主要是通过在输出端口处建立一个队列来实现流量控制。
初始化TC HTB队列InitTC():
tc qdisc add dev ethx root handle 6000:htb
tc filter add dev ethx protocol ip parent 6000:prio 1handle 6000:cgroup
限制流量命令行setTcClassRate():
tc class change dev ethx parent 6000:classid xxxx htb rate xxxxxx//
classid在cgroup安装时分配
查看流量统计tcStatistic():
tc-s class show dev ethx
管控守护进程:
启动goroutine ag.supervisor()守护agent进程,60秒内守护3次,否则认为是agent确有问题,报错“agent run error(unexpected):……”退出。
综上所述,本发明通过七个REST接口,使Agent类别/功能单元可以轻松无限扩张;本发明通过GRPC全双工通信,客户网络环境不需要开监听端口,所有控制指令实时传输;本发明通过cgroup,tc控制主机资源使用,并上报监控资源使用情况;本发明通过Agent进行守护,异常退出自动拉起;本发明通过Agent 进行健康检查。
Claims (5)
1.一种通用Agent管控的系统,其特征在于,该系统包括REST接口、easyagent服务器、GRPC系统、管控客户端、Ageng类别/功能单元;所述REST接口包括Agent安装接口、Agent卸载接口、Agent启动接口、Agent停止接口、Agent配置更新接口、Agent更新接口和Agent执行命令接口;所述管控客户端包括缓存器单元、监控单元、控制器单元和管控存储文件单元。
2.如权利要求1所述的通用Agent管控的系统,其特征在于,所述控制器单元包括cgroup/tc单元和健康检查单元。
3.如权利要求1所述的通用Agent管控的系统,其特征在于,所述监控单元包括监控自己的CPU/内存/网络流量/启动命令、监控各个Agent的CPU/内存/网络流量/启动命令、监控主机系统的CPU/内存/交换分区/负载/启动时间/文件系统/网络流量、每个Agent启动后开始监控、Agent停止后关闭监控和监控自己和主机在sidecar启动后就开始监控。
4.如权利要求1所述的通用Agent管控的系统,其特征在于,所述控制器单元包括创建控制管理器,根据配置初始化各个Agent对象;启动Agent对象,接收服务端指令。
5.如权利要求1所述的通用Agent管控的系统,其特征在于,所述健康检查单元包括健康检查Shell脚本、健康检查周期、第一次启动健康检查前等待时间、健康检查超时时间和健康检查重试次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811336255.XA CN109462504A (zh) | 2018-11-09 | 2018-11-09 | 一种通用Agent管控的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811336255.XA CN109462504A (zh) | 2018-11-09 | 2018-11-09 | 一种通用Agent管控的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109462504A true CN109462504A (zh) | 2019-03-12 |
Family
ID=65609957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811336255.XA Pending CN109462504A (zh) | 2018-11-09 | 2018-11-09 | 一种通用Agent管控的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109462504A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782205A (zh) * | 2020-07-30 | 2020-10-16 | 杭州玳数科技有限公司 | 一种通用软件部署监控系统及方法 |
CN111865914A (zh) * | 2020-06-15 | 2020-10-30 | 上海仪电(集团)有限公司中央研究院 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765644A (zh) * | 2015-04-02 | 2015-07-08 | 西安电子科技大学 | 基于智能体Agent的资源协作演化系统及方法 |
US20180302266A1 (en) * | 2017-04-18 | 2018-10-18 | Servicenow, Inc. | Transformation and transmission of event messages |
-
2018
- 2018-11-09 CN CN201811336255.XA patent/CN109462504A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765644A (zh) * | 2015-04-02 | 2015-07-08 | 西安电子科技大学 | 基于智能体Agent的资源协作演化系统及方法 |
US20180302266A1 (en) * | 2017-04-18 | 2018-10-18 | Servicenow, Inc. | Transformation and transmission of event messages |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111865914A (zh) * | 2020-06-15 | 2020-10-30 | 上海仪电(集团)有限公司中央研究院 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
CN111865914B (zh) * | 2020-06-15 | 2023-03-21 | 上海仪电(集团)有限公司中央研究院 | 用于检查云主机健康状态的系统、方法、设备及存储介质 |
CN111782205A (zh) * | 2020-07-30 | 2020-10-16 | 杭州玳数科技有限公司 | 一种通用软件部署监控系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107040407B (zh) | 一种高性能计算集群动态节点作业方法 | |
US9641413B2 (en) | Methods and computer program products for collecting storage resource performance data using file system hooks | |
WO2019100605A1 (zh) | 平台即服务paas容器平台的构建方法、服务器、系统及存储介质 | |
CN105138398B (zh) | 同步通信模式下socket通信与进程管理通用平台及方法 | |
CN106453288A (zh) | 一种支持异步模式的分布式微服务框架系统及其实现方法 | |
JPH05207025A (ja) | ネットワーク・パフォーマンス・データを得るためのシステムおよび方法 | |
CN111542064A (zh) | 一种用于无线接入网的容器编排管理系统及编排方法 | |
CN105765923A (zh) | 客户端-服务器远程访问系统中提供客户端到非托管服务的连接的方法 | |
CN109451014B (zh) | 一种WebService代理系统及其透明代理方法 | |
WO2016165242A1 (zh) | 系统内节点数的调整方法和装置 | |
CN110297862B (zh) | 数据库访问方法及数据库访问中间件 | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN107682460B (zh) | 一种分布式存储集群数据通信方法及系统 | |
CN109462504A (zh) | 一种通用Agent管控的系统 | |
CN110058900A (zh) | 基于可插拔组件框架的数据传输服务系统 | |
CN107979629A (zh) | 分布式缓存系统及其数据缓存方法和装置 | |
CN116800616B (zh) | 虚拟化网络设备的管理方法及相关装置 | |
JP2006508469A (ja) | 相互接続を有するクラスタリングシステムおよび方法 | |
US7827194B2 (en) | Access to shared disk device on storage area network | |
CN106550002A (zh) | 一种paas云托管系统及方法 | |
CN108337285B (zh) | 一种通信系统及通信方法 | |
CN110750369B (zh) | 一种分布式节点管理方法及系统 | |
CN112291357B (zh) | 虚拟多通道智能化数据通信处理系统及其计算平台 | |
CN112702415B (zh) | 一种将Kafka长连接消费转换成服务的方法 | |
CN116340111A (zh) | 一种Linux套接字监听事件监控方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 311121 room 102-1 / F, room 102-2 / F, building 6, Haizhi center, 2301 yuhangtang Road, Cangqian street, Yuhang District, Hangzhou, Zhejiang Province Applicant after: HANGZHOU DAISHU TECHNOLOGY Co.,Ltd. Address before: 310030 8F, building 2, Hangzhou Internet innovation and entrepreneurship Park, 176 Zixia street, Xihu District, Hangzhou City, Zhejiang Province Applicant before: HANGZHOU DAISHU TECHNOLOGY Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190312 |