所有文档

          Elasticsearch BES

          集群

          创建集群

          如下代码可以新建一个集群,集群包含1个es_node节点和1个kibana节点。

          public void createCluster(BesClient client) {
              // 构建集群的请求体
              BesCreateClusterRequest createOrderRequestVo = new BesCreateClusterRequest();
              // 创建节点类型模板
              BesCreateClusterRequest.ModuleInfo moduleInfo = new BesCreateClusterRequest.ModuleInfo();
              // 创建节点类型模板
              BesCreateClusterRequest.ModuleInfo moduleInfo2 = new BesCreateClusterRequest.ModuleInfo();
              List<BesCreateClusterRequest.ModuleInfo> moduleInfoList = new ArrayList<BesCreateClusterRequest.ModuleInfo>();
              // 创建集群的付费方式
              BesCreateClusterRequest.ClusterBilling clusterBilling = new BesCreateClusterRequest.ClusterBilling();
              // 设置创建集群的名称
              createOrderRequestVo.setName({clusterName});
              // 设置创建集群的密码
              createOrderRequestVo.setPassword({passwrod});
              // 设置集群所配置的节点类型
              moduleInfo.setType("es_node");
              // 设置该节点类型的节点数量
              moduleInfo.setInstanceNum(1);
              // 设置集群所配置的节点类型
              moduleInfo2.setType("kibana");
              // 设置该节点类型的节点数量 (kibana类型节点为附赠节点,至多创建1个kibana节点)
              moduleInfo2.setInstanceNum(1);
              moduleInfoList.add(moduleInfo);
              moduleInfoList.add(moduleInfo2);
              // 设置集群的付费方式为预付费 (后付费为postpay)
              clusterBilling.setPaymentType("prepay");
              // 设置创建集群的时长 (后付费为0)
              clusterBilling.setTime(1);
              createOrderRequestVo.setModules(moduleInfoList);
              createOrderRequestVo.setBilling(clusterBilling);
              // 设置集群版本 (当前可选的版本号为6.5.3和7.4.2)
              createOrderRequestVo.setVersion("7.4.2");
              // 设置节点配置类型
              createOrderRequestVo.setSlotType("calculate_v1");
              // 设置创建集群时用的可用区 (见代码下方说明)
              createOrderRequestVo.setAvailableZone({可用区名称});
              // 设置创建集群时用的安全组 (见代码下方说明)
              createOrderRequestVo.setSecurityGroupId({安全组ID});
              // 设置创建集群时用的子网(见代码下方说明)
              createOrderRequestVo.setSubnetUuid({子网ID});
              // 设置创建集群时用的VPC(见代码下方说明)
              createOrderRequestVo.setVpcId({VpcId});
              createOrderRequestVo.setServiceType("BES");
              BesCreateClusterResponse deploy = besClient.createCluster(createOrderRequestVo);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          name String 集群名称
          password String 操作ES所需的密码
          modules List 节点信息
          version String 集群版本
          slotType String 资源配置类型
          availableZone String 可用区
          securityGroupId String 安全组ID
          subnetUuid String 子网ID
          vpcId String 虚拟网络ID
          billing ClusterBilling 集群计费信息

          Module

          名称 类型 参数描述
          type String 节点的类型;es_node表示es节点、kibana表示kibana节点
          instanceNum Int 节点数量

          ClusterBilling

          名称 类型 参数描述
          paymentType String 计费方式;postpay表示后付费、prepay表示预付费
          time int 购买时长(后付费为0),单位是月

          更多节点配置类型类型请参考节点配置类型按需创建集群 获取vpc id方式(可用区域、安全组ID、子网ID参考vpc id方式)

          1.获取VPC ID(vpcId):详见文档链接

          2.获取可用区域(availableZone)、子网uuid(subnet_uuid):详见文档链接

          3.获取安全组ID(securityGroupId):详见文档链接

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          名称 类型 参数描述
          orderId String 订单ID
          1. 创建BES请求是一个异步请求,返回200和订单ID表明订单生成,后续可以通过查询集群列表查看集群创建进度。

          扩容集群

          支持对BES集群扩容操作,具体可参考以下代码。

          public void resizeCluster(BesClient client) {
              BesResizeClusterRequest besResizeClusterRequest = new BesResizeClusterRequest();
              BesResizeClusterRequest.ModuleDesc moduleDesc = new BesResizeClusterRequest.ModuleDesc();
              List<BesResizeClusterRequest.ModuleDesc> modules = new ArrayList<BesResizeClusterRequest.ModuleDesc>();
              // 设置集群所在区域
              besResizeClusterRequest.setRegion("bj");
              // 设置需要扩容集群名称
              besResizeClusterRequest.setName("clusterName");
              // 设置付费方式
              besResizeClusterRequest.setPaymentType("postpay");
              // 设置需要扩容集群ID
              besResizeClusterRequest.setDeployId("clusterId");
              // 设置需要扩容集群版本(需和创建时的集群版本一致)
              moduleDesc.setVersion("7.4.2");
              // 设置需要扩容的节点类型
              moduleDesc.setType("es_node");
              // 设置需要扩容的节点配置类型 (需和创建时的类型一致)
              moduleDesc.setSlotType("calculate_v1");
              // 设置需要扩容后的节点数量 (数量不可少于当前es_node节点数量)
              moduleDesc.setDesireInstanceNum(2);
              modules.add(moduleDesc);
              besResizeClusterRequest.setModules(modules);
              BesCreateClusterResponse besCreateClusterResponse = this.besClient.resizeCluster(besResizeClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          name String 集群名称
          paymentType String 计费方式;postpay表示后付费、prepay表示预付费
          clusterId String 集群ID
          region String 地域
          modules List

          Module

          名称 类型 是否必须 参数描述
          desireInstanceNum int 节点数量
          slotType String 资源配置类型
          type String 节点的类型;es_node表示es节点、kibana表示kibana节点
          version String 集群版本

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          名称 类型 参数描述
          orderId String 订单ID

          查询集群列表

          如下代码可以罗列出属于请求调用者的所有集群。

          public void listClusters(BesClient client) {
          	BesListClusterRequest besListClusterRequest = new BesListClusterRequest();
              // 当前页数(最小1)
              besListClusterRequest.setPageNo(1);
              // 设置每页展示几个集群信息(最小20)
              besListClusterRequest.setPageSize(20);
              BesListClusterResponse besListClusterResponse = besClient.clusterList(besListClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          pageNo int 页数
          pageSize int 页大小

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          page ListPageResponse 集群信息列表

          ListPageResponse

          名称 类型 参数描述
          pageNo int 页数
          pageSize int 页大小
          totalCount int 集群个数
          result List 集群信息

          ClusterSummaryInfo

          名称 类型 参数描述
          clusterId String 集群Id
          clusterName String 集群名称
          createTime String 创建时间
          actualStatus String 实际状态
          runningTime String 运行时长
          billing BesClusterBillingResponse 集群计费信息

          actual_status取值说明:

          取值 说明
          Initializing 正在创建
          Deleting 删除中
          Stopping 正在停止
          Running 运行中
          Starting 正在启动
          Stopped 已停止
          Deleted 删除中
          Unknown 异常状态

          BesClusterBillingResponse

          名称 类型 参数描述
          paymentType String 支付方式

          查询集群详情

          使用以下代码可以查询指定BES集群的详细信息。

          public void getClusterDetail(BesClient client) {
              BesClusterDetailRequest besClusterDetailRequest = new BesClusterDetailRequest();
              // 设置需要查询的集群ID
              besClusterDetailRequest.setClusterId(clusterId);
              BesClusterDetailResponse besClusterDetailResponse = besClient.clusterDetail(besClusterDetailRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群Id

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result ClusterDetail 集群详细信息

          ClusterDetail

          名称 类型 参数描述
          clusterId String 集群Id
          clusterName String 集群名称
          adminUsername String 管理员名称
          desireStatus String 设备状态
          status String 实际状态
          esUrl String ES服务器访问路径
          kibanaUrl String Kibana服务器访问路径
          esEip String ES公网访问IP
          kibanaEip String Kibana公网访问IP
          modules List 节点信息列表
          instances List 节点实例列表
          expireTime String 终止时间
          region String 所属地区
          vpc String 虚拟网卡
          subnet String 子网
          availableZone String 可用区
          securityGroup String 安全组
          billing BesClusterBillingResponse 集群计费信息

          ClusterDetail.status 取值同 ClusterSummaryInfo.actual_status;

          ModuleInfoResponse

          名称 类型 参数描述
          type String type表示节点的类型;es_node表示es节点、kibana表示kibana节点
          version String 集群版本
          slotType String 资源配置类型
          slotDescription String 资源配置类型描述
          actualInstance_num int 实例数量

          InstanceInfoResponse

          名称 类型 参数描述
          instanceId String 节点实例Id
          status String 节点实例状态
          moduleType String 表示节点的类型;es_node表示es节点、kibana表示kibana节点
          moduleVersion String 节点实例所属集群版本
          hostIp String 主机Ip

          InstanceInfoResponse.status 取值同 ClusterSummaryInfo.actual_status;

          停止集群

          使用以下代码可以停止集群。

          public void stopCluster(BesClient client) {
              BesStopClusterRequest besStopClusterRequest = new BesStopClusterRequest();
              // 设置需要停止的集群ID
              besStopClusterRequest.setClusterId(clusterId);
              besClient.stopCluster(besStopClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群Id

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空)

          启动集群

          使用以下代码可以启动集群。

          public void startCluster(BesClient client) {
          	BesStartClusterRequest besStartClusterRequest = new BesStartClusterRequest();
              // 设置需要启动的集群ID
              besStartClusterRequest.setClusterId(clusterId);
              besClient.startCluster(besStartClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群Id

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空)

          删除集群

          使用以下代码可以删除一个ES集群。

          public void deleteCluster(BesClient client) {
              BesDeleteClusterRequest besDeleteClusterRequest = new BesDeleteClusterRequest();
              // 设置需要删除的集群ID
              besDeleteClusterRequest.setClusterId(clusterId);
              besClient.deleteCluster(besDeleteClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群Id

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空)

          续费列表

          使用以下代码查询续费列表。

          public void getRenewList(BesClient client) {
             BesGetRenewListRequest listAutoRenew = new BesGetRenewListRequest();
                  # 排序规则:desc降序、asc升序
                  listAutoRenew.setOrder("desc");
                  # 排序字段
                  listAutoRenew.setOrderBy("expireTime");
                  # 页数 
                  listAutoRenew.setPageNo(1);
                  # 页大小
                  listAutoRenew.setPageSize(15);
                  # 多少天内过期(与当前时间比较)
                  listAutoRenew.setDaysToExpiration(15);
                  besClient.getRenewList(listAutoRenew);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          order String 排序规则
          orderBy String 排序字段
          pageNo int 页数
          pageSize int 页大小
          daysToExpiration int 与当前时间比较,还有多少天过期,-1为不限制

          返回结果说明

          名称 类型 参数描述
          success bool 操作是否成功
          status int 状态码
          page BesRenewListResponse 集群列表

          BesRenewListResponse

          名称 类型 参数描述
          clusterId String 集群ID
          clusterName String 集群名称
          region String 区域
          expiredTime String 到期时间
          clusterStatus String 集群状态

          BesRenewListResponse.cluster_status 取值同 ClusterSummaryInfo.actual_status;

          续费操作

          使用以下代码进行续费操作。

          public void renewCluster(BesClient client) {
             BesGetRenewListRequest listAutoRenew = new BesGetRenewListRequest();
                  BesRenewClusterRequest besRenewClusterRequest = new BesRenewClusterRequest();
                  # 集群ID
                  besRenewClusterRequest.setClusterId(clusterId);
                   # 续费时长,单位:月
                  besRenewClusterRequest.setTime(1);
          
                  besClient.renewCluster(besRenewClusterRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群ID
          time int 续费时长,单位:月

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result OrderUuidResult 订单创建成功响应订单Id

          OrderUuidResult

          名称 类型 参数描述
          orderId String 订单ID

          创建自动续费规则

          使用以下代码创建自动续费规则,支持批量创建。

          public void createAutoRenewRule(BesClient client) {
             BesCreateAutoRenewRuleRequest createAutoRenewRuleRequest = new BesCreateAutoRenewRuleRequest();
                  List<String> clusterIds = new ArrayList<String>();
                  clusterIds.add(clusterId);
                  // 集群ID
                  createAutoRenewRuleRequest.setClusterIds(clusterIds);
                  // 用户ID
                  createAutoRenewRuleRequest.setUserId("XXX");
                  // 续费时长
                  createAutoRenewRuleRequest.setRenewTime(1);
                  // 续费时间单位 支持month,yea
                  createAutoRenewRuleRequest.setRenewTimeUnit("month");
                  besClient.createAutoRenewRule(createAutoRenewRuleRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterIds List 集群ID集合
          userId String 用户ID
          renewTimeUnit String 续费时间单位 支持month,year
          renewTime int 续费时长

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空)

          查看自动续费规则列表

          使用以下代码查询自动续费规则列表。

          public void getutoRenewRuleList(BesClient client) {
             besClient.getAutoRenewRuleList();
          }

          请求参数说明

          使用创建client的Ak、SK对应的账户进行查询,不需要显示传递参数

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result List 续费信息列表

          BesAotuRenewListResponse

          名称 类型 参数描述
          uuid String 续费规则的ID
          userId String 用户ID
          clusterId String 集群信息
          region String 区域
          renewTimeUnit String 续费时间单位 支持month,year
          renewTime int 续费时长
          createTime String 创建时间
          updateTime String 修改时间

          更新自动续费规则

          使用以下代码更新自动续费规则。

          public void updateAutoRenewRule(BesClient client) {
             BesUpdateAutoRenewRuleRequest updateAutoRenewRuleRequest = new BesUpdateAutoRenewRuleRequest();
                  // 集群ID
                  updateAutoRenewRuleRequest.setClusterId(clusterId);
                  // 续费时长
                  updateAutoRenewRuleRequest.setRenewTime(2);
                  // 续费时间单位 支持month,year
                  updateAutoRenewRuleRequest.setRenewTimeUnit("month");
                  besClient.updateAutoRenewRule(updateAutoRenewRuleRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群ID
          renewTimeUnit String 续费时间单位 支持month,year
          renewTime int 续费时长

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空

          删除自动续费规则

          使用以下代码删除自动续费规则。

          public void deleteAutoRenewRule(BesClient client) {
              // 集群ID
              deleteAutoRenewRuleRequest.setClusterId(clusterId);
              besClient.deleteAutoRenewRule(deleteAutoRenewRuleRequest);
          }

          请求参数说明

          名称 类型 是否必须 参数描述
          clusterId String 集群ID

          返回结果说明

          名称 类型 参数描述
          success boolean 操作是否成功
          status int 状态码
          result String 常量字符串(没有返回值时为空
          上一篇
          BesClient
          下一篇
          实例