Elasticsearch 클러스터 자가 보호 구성

Elasticsearch 클러스터 자가 보호 구성
설정 디버깅의 원인은 주로 ES 집단이 스스로 보호할 수 있도록 보호하고 업무 인원들이 폭력적인 조회 문장을 쓰지 않도록 하기 위해서이다. 대량의 메모리나 CPU를 점용하여 최종적으로 es 집단을 직접 끊는다.문서의 모든 값은 참고값이고 구체적으로 얼마나 적합한지 설정하려면 집단 규모, index 분할 수량, 노드 설정 등에 따라 해야 한다.요소를 고려하여 합리적인 한도값을 설정하다.

디버그 환경


ES 버전: elasticsearch-6.2.4-1noarchOS:centos7.X

전역 시간 초과 검색.default_search_timeout


각 요청에서 시간 초과를 설정하는 것 외에도 ES는 전역적인 검색 시간 초과 검색을 지원합니다.default_search_timeout, 이 설정은 기본값이 없습니다. -1로 설정하면 이전에 설정한 값을 취소할 수 있습니다.

설정 방법:


persistent: 재부팅 후에도 유효합니다. transient: 재부팅 후 유효하지 않습니다.
PUT /_cluster/settings
{
    "persistent" : {
        "search.default_search_timeout" : "35s"
    }
}

검색 취소earch.low_level_cancellation


검색은 표준 작업 취소 메커니즘을 통해 취소할 수 있습니다.기본적으로 ES는 세그먼트 경계(segment boundaries)에서만 요청이 취소되었는지 확인하기 때문에 취소 작업은 큰 세그먼트로 인해 지연될 수 있습니다.취소 작업의 응답 시간을 낮추려면search를 설정할 수 있습니다.low_level_cancellation=true, 하지만 이 설정은 더욱 빈번한 검사를 초래할 수 있습니다.정기적으로 자신이 취소되었는지 확인하고, 만약 그렇다면 검색을 종료합니다.

설정 방법:

PUT /_cluster/settings
{
    "persistent" : {
        "search.low_level_cancellation" :true
    }
}

이 파라미터를 설정한 후api 인터페이스를 사용하여 작업을 수동으로 취소할 수 있습니다.

# task
GET _tasks?detailed=true&actions=*indices:data/read/search

# 
POST _tasks/CdoilmnzRVyllc0PbRbB2w:7280/_cancel

search 병렬 및 병렬


action.search.shard_count.limit


이 매개 변수는 메모리와 CPU 자원을 너무 많이 사용하지 않도록 한 번에 너무 많은 조각을 조작하는 것을 제한하는 데 쓰인다.기본적으로 ES는 검색 요청과 관련된 분할 수량을 제한하지 않습니다. 소프트 제한 액션을 설정할 수 있습니다.search.shard_count.리밋은 너무 많은 조각을 명중시켜달라는 요청을 거절합니다.
오류 로그가 아래와 같으면 이 인자를 수정하면 문제를 해결할 수 있습니다.
"reason" : "Trying to query 1344 shards, which is over the limit of 1000. This limit exists because querying 
many shards at the same time can make the job of the coordinating node very CPU and/or memory 
intensive. It is usually a better idea to have a smaller number of larger shards. Update 
[action.search.shard_count.limit] to a greater value if you really want to query that many shards at the same time."
PUT /_cluster/settings
{
    "persistent" : {
        "action.search.shard_count.limit" :"1000"
    }
}

or

curl -u admin:admin -XPUT 'https://localhost:9200/_cluster/settings' -H 'Content-Type: application/json' -d' 
{
    "persistent" : {
        "action.search.shard_count.limit" : "1000"
    }
}

max_concurrent_shard_requests (새 버전이 이 인자를 포기한 것 같습니다. 확인 중입니다...)
 , 。 , 256。

######  :

PUT /_cluster/settings
{
    "persistent" : {
        "max_concurrent_shard_requests : "80"
    }
}

index.max_result_window


기본 크기: 10000
바로from+size,from:되돌릴 문서를 어디서부터,size:몇 개 되돌릴지 결정합니다.만약from+size가 매우 크다면 많은 메모리와 시간을 소모할 것이다.이 설정은 메모리가 부족한 상황을 방지하기 위해서입니다.이 설정은 색인층입니다.all가 설정했습니다. 로그를 봐도 색인에 이 설정을 추가합니다. 다음에 새로 추가된 색인,max_result_윈도우 기본값은 1w입니다.Elasticsearch를 사용하여 검색 검색을 하는 과정에서 Result window is too large 문제가 발생했습니다.일반적으로 이 매개 변수가 너무 작게 설정되어 발생한 것이다.다음과 같이 수정할 수 있습니다.

단일 인덱스 구성

# 
GET /27_hot_v1/_settings

# 
PUT /27_hot_v1/_settings
{
  "index.max_result_window":"10000"
}

or

PUT /27_hot_v1/_settings
{
  "index.max_result_window":"10000"
}

curl -XPUT 192.168.40.31:9200/$(Index-name)/_settings -d '{ "index.max_result_window" :"1000000"}'

모든 인덱스 적용 설정

curl -XPUT 192.168.40.31:9200/_all/_settings -d '{ "index.max_result_window" :"1000000"}'

구성 결과 확인

curl -XGET 172.20.7.22:9200/$(index-name)/_settings

index.max_inner_result_window:


기본값은 100입니다.이 설정은 결과의 결과를 되돌려주는 것을 제한합니다!index.max_inner_result_window: 및 index.max_result_윈도우 원리의 차이가 많지 않습니다. 이 설정은 결과의 결과를 되돌려줍니다.

단일 인덱스 구성

# 
GET /27_hot_v1/_settings

# 
PUT /27_hot_v1/_settings
{
  "max_inner_result_window":"5000"
}

or

PUT /27_hot_v1/_settings
{
  "index.max_inner_result_window":"100"
}

index.max_docvalue_fields_search


기본적으로 최대 100 필드를 요청합니다. Doc-value 필드는 각 필드의 문서 검색을 초래할 수 있기 때문에 비용이 많이 듭니다.index를 사용할 수 있습니다.max_docvalue_fields_검색 색인 설정 덮어쓰기.
PUT /27_hot_v1/_settings
{
  "index.max_docvalue_fields_search":"100"
}

index.max_docvalue_fields_search

 32。ndex.max_script_fields: script_field 。
PUT /27_hot_v1/_settings
{
  "ndex.max_script_fields":"32"
}

참조 문서:https://www.elastic.co/guide/en/elasticsearch/reference/6.5/search.html#global-search-cancellationhttps://mp.weixin.qq.com/s/mKL2PJuNUJTl71Axv4-Rcwhttps://www.cnblogs.com/huangpeng1990/p/4364341.htmlhttps://kionf.com/2019/01/22/errornote-elk/https://www.elastic.co/guide/en/elasticsearch/reference/6.6/modules-threadpool.html#_literal_fixed_literal

좋은 웹페이지 즐겨찾기