diff --git a/collector/server/src/main/java/com/usthe/collector/collect/http/HttpCollectImpl.java b/collector/server/src/main/java/com/usthe/collector/collect/http/HttpCollectImpl.java index 73fcc07..a09244f 100644 --- a/collector/server/src/main/java/com/usthe/collector/collect/http/HttpCollectImpl.java +++ b/collector/server/src/main/java/com/usthe/collector/collect/http/HttpCollectImpl.java @@ -71,7 +71,7 @@ public class HttpCollectImpl extends AbstractCollect { .execute(request, httpContext); int statusCode = response.getStatusLine().getStatusCode(); log.debug("http response status: {}", statusCode); - if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_MULTIPLE_CHOICES) { + if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_BAD_REQUEST) { // 1XX 3XX 4XX 5XX 状态码 失败 builder.setCode(CollectRep.Code.FAIL); builder.setMsg("statusCode: " + statusCode); @@ -327,7 +327,8 @@ public class HttpCollectImpl extends AbstractCollect { if (IpDomainUtil.isHasSchema(httpProtocol.getHost())) { requestBuilder.setUri(httpProtocol.getHost() + ":" + httpProtocol.getPort() + httpProtocol.getUrl()); } else { - if (httpProtocol.isSsl()) { + boolean ssl = Boolean.parseBoolean(httpProtocol.getSsl()); + if (ssl) { requestBuilder.setUri("https://" + httpProtocol.getHost() + ":" + httpProtocol.getPort() + httpProtocol.getUrl()); } else { requestBuilder.setUri("http://" + httpProtocol.getHost() + ":" + httpProtocol.getPort() + httpProtocol.getUrl()); diff --git a/common/src/main/java/com/usthe/common/entity/job/protocol/HttpProtocol.java b/common/src/main/java/com/usthe/common/entity/job/protocol/HttpProtocol.java index 281eaf8..a5cd9ed 100644 --- a/common/src/main/java/com/usthe/common/entity/job/protocol/HttpProtocol.java +++ b/common/src/main/java/com/usthe/common/entity/job/protocol/HttpProtocol.java @@ -32,7 +32,7 @@ public class HttpProtocol { /** * http是否使用链路加密ssl/tls,即是http还是https */ - private boolean ssl = false; + private String ssl = "false"; /** * http请求方法: get, post, put, delete, patch */ diff --git a/manager/src/main/resources/define/app/api.yml b/manager/src/main/resources/define/app/api.yml index 67d061a..b52b67b 100644 --- a/manager/src/main/resources/define/app/api.yml +++ b/manager/src/main/resources/define/app/api.yml @@ -44,7 +44,7 @@ metrics: # 请求方式 GET POST PUT DELETE PATCH method: ^_^method^_^ # 是否启用ssl/tls,即是http还是https,默认false - ssl: false + ssl: ^_^ssl^_^ # 认证 authorization: # 认证方式: Basic Auth, Digest Auth, Bearer Token diff --git a/manager/src/main/resources/define/app/website.yml b/manager/src/main/resources/define/app/website.yml new file mode 100644 index 0000000..cf6643b --- /dev/null +++ b/manager/src/main/resources/define/app/website.yml @@ -0,0 +1,56 @@ +# 监控应用类型名称(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: website +# 参数映射map. type是参数类型: 0-number数字, 1-string明文字符串, 2-secret加密字符串 +# 强制固定必须参数 - host +configmap: + - key: host + type: 1 + - key: port + type: 0 + - key: uri + type: 1 + - key: method + type: 1 + - key: ssl + type: 1 + - key: username + type: 1 + - key: password + type: 2 +# 指标组列表 +metrics: + # 第一个监控指标组 cpu + # 注意:内置监控指标有 (responseTime - 响应时间) + - name: summary + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: responseTime + type: 0 + unit: ms +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: ^_^uri^_^ + # 请求方式 GET POST PUT DELETE PATCH + method: ^_^method^_^ + # 是否启用ssl/tls,即是http还是https,默认false + ssl: ^_^ssl^_^ + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # todo xmlPath-xmlPath脚本,prometheus-Prometheus数据规则 + parseType: website \ No newline at end of file diff --git a/manager/src/main/resources/define/param/website.yml b/manager/src/main/resources/define/param/website.yml new file mode 100644 index 0000000..649dbe2 --- /dev/null +++ b/manager/src/main/resources/define/param/website.yml @@ -0,0 +1,47 @@ +# 监控应用类型名称(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: website +# 强制固定必须参数 - host(ipv4,ipv6,域名) +param: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: 主机Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: 端口 + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + - field: uri + name: URI路径 + type: text + # 当type为text时,用limit表示字符串限制大小 + limit: 100 + required: true + - field: method + name: 请求方式 + type: text + # 当type为text时,用limit表示字符串限制大小 + limit: 20 + required: true + - field: username + name: 用户名 + type: text + # 当type为text时,用limit表示字符串限制大小 + limit: 20 + required: false + - field: password + name: 密码 + type: password + required: false + - field: ssl + name: 使用SSL + type: boolean + required: true + # 当type为boolean时,前端用switch展示开关 + # 当type为radio单选框,checkbox复选框时,option表示可选项值列表 + # option: Yes,No \ No newline at end of file