一、介绍
节点代理程序(AngusAgent)提供三方面作用:
- 通过启动"执行器(AngusRunner)"来执行脚本任务。
- 在代理节点上运行和管理Mock服务。
- 收集、监控和报告关于节点的各种指标和性能数据,该数据用于在稳定性测试中可分析节点资源使用率。
二、安装
以下提供在线安装
、自动安装
和手动配置安装
三种方式安装,安装前需要确保代理应用6807
端口未被使用。
注意:以下安装包为节点代理完整安装包,安装后会包含测试插件、Mock数据插件、Mock服务(AngusMockService)和执行程序(AngusRunner)
。
在线安装
登录云服务版或私有化版AngusTester应用后,在"节点"添加需要安装代理的节点,添加节点成功后点击下图中"
在线安装代理"操作进行自动安装。
注意:在线安装方式需要确保节点IP、账号、密码信息有效,以及SSH端口开放
。
如果在线安装失败,请尝试使用下面手动运行脚本安装代理方式安装。
自动安装
“自动安装”
会检查安装环境是否已安装JDK,未安装时会自动下载安装。如果安装环境存在低版本JDK或者安装冲突,请查看:安装说明 。
- Linux或MacOS
第一步:先创建并进入到安装目录。
> mkdir /data && cd /data
第二步:点击已添加节点"手动安装代理",复制如下图中自动安装代理命令。
第三步:运行自动安装代理命令。
> curl -s https://bj-c1-prod-files.xcan.cloud/storage/pubapi/v1/file/install-agent.sh?fid=203622614944448569 | bash -s 1.0.0 103622614944448579 'https://bj-c1-prod-apis.xcan.cloud/alctrl/openapi2p/v1/ctrl' 2PT.uk3dciHZyVVt8zBdnxOgcz4BpGNuNl3u.d241ce59daa19ns51b2e6528a3dcf7ab5 1 205198142092607130
手动配置安装
第一步:点击下载 AngusAgent 安装包。
第二步:下载安装包后,将安装包移动到自定义安装目录并解压。
第三步:配置代理所属租户、设备ID、设备访问令牌。
在AngusTester"节点"添加节点后,点击已添加节点"手动安装代理"->“安装配置信息”,如下图:
修改conf/agent.properties
中配置如下:
angusagent.principal.tenantId=1
angusagent.principal.deviceId=205198142092607130
修改conf/exchange.properties
中配置如下:
exchange.ctrlAccessToken=2PT.uk3dciHZyVVt8zBdnxOgcz4BpGNuNl3u.d241ce59daa19ns51b2e6528a3dcf7ab5
其他配置信息请查看下面"配置"说明。
三、配置
- 代理服务配置(agent.properties)
#-----------------------------------------------------------------------------------
# Angus代理服务配置
#-----------------------------------------------------------------------------------
## 代理服务绑定的 IP,默认为 0.0.0.0。
angusagent.serverIp=0.0.0.0
## 代理服务绑定的端口,默认为 6807。
angusagent.serverPort=6807
## 在Netty HTTP服务器上启用SSL选项,默认为false。
angusagent.useSsl=false
## 启用Netty日志。建议仅在调试模式下打开,默认为false。
angusagent.enableNettyLog=false
## 配置将请求信息记录到日志文件的级别,包括两个选项:NONE、BASIC、HEADERS和FULL。
### - NONE: 不记录日志。
### - BASIC: 仅记录请求方法和URL,以及响应状态码和执行时间,默认值。
### - HEADERS: 记录基本信息以及请求和响应头部。
### - FULL: 记录请求和响应的头部、主体和元数据。
angusagent.requestLogLevel=FULL
## 代理服务处理请求的线程前缀,默认为AngusAgent-Threads。
angusagent.threadNamePrefix=AngusAgent-Thread
#-----------------------------------------------------------------------------------
# Angus代理管理配置
#-----------------------------------------------------------------------------------
## 代理服务管理端点的基本路径,固定为:/actuator。
#angusagent.management.endpointsBasePath=/actuator
## 代理服务管理端点允许跨域访问,默认为false。
angusagent.management.endpointsAllowCors=false
#-----------------------------------------------------------------------------------
# Angus代理身份配置
#-----------------------------------------------------------------------------------
## 代理服务的租户ID,私有版本环境时需要手动配置,默认为空。
angusagent.principal.tenantId=1
## 代理服务设备(节点)ID,私有版本环境时需要手动配置,默认为空。
angusagent.principal.deviceId=205198142092607130
#-----------------------------------------------------------------------------------
# Angus代理推送配置
#-----------------------------------------------------------------------------------
# 推送JVM指标的时间间隔,默认为15秒。
angusagent.jvmMetrics.pushIntervalInSecond=15
# 推送JVM指标的超时时间,不能超过exchange.pushTimeout,默认为10秒。
angusagent.jvmMetrics.pushTimeoutInSecond=10
# 推送代理节点信息到注册表的时间间隔,默认为300秒。
angusagent.nodeInfo.pushIntervalInSecond=300
# 推送代理节点信息到注册表的超时时间,不能超过exchange.pushTimeout,默认为10秒
angusagent.nodeInfo.pushTimeoutInSecond=10
# 推送代理节点资源使用率到注册表的时间间隔,默认为15秒。
angusagent.nodeUsage.pushIntervalInSecond=15
# 推送代理节点资源使用率到注册表的超时时间,不能超过exchange.pushTimeout,默认为10秒。
angusagent.nodeUsage.pushTimeoutInSecond=10
- 数据交换器配置(exchange.properties)
#-----------------------------------------------------------------------------------
# 推送客户端配置
#-----------------------------------------------------------------------------------
# 交换服务器主机,在直接连接模式下仅用于测试环境,默认为127.0.0.1:5035。
# exchange.serverHost=127.0.0.1:5035
## 配置访问控制器(AngusCtrl)API所需的访问令牌,在私有版环境手动启动时需要,默认为空。
exchange.ctrlAccessToken=2PT.uk3dciHZyVVt8zBdnxOgcz4BpGNuNl3u.d241ce59daa19ns51b2e6528a3dcf7ab5
# 控制器服务发现URL前缀,如果未配置或连接异常,则使用serverHost的值作为控制器连接地址。
exchange.ctrlUrlPrefix=https://bj-c1-prod-apis.xcan.cloud/alctrl/openapi2p/v1/ctrl
# 同时进行客户端推送请求的数量,默认为1。
exchange.clientNum=1
## 客户端推送请求线程数,如果为零,则表示根据CPU核心数调整线程数2*cpu个线程池在客户端上运行,默认为1。
exchange.clientWorkNum=5
# 客户端连接的身份验证和绑定超时时间,默认为20秒。
exchange.clientAuthTimeout=20000
#-----------------------------------------------------------------------------------
# 推送客户端和服务端公共配置
#-----------------------------------------------------------------------------------
# 处理请求的线程前缀,默认为Exchange。
exchange.threadNamePrefix=Exchange
# exchange.serverHosts=127.0.0.1:5035,127.0.0.1:5036
# 允许的最大超时次数,超过该次数将停止发送,默认为5。
exchange.allowMaxTimeoutTimes=5
# 推送定时器线程的数量,默认为5。
exchange.pushTimerThreadNum=5
# 推送定时器线程的优先级,默认为Threads.NORM_PRIORITY + 2。
exchange.pushTimerThreadPriority=7
# 推送超时时间,PushContext的超时设置具有更高的优先级,默认为15000毫秒。
exchange.pushTimeout=15000
# 推送器ACK确认线程的数量,默认为1。
exchange.ackThreadNum=1
# 推送器ACK确认线程的优先级,默认为Threads.NORM_PRIORITY + 2。
exchange.ackThreadPriority=7
#-----------------------------------------------------------------------------------
# 推送安全配置
#-----------------------------------------------------------------------------------
exchange.securityPublicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4Y1ChYPYPDKuKbawHF4Go9Ewp54eB39czWY2h9XcTs24jXkvmR6dHg06Zj0intj/HLsTHa+FEy14yLE6JYH3dd9qHqCRiMXKktm7g3EceA5mehbbgqDs8jxet7chQz56v925pHsl1z82OIzpJXhXgChQd5HXY5OKYaWvFvbyYWwIDAQAB
四、验证
访问如下代理地址,如果返回health状态为UP
表示代理已成功运行。
curl -i http://localhost:6807
HTTP/1.1 200 OK
XC-Agent: Angus
Content-Type: application/json
content-length: 318
{"app":"AngusAgent","version":"1.0.0","health":{"status":{"status":"UP"}},"uptime":"583846816","home":"/data/XCanAngus/AngusAgent-Full-1.0.0/","principal":{"principal.deviceId":"205198142092607130","principal.tenantId":"1"},"server":{"port":6807,"ip":"0.0.0.0"},"diskSpace":{"total":"63278391296","used":"4842176512"}}
此外,在AngusTester节点列表中查看节点"连接状态",确保连接状态为已连接
,只有连接状态是已连接时表示代理安装成功,注意:连接状态有最大2分钟内延迟
。
如果代理未成功运行,或状态连接不成功,需要您检查配置重启再试,或提交在线工单协助解决。
五、启动
- Linux或MacOS
进入AngusAgent安装目录,运行startup-agent.sh
启动脚本。
> ./startup-agent.sh
Home Dir: /data/XCanAngus/AngusAgent-Full-1.0.0
Agent service started, PID=12344
六、停止
- Linux或MacOS
进入AngusAgent安装目录,运行shutdown-agent.sh
停止脚本。
> ./shutdown-agent.sh
Home Dir: /data/XCanAngus/AngusAgent-Full-1.0.0
Attempting to stop the process through OS signal.
Agent service process is killed, PID=12344