Elasticsearch-모듈
Elasticsearch는 기능을 담당하는 여러 모듈로 구성됩니다. 이 모듈에는 다음과 같은 두 가지 유형의 설정이 있습니다.
Static Settings− 이러한 설정은 Elasticsearch를 시작하기 전에 config (elasticsearch.yml) 파일에서 구성해야합니다. 이러한 설정에 따른 변경 사항을 반영하려면 클러스터의 모든 관심 노드를 업데이트해야합니다.
Dynamic Settings −이 설정은 라이브 Elasticsearch에서 설정할 수 있습니다.
이 장의 다음 섹션에서 Elasticsearch의 다양한 모듈에 대해 설명합니다.
클러스터 수준 라우팅 및 샤드 할당
클러스터 수준 설정은 다른 노드에 샤드 할당 및 클러스터 재조정을위한 샤드 재 할당을 결정합니다. 다음은 샤드 할당을 제어하기위한 설정입니다.
클러스터 수준 샤드 할당
환경 | 가능한 값 | 기술 |
---|---|---|
cluster.routing.allocation.enable | ||
모두 | 이 기본값은 모든 종류의 샤드에 대한 샤드 할당을 허용합니다. | |
예비 선거 | 이렇게하면 기본 샤드에 대해서만 샤드 할당이 허용됩니다. | |
new_primaries | 이렇게하면 새 인덱스에 대한 기본 샤드에 대해서만 샤드 할당이 허용됩니다. | |
없음 | 이것은 샤드 할당을 허용하지 않습니다. | |
cluster.routing.allocation .node_concurrent_recoveries | 숫자 값 (기본값 2) | 이는 동시 샤드 복구 수를 제한합니다. |
cluster.routing.allocation .node_initial_primaries_recoveries | 숫자 값 (기본값 4) | 이것은 병렬 초기 1 차 복구의 수를 제한합니다. |
cluster.routing.allocation .same_shard.host | 부울 값 (기본적으로 false) | 이는 동일한 물리적 노드에서 동일한 샤드의 복제본을 두 개 이상 할당하는 것을 제한합니다. |
indices.recovery.concurrent _streams | 숫자 값 (기본값 3) | 피어 샤드에서 샤드를 복구 할 때 노드 당 개방형 네트워크 스트림 수를 제어합니다. |
indices.recovery.concurrent _small_file_streams | 숫자 값 (기본값 2) | 이는 샤드 복구시 크기가 5MB 미만인 작은 파일에 대해 노드 당 오픈 스트림 수를 제어합니다. |
cluster.routing.rebalance.enable | ||
모두 | 이 기본값은 모든 종류의 샤드에 대한 균형 조정을 허용합니다. | |
예비 선거 | 이렇게하면 기본 샤드에 대해서만 샤드 밸런싱이 허용됩니다. | |
복제본 | 이렇게하면 복제본 샤드에 대해서만 샤드 밸런싱이 허용됩니다. | |
없음 | 이것은 어떤 종류의 샤드 밸런싱도 허용하지 않습니다. | |
cluster.routing.allocation .allow_rebalance | ||
항상 | 이 기본값은 항상 재조정을 허용합니다. | |
색인 _ 기본 _ 활성 | 이를 통해 클러스터의 모든 기본 샤드가 할당 될 때 재조정이 가능합니다. | |
Indices_all_active | 이렇게하면 모든 기본 및 복제본 샤드가 할당 될 때 재조정이 가능합니다. | |
cluster.routing.allocation.cluster _concurrent_rebalance | 숫자 값 (기본값 2) | 이는 클러스터의 동시 샤드 밸런싱 수를 제한합니다. |
cluster.routing.allocation .balance.shard | 부동 값 (기본값 : 0.45f) | 이는 모든 노드에 할당 된 샤드의 가중치 요소를 정의합니다. |
cluster.routing.allocation .balance.index | 부동 값 (기본적으로 0.55f) | 특정 노드에 할당 된 인덱스 당 샤드 수의 비율을 정의합니다. |
cluster.routing.allocation .balance.threshold | 음수가 아닌 부동 값 (기본적으로 1.0f) | 수행해야하는 작업의 최소 최적화 값입니다. |
디스크 기반 샤드 할당
환경 | 가능한 값 | 기술 |
---|---|---|
cluster.routing.allocation.disk.threshold_enabled | 부울 값 (기본값 : true) | 이것은 디스크 할당 결정자를 활성화 및 비활성화합니다. |
cluster.routing.allocation.disk.watermark.low | 문자열 값 (기본적으로 85 %) | 이것은 디스크의 최대 사용량을 나타냅니다. 이 시점 이후에는 해당 디스크에 다른 샤드를 할당 할 수 없습니다. |
cluster.routing.allocation.disk.watermark.high | 문자열 값 (기본적으로 90 %) | 이는 할당시 최대 사용량을 나타냅니다. 할당 시점에이 지점에 도달하면 Elasticsearch는 해당 샤드를 다른 디스크에 할당합니다. |
cluster.info.update.interval | 문자열 값 (기본적으로 30 초) | 이것은 디스크 사용량 점검 사이의 간격입니다. |
cluster.routing.allocation.disk.include_relocations | 부울 값 (기본값 : true) | 디스크 사용량을 계산하는 동안 현재 할당중인 샤드를 고려할지 여부를 결정합니다. |
발견
이 모듈은 클러스터가 클러스터에있는 모든 노드의 상태를 발견하고 유지하는 데 도움이됩니다. 클러스터 상태는 노드가 추가되거나 삭제 될 때 변경됩니다. 클러스터 이름 설정은 서로 다른 클러스터 간의 논리적 차이를 만드는 데 사용됩니다. 클라우드 공급 업체에서 제공하는 API를 사용하는 데 도움이되는 몇 가지 모듈이 있으며 다음과 같습니다.
- Azure 발견
- EC2 발견
- Google 컴퓨팅 엔진 검색
- 선 발견
게이트웨이
이 모듈은 전체 클러스터 재시작시 클러스터 상태와 샤드 데이터를 유지합니다. 다음은이 모듈의 정적 설정입니다.
환경 | 가능한 값 | 기술 |
---|---|---|
gateway.expected_nodes | 숫자 값 (기본값 0) | 로컬 샤드 복구를 위해 클러스터에있을 것으로 예상되는 노드 수입니다. |
gateway.expected_master_nodes | 숫자 값 (기본값 0) | 복구를 시작하기 전에 클러스터에있을 것으로 예상되는 마스터 노드의 수입니다. |
gateway.expected_data_nodes | 숫자 값 (기본값 0) | 복구를 시작하기 전에 클러스터에 예상되는 데이터 노드 수입니다. |
gateway.recover_after_time | 문자열 값 (기본적으로 5m) | 이것은 디스크 사용량 점검 사이의 간격입니다. |
cluster.routing.allocation. disk.include_relocations | 부울 값 (기본값 : true) | 클러스터에 결합 된 노드 수에 관계없이 복구 프로세스가 시작될 때까지 대기하는 시간을 지정합니다. gateway.recover_ after_nodes |
HTTP
이 모듈은 HTTP 클라이언트와 Elasticsearch API 간의 통신을 관리합니다. 이 모듈은 http.enabled 값을 false로 변경하여 비활성화 할 수 있습니다.
다음은이 모듈을 제어하기위한 설정 (elasticsearch.yml에 구성됨)입니다.
S. 아니 | 설정 및 설명 |
---|---|
1 | http.port Elasticsearch에 액세스하기위한 포트이며 범위는 9200-9300입니다. |
2 | http.publish_port 이 포트는 http 클라이언트 용이며 방화벽의 경우에도 유용합니다. |
삼 | http.bind_host http 서비스의 호스트 주소입니다. |
4 | http.publish_host http 클라이언트의 호스트 주소입니다. |
5 | http.max_content_length http 요청에있는 콘텐츠의 최대 크기입니다. 기본값은 100MB입니다. |
6 | http.max_initial_line_length URL의 최대 크기이며 기본값은 4kb입니다. |
7 | http.max_header_size 이는 최대 http 헤더 크기이며 기본값은 8kb입니다. |
8 | http.compression 압축 지원을 활성화하거나 비활성화하며 기본값은 false입니다. |
9 | http.pipelinig 이것은 HTTP 파이프 라이닝을 활성화 또는 비활성화합니다. |
10 | http.pipelining.max_events 이는 HTTP 요청을 닫기 전에 대기열에 넣을 이벤트 수를 제한합니다. |
지수
이 모듈은 모든 인덱스에 대해 전역 적으로 설정된 설정을 유지합니다. 다음 설정은 주로 메모리 사용량과 관련이 있습니다.
회로 차단기
이것은 작업이 OutOfMemroyError를 일으키는 것을 방지하기 위해 사용됩니다. 이 설정은 주로 JVM 힙 크기를 제한합니다. 예를 들어, 기본값은 JVM 힙의 70 % 인 indices.breaker.total.limit 설정입니다.
Fielddata 캐시
이것은 주로 필드에서 집계 할 때 사용됩니다. 할당 할 충분한 메모리가있는 것이 좋습니다. 필드 데이터 캐시에 사용되는 메모리 양은 indices.fielddata.cache.size 설정을 사용하여 제어 할 수 있습니다.
노드 쿼리 캐시
이 메모리는 쿼리 결과를 캐싱하는 데 사용됩니다. 이 캐시는 LRU (Least Recent Used) 제거 정책을 사용합니다. Indices.queries.cahce.size 설정은이 캐시의 메모리 크기를 제어합니다.
인덱싱 버퍼
이 버퍼는 새로 생성 된 문서를 인덱스에 저장하고 버퍼가 가득 차면 플러시합니다. indices.memory.index_buffer_size와 같은 설정은이 버퍼에 할당 된 힙의 양을 제어합니다.
샤드 요청 캐시
이 캐시는 모든 샤드에 대한 로컬 검색 데이터를 저장하는 데 사용됩니다. 인덱스 생성 중에 캐시를 활성화하거나 URL 매개 변수를 전송하여 비활성화 할 수 있습니다.
Disable cache - ?request_cache = true
Enable cache "index.requests.cache.enable": true
지수 복구
복구 프로세스 중에 리소스를 제어합니다. 다음은 설정입니다-
환경 | 기본값 |
---|---|
indices.recovery.concurrent_streams | 삼 |
indices.recovery.concurrent_small_file_streams | 2 |
indices.recovery.file_chunk_size | 512kb |
indices.recovery.translog_ops | 1000 |
indices.recovery.translog_size | 512kb |
indices.recovery.compress | 진실 |
indices.recovery.max_bytes_per_sec | 40MB |
TTL 간격
TTL (Time to Live) 간격은 문서가 삭제 된 후 문서의 시간을 정의합니다. 다음은이 프로세스를 제어하기위한 동적 설정입니다.
환경 | 기본값 |
---|---|
indices.ttl.interval | 60 년대 |
indices.ttl.bulk_size | 1000 |
마디
각 노드에는 데이터 노드가 될지 여부에 대한 옵션이 있습니다. 이 속성은 다음을 변경하여 변경할 수 있습니다.node.data환경. 값을 다음과 같이 설정false 노드가 데이터 노드가 아님을 정의합니다.