更新时间:2024-04-08 GMT+08:00

创建健康检查

功能介绍

为后端云服务器组创建健康检查,用来检查该后端云服务器组关联的后端云服务器的状态,如果检查状态为OFFLINE则表示后端云服务器的服务异常,请检查服务器的配置。

接口约束

安全组需放通网段100.125.0.0/16流量,否则无法进行健康检查。

URI

POST /v2.0/lbaas/healthmonitors

请求消息

表1 请求参数

参数名称

是否必选

参数类型

描述

healthmonitor

Object

健康检查对象。详见表2

表2 healthmonitor字段说明

参数

是否必选

类型

描述

tenant_id

String

健康检查所在的项目ID。

需要和token中的project_id一致。

支持的最大字符长度:255

name

String

健康检查名称。

支持的最大字符长度:255

delay

Integer

健康检查的间隔,单位秒,取值范围[1,50]。

max_retries

Integer

健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE,取值范围[1,10]。

max_retries_down

Integer

健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE,取值范围[1,10]。

pool_id

String

健康检查关联的后端云服务器组ID。

每个后端云服务器组只能有一个健康检查。

admin_state_up

Boolean

健康检查的管理状态。

该字段为预留字段,暂未启用。默认为true。

timeout

Integer

健康检查超时时间,单位秒,取值范围[1,50]。

说明:

建议该值小于delay的值。

type

String

健康检查的类型。

取值范围:TCP、UDP_CONNECT、HTTP。

健康检查的type与其关联的后端云服务器组的protocol有如下关系:

  • 后端云服务器组的protocol为UDP时,健康检查的type只能为UDP_CONNECT;
  • 后端云服务器组的protocol为TCP时,健康检查的type可以为TCP、HTTP;
  • 后端云服务器组的protocol为HTTP时,健康检查的type可以为TCP、HTTP。

monitor_port

Integer

健康检查端口号,取值范围[1,65535]。

默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。

domain_name

String

健康检查时,发送的http请求的域名。

仅当type为HTTP时生效。

默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。

以数字或字母开头,只能包含数字、字母、’-’、’.’。

例如:www.test.com

支持的最大字符长度:100

url_path

String

健康检查时发送的http请求路径。默认为“/”。

以“/”开头。

仅当type为HTTP时生效。

例如:“/test”

支持的最大字符长度:80

expected_codes

String

期望HTTP响应状态码,指定下列值:

单值,例如200;

列表,例如200,202;

区间,例如200-204。

仅当type为HTTP时生效。

支持的最大字符长度:64

说明:

该字段为预留字段,暂未启用。

http_method

String

HTTP请求的方法;默认值:GET

取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。

仅当type为HTTP时生效。

说明:

该字段为预留字段,暂未启用。

响应消息

表3 响应参数

参数

参数类型

描述

healthmonitor

Object

健康检查对象。详见表4

表4 healthmonitor字段说明

参数

参数类型

描述

id

String

健康检查ID。

tenant_id

String

健康检查所在的项目ID。

name

String

健康检查名称。

delay

Integer

健康检查间隔,单位秒,取值范围[1,50]。

max_retries

Integer

健康检查连续成功多少次后,将后端服务器的健康检查状态由OFFLINE判定为ONLINE,取值范围[1,10]。

max_retries_down

Integer

健康检查连续失败多少次后,将后端服务器的健康检查状态由ONLINE判定为OFFLINE,取值范围[1,10]。

pools

Array

健康检查关联的后端云服务器组的ID列表。详见表5

admin_state_up

Boolean

健康检查的管理状态。

该字段为预留字段,暂未启用。取值范围:true/false。

  • true表示开启。
  • false表示关闭。

timeout

Integer

健康检查超时时间,单位秒,取值范围[1,50]。

说明:

建议该值小于delay的值。

type

String

健康检查的类型。

取值范围:TCP、UDP_CONNECT、HTTP。

健康检查的type与其关联的后端云服务器组的protocol有如下关系:

  • 后端云服务器组的protocol为UDP时,健康检查的type只能为UDP_CONNECT;
  • 后端云服务器组的protocol为TCP时,健康检查的type可以为TCP、HTTP;
  • 后端云服务器组的protocol为HTTP时,健康检查的type可以为TCP、HTTP。

monitor_port

Integer

健康检查端口号,取值范围[1,65535]。

默认为空,表示使用后端云服务器的protocol_port作为健康检查的检查端口。

expected_codes

String

期望HTTP响应状态码,指定下列值:

单值,例如200;

列表,例如200,202;

区间,例如200-204。

仅当type为HTTP时生效。

暂时不支持该字段,统一置为200。

domain_name

String

健康检查时,发送的http请求的域名。

仅当type为HTTP时生效。

默认为空,表示使用负载均衡器的vip_address作为http请求的目的地址。

以数字或字母开头,只能包含数字、字母、’-’、’.’。

例如:www.test.com

url_path

String

健康检查时发送的http请求路径。默认为“/”。

以“/”开头。

仅当type为HTTP时生效。

例如:“/test”

http_method

String

HTTP请求的方法;默认值:GET

取值范围:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、PATCH。

仅当type为HTTP时生效。

说明:

该字段为预留字段,暂未启用。

表5 pools字段说明

参数

参数类型

描述

id

String

关联的后端服务器组id

请求示例

  • 请求样例 创建健康检查
    POST https://{Endpoint}/v2.0/lbaas/healthmonitors
    
    {
      "healthmonitor": {
        "admin_state_up": true,
        "pool_id": "bb44bffb-05d9-412c-9d9c-b189d9e14193",
        "domain_name": "www.test.com",
        "delay": 10,
        "max_retries": 10,
        "max_retries_down": 5,
        "timeout": 10,
        "type": "HTTP"
      }
    }

响应示例

  • 响应样例
    {
      "healthmonitor": {
        "name": "",
        "admin_state_up": true,
        "tenant_id": "145483a5107745e9b3d80f956713e6a3",
        "domain_name": "www.test.com",
        "delay": 10,
        "max_retries": 10,
        "expected_codes": "200", 
        "max_retries_down": 5,
        "http_method": "GET",
        "timeout": 10,
        "pools": [
          {
            "id": "bb44bffb-05d9-412c-9d9c-b189d9e14193"
          }
        ],
        "url_path": "/",
        "type": "HTTP",
        "id": "2dca3867-98c5-4cde-8f2c-b89ae6bd7e36",
        "monitor_port": 112
      }
    }

返回码

请参见状态码