网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
云化数据中心 CloudDC
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务

配置Elasticsearch集群读写流量控制策略1.0

更新时间:2024-10-26 GMT+08:00
分享

场景描述

流量控制1.0提供节点级别的流量控制功能,可提供单个节点基于黑白名单的访问限制、HTTP并发连接数限制、HTTP最大连接数限制、基于请求Path的堆内存最大使用量流控能力、基于CPU最大占用率流控能力,一键断流能力,同时也提供节点访问IP统计和URL的采样统计能力。开启流控功能会使请求在入口处直接阻塞,可以缓解节点高并发场景下的集群压力,降低P99时延,减少节点不可用的风险。

表1 流量控制策略

策略

描述

相关文档

HTTP/HTTPS流控

  • HTTP/HTTPS黑白名单设置IP和子网控制客户端IP访问,如果节点IP在黑名单中,则该客户端的连接将直接中断,节点不会处理任何请求。白名单规则优先于黑名单规则,如果客户端IP在黑白名单中都出现,客户端请求将不会被拒绝。
  • HTTP/HTTPS并发连接数流控通过限制节点每秒中的HTTP连接总数来限制节点流量。
  • HTTP/HTTPS新建连接数流控通过限制节点新建的连接数来限制节点流量。

开启HTTP/HTTPS节点流控

内存流控

基于节点堆内存使用量限制请求Path,支持设置内存流控白名单、全局内存使用阈值和基于单个Path设置堆内存使用阈值。全局内存流控阈值优先于单个Path内存阈值,白名单配置Path不参与内存流控。

开启内存流控

Path全局免流控白名单

可以根据客户需要,设置Path白名单全局免流控,当用户需要自定义插件时,可适当配置。

添加Path全局免流控白名单

请求采样统计

可以记录客户端IP的访问数量和采样用户的请求Path,用户可以基于统计值识别客户端IP的访问流量和分析哪些请求Path访问量大。

开启请求采样统计

一键断流

可以切断节点的所有访问流量,不包括kibana访问和elasticsearch monitor类接口。

开启一键断流

流量控制

提供单独的流量统计查看接口,记录触发流控的数量,用户可以基于统计值评估流控配置阈值和衡量集群压力。

查看流量控制信息

访问日志

可以记录一段时间内节点接收的HTTP/HTTPS请求URL和Body,用户可以基于访问日志信息分析当前的流量压力。

开启并查看访问日志

访问日志记录

客户端访问集群节点,会记录为{集群名_access_log.log}访问日志文件,通过日志备份功能可以在OBS详细查看访问日志。

开启访问日志记录到文件

CPU流控

基于节点配置的最大CPU占用率来限制节点访问流量。

开启CPU流控

约束限制

  • 2023年02月及之后创建的Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制2.0版本,之前创建Elasticsearch 7.6.2和Elasticsearch 7.10.2集群仅支持流量控制1.0版本。
  • 开启流量控制功能会消耗部分节点性能。
  • 开启流量控制会直接拒绝超过阈值的用户请求。
  • 开启内存流控会消耗部分请求性能,开启内存流控会导致Kibana的部分search请求失败。
  • 开启访问日志会影响集群性能。
  • 内存流控和CPU流控都是基于请求Path的流控,Path长度和个数不应该配置过多,否则影响集群性能。

开启HTTP/HTTPS节点流控

  1. 执行如下命令,开启HTTP/HTTPS节点流控。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.http.enabled": true,
        "flowcontrol.http.allow": ["192.168.0.1/24", "192.168.2.1/24"],
        "flowcontrol.http.deny": "192.168.1.1/24",
        "flowcontrol.http.concurrent": 1000,
        "flowcontrol.http.newconnect": 1000,
        "flowcontrol.http.warmup_period": 0
      }
    }
    表2 HTTP/HTTPS流控的配置项说明

    配置项

    类型

    说明

    flowcontrol.http.enabled

    Boolean

    HTTP/HTTPS流控开关,默认关闭,开启会影响节点访问性能。

    取值范围:true、false

    默认值:false

    flowcontrol.http.allow

    List<String>

    IP地址访问白名单。

    支持配置多个IP地址和掩码,或者IP地址列表形式,中间用英文逗号隔开。例如“xx.xx.xx.xx/24,xx.xx.xx.xx/24”“xx.xx.xx.xx,xx.xx.xx.xx”形式。

    默认值为空。

    flowcontrol.http.deny

    List<String>

    IP访问黑名单。

    支持配置多个IP和掩码,或者IP列表形式,中间用英文逗号隔开。

    默认值为空。

    flowcontrol.http.concurrent

    Integer

    HTTP/HTTPS请求的并发连接数阈值。

    默认值:节点可用核数x600

    flowcontrol.http.newconnect

    Integer

    HTTP/HTTPS请求的每秒可以创建的新建连接数阈值。

    默认值:节点可用核数x200

    flowcontrol.http.warmup_period

    Integer

    HTTP/HTTPS新建连接数达到最大速率的需要的时间,如果“flowcontrol.http.newconnect”配置为“100”“flowcontrol.http.warmup_period”配置为“5000ms”,表示5s以后系统的新建连接数才可以达到每秒100。

    取值范围:0~10000

    单位:ms

    默认值:0

    说明:

    当所有参数值设置为“null”时,表示恢复配置默认值。

  2. 执行如下命令,关闭HTTP/HTTPS节点流控。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.http.enabled": false
      }
    }

开启内存流控

说明:

Elasticsearch 5.5.1版本的集群开启内存流控会导致“_mget”请求被拦截,Kibana访问异常,可以通过把“_mget”请求加入请求白名单规避。

  1. 开启内存流控。
    • 执行如下命令,开启内存流控。
      PUT /_cluster/settings
      {
        "persistent": {
          "flowcontrol.memory.enabled": true,
          "flowcontrol.memory.allow_path": "/index/_search",
          "flowcontrol.memory.heap_limit": "85%"
        }
      }
    • 执行如下命令,开启单个请求Path的内存流控。

      当基于单个索引和请求Path设置堆内存使用阈值时,可以基于此规则做优先级调度。

      PUT /_cluster/settings
      {
        "persistent": {
          "flowcontrol.memory.enabled": true,
          "flowcontrol.memory": {
            "flowcontrol_search": {
              "filter_path": "index1/_search",
              "heap_limit": "50%"
            },
            "flowcontrol_bulk": {
              "filter_path": "index*/_bulk",
              "heap_limit": "50%"
            }
          }
        }
      }
    表3 内存流控的配置项说明

    配置项

    类型

    说明

    flowcontrol.memory.enabled

    Boolean

    内存流控开关,默认关闭,开启内存流控对节点性能有些许影响。

    取值范围:true、false

    默认值:false

    flowcontrol.memory.allow_path

    List<String>

    内存流控白名单Path。

    配置的路径不参与内存流控,可以支持通配符配置。集群控制的查询类接口默认放通,不参与内存流控,避免内存达到阈值,不能查询集群信息。

    例如:

    • "flowcontrol.memory.allow_path": "/index/_search",
    • "flowcontrol.memory.allow_path": "/index*/_search",
    • "flowcontrol.memory.allow_path": ["/index/_search", "/index1/_bulk"],

    支持最大配置10个Path,每个Path最大长度限制小于32。

    默认值为空。

    flowcontrol.memory.heap_limit

    String

    限制节点全局堆内存的最大使用率。不能低于堆内存的10%。

    取值范围:10%-100%

    默认值:90%

    flowcontrol.memory.*.filter_path

    String

    配置需要进行内存流控的访问Path,控制单个请求Path的堆内存使用阈值。

    默认值 "**", 表示匹配所有的路径。如果只配置了单路径“flowcontrol.memory.heap_limit”,没有配置“flowcontrol.memory.*.filter_path”,表示除去白名单外的所有path都影响。白名单规则优先于单路径规则,如果一个路径同时配置了“flowcontrol.memory.allow_path”和“flowcontrol.memory.*.filter_path”, 此请求路径会被允许。

    例如同时配置了“flowcontrol.memory.allow_path”和“flowcontrol.memory.*.filter_path”,其中flowcontrol.memory.*.filter_path="abc/_search"且flowcontrol.memory.allow_path="abc/_search",此种情况abc/_search将不被流控。

    最大长度:32

    flowcontrol.memory.*.heap_limit

    String

    配置请求Path的堆内存阈值,堆内存超过阈值触发流控。

    取值范围:0%-100%

    默认值:90%

    说明:

    当所有参数值设置为“null”时,表示恢复配置默认值。

  2. 执行如下命令,关闭集群内存流控。
    • 执行如下命令,删除单个请求Path的内存流控。

      关闭内存流控时,要先删除单个请求Path的内存流控。

      PUT /_cluster/settings
      {
        "persistent": {
          "flowcontrol.memory.enabled": true,
          "flowcontrol.memory": {
            "flowcontrol_search": {
              "filter_path": null,
              "heap_limit": null
            }
          }
        }
      }
    • 执行如下命令,关闭内存流控。
      PUT /_cluster/settings
      {
        "persistent": {
          "flowcontrol.memory.enabled": false
        }
      }

添加Path全局免流控白名单

执行如下命令,添加Path全局免流控白名单。
PUT _cluster/settings
{
  "persistent": {
    "flowcontrol.path.white_list": "xxxx"
  }
}
表4 Path全局免流控白名单的配置项说明

配置项

类型

说明

flowcontrol.path.white_list

List<String>

Path全局免流控白名单,配置的路径不参与内存、CPU流控和一键断流,IP流控除外。

支持最大配置10个Path,每个Path最大长度限制小于32。

默认值为空。

说明:

一般不建议配置此值,仅在自定义插件时根据业务需求配置。

说明:

当所有参数值设置为“null”时,表示恢复配置默认值。

开启请求采样统计

  1. 执行如下命令,开启请求采样统计。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.statics.enabled": true,
        "flowcontrol.statics.threshold": 100,
        "flowcontrol.statics.sample_frequency": 50
      }
    }
    表5 请求采样统计的配置项说明

    配置项

    类型

    说明

    flowcontrol.statics.enabled

    Boolean

    请求采样统计开关。开启请求采样统计对节点性能会有影响。

    取值范围:true、false

    默认值:false

    flowcontrol.statics.threshold

    Integer

    统计最近时间访问的请求数量。配置为100,表示会统计出最近访问最多的100个IP地址和基于采样统计的访问最多的100个URL。

    最小值:10

    最大值:1000

    默认值:100

    说明:
    • IP统计和URL采样统计基于访问时间缓存策略,节点会记录最近访问的IP和请求URL,如果缓存空间达到设置的阈值(即“flowcontrol.statics.threshold”配置值),访问时间距离现在最久的记录将被清除掉。
    • URL采样统计当前基于URL hash值确认访问Path的一致性。

    flowcontrol.statics.sample_frequency

    Integer

    Path采样频率。配置为100,表示每100个请求采样统计一次。

    最小值:50

    默认值:100

    说明:

    当所有参数值设置为“null”时,表示恢复配置默认值。

  2. 执行如下命令,关闭请求采样统计。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.statics.enabled": false
      }
    }

开启一键断流

  1. 执行如下命令,开启一键断流。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.break.enabled": true
      }
    }
  2. 执行如下命令,关闭一键断流。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.break.enabled": false
      }
    }

查看流量控制信息

  • 查看所有节点的流量控制情况
    GET /_nodes/stats/filter
  • 查看某个具体节点的流量控制情况
    GET /_nodes/{nodeId}/stats/filter

    “{nodeId}”为需要查看流量控制的节点ID。

响应示例:
说明:

返回值以Node级别分开,http记录并发和新建连接数据统计,memory记录内存流控统计,ip_address记录最近最多访问的客户端IP,url_sample记录采样的最近最多请求URL。cpu记录CPU流控统计。

{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "css-flowcontroller",
  "nodes" : {
    "ElBRNCMbTj6L1C-Wke-Dnw" : {
      "name" : "css-flowcontroller-ess-esn-1-1",
      "host" : "10.0.0.133",
      "timestamp" : 1613979513747,
      "flow_control" : {
        "transport" : {
          "concurrent_req" : 0,
          "rejected_concurrent" : 0,
          "rejected_new" : 0,
          "rejected_deny" : 0
        },
        "http" : {
          "concurrent_req" : 0,
          "rejected_concurrent" : 0,
          "rejected_new" : 0,
          "rejected_deny" : 0
        },
        "memory" : {
          "memory_allow" : 41,
          "memory_rejected" : 0
        },
        "cpu": {
          "rejected_cpu" : 0
        }
        "ip_address" : [
          {
            "ip" : "/10.0.0.198",
            "count" : 453
          },
          {
            "ip" : "/198.19.49.1",
            "count" : 42
          }
        ],
        "url_sample" : [
          {
            "url" : "/*/_search?pretty=true",
            "method" : "GET",
            "remote_address" : "/10.0.0.198:16763",
            "count" : 1
          }
        ]
      }
  }
}
表6 响应参数说明

参数名

说明

concurrent_req

节点实际的TCP连接数据信息, 没有开启流控这个配置也会记录,参考GET /_nodes/stats/http接口current_open值, 但是会比这个值小,这里忽略了白名单IP和内部节点IP。

rejected_concurrent

HTTP流控开启生效,关闭后不清零,开启流控期间拒绝的并发连接数。

rejected_new

HTTP流控开启生效,关闭后不清零,开启流控期间拒绝的新建连接数。

rejected_deny

HTTP流控开启生效,关闭后不清零,配置黑名单拒绝的请求数。

memory_allow

内存流控开启生效,关闭后不清零,内存流控允许的请求数,触发内存流控后允许的请求数量,allow_path白名单中通过请求不会被记录,如果allow_path配置为“**”,所有请求都不会被记录。

memory_rejected

内存流控开启生效,关闭后不清零,内存流控拒绝的请求数,触发内存流控后拒绝的请求数量,allow_path白名单中通过请求不会被记录,如果allow_path配置为“**”,所有请求都不会被记录。

rejected_cpu

CPU流控开启生效,关闭后不清零,超过CPU流控阈值拒绝的请求数。

ip_address

IP地址统计,基于配置值统计节点访问的IP地址和请求数量。参数说明请参见表7表7

url_sample

请求Path采样统计,基于配置时间和采样间隔统计相同请求URL数量。参数说明请参见表8

表7 ip_address

参数名

说明

ip

访问节点的源IP地址。

method

对应IP地址的访问次数统计。

表8 url_sample

参数名

说明

url

请求的采样统计,记录访问节点的请求URL。

method

对应请求Path的方法。

remote_address

请求对应的源IP地址和端口。

count

对应请求Path的采样统计次数。

开启并查看访问日志

  1. 执行如下命令,开启访问日志。
    • 开启集群所有节点的访问日志
      PUT /_access_log?duration_limit=30s&capacity_limit=1mb
    • 开启集群中某一节点的访问日志
      PUT /_access_log/{nodeId}?duration_limit=30s&capacity_limit=1mb

      “{nodeId}”为节点ID。

    表9 访问日志的配置项说明

    配置项

    类型

    说明

    duration_limit

    String

    访问日志记录时间。

    取值范围:10~120

    单位:s

    默认值:30

    capacity_limit

    String

    访问日志记录大小。统计开启访问日志后记录的请求大小,当统计的大小大于该配置值,访问日志记录终止。

    取值范围:1~5

    单位:MB

    默认值:1

    说明:
    • “duration_limit”“capacity_limit”只要有一个参数达到阈值,访问日志记录就会停止。
    • 当所有参数值设置为“null”时,表示恢复配置默认值。
  2. 执行如下命令,查看访问日志。
    • 查看集群所有节点的访问日志API
      GET /_access_log
    • 查看集群中某一节点的访问日志API
      GET /_access_log/{nodeId}

      “{nodeId}”为节点ID。

    响应示例:
    {
      "_nodes" : {
        "total" : 1,
        "successful" : 1,
        "failed" : 0
      },
      "cluster_name" : "css-flowcontroller",
      "nodes" : {
        "8x-ZHu-wTemBQwpcGivFKg" : {
          "name" : "css-flowcontroller-ess-esn-1-1",
          "host" : "10.0.0.98",
          "count" : 2,
          "access" : [
            {
              "time" : "2021-02-23 02:09:50",
              "remote_address" : "/10.0.0.98:28191",
              "url" : "/_access/security/log?pretty",
              "method" : "GET",
              "content" : ""
            },
            {
              "time" : "2021-02-23 02:09:52",
              "remote_address" : "/10.0.0.98:28193",
              "url" : "/_access/security/log?pretty",
              "method" : "GET",
              "content" : ""
            }
          ]
        }
      }
    }
    表10 响应参数说明

    参数名

    说明

    name

    节点名称。

    host

    节点对应的IP地址。

    count

    统计周期内,访问节点的请求数量。

    access

    统计周期内,访问节点的请求详情。参数说明请参见表11

    表11 access

    参数名

    说明

    time

    记录请求时间。

    remote_address

    请求对应的源IP地址和端口。

    url

    请求的原始URL

    method

    对应请求Path的方法。

    content

    对应请求的内容。

  3. 执行命令删除访问日志。
    • 删除集群所有节点的访问日志API
      DELETE /_access_log
    • 删除集群中某一节点的访问日志API
      DELETE /_access_log/{nodeId}

      “{nodeId}”为节点ID。

开启访问日志记录到文件

说明:
  • 开启访问日志记录到文件后,客户端访问集群节点,会记录为{集群名_access_log.log}文件,通过日志备份功能可以在OBS详细查看访问日志。
  • 该功能一般用于定位问题,问题解决后,建议关闭此开关。
  1. 执行如下命令,开启访问日志记录到文件。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.log.file.enabled": true
      }
    }
    表12 访问日志记录到文件的配置项说明

    参数

    类型

    说明

    flowcontrol.log.file.enabled

    Boolean

    是否将每个请求的日志详情记录到后台日志文件。

    取值范围:
    • true
    • false(默认值)
  2. 执行如下命令,关闭访问日志记录到文件。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.log.file.enabled": false
      }
    }

开启CPU流控

  1. 执行如下命令,开启CPU流控。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.cpu.enabled": true,
        "flowcontrol.cpu.percent_limit": 80,
        "flowcontrol.cpu.allow_path": ["index/_search"]
      }
    }
    表13 访问日志的配置项说明

    配置项

    类型

    说明

    flowcontrol.cpu.enabled

    Boolean

    是否开启CPU流控。

    取值范围:
    • true
    • false(默认值)

    flowcontrol.cpu.percent_limit

    Integer

    流控的阈值,在CPU使用率超过此阈值时触发流控。

    默认值:90

    flowcontrol.cpu.allow_path

    List<String>

    CPU流控白名单Path。

    配置的路径不参与CPU流控,支持通配符配置。集群控制的查询类接口默认放通,不参与CPU流控,避免CPU达到阈值导致不能查询集群信息。

    例如:

    • "flowcontrol.memory.allow_path": "/index/_search",
    • "flowcontrol.memory.allow_path": "/index*/_search",
    • "flowcontrol.memory.allow_path": ["/index/_search", "/index1/_bulk"],

    支持最大配置10个Path,每个Path最大长度限制小于32。

    默认值为空。

    说明:

    当所有参数值设置为“null”时,表示恢复配置默认值。

  2. 执行如下命令,关闭CPU流控。
    PUT /_cluster/settings
    {
      "persistent": {
        "flowcontrol.cpu.enabled": false
      }
    }
提示

您即将访问非华为云网站,请注意账号财产安全

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容