기술_Elasticsearch 31

로깅

로깅Elasticsearch의 애플리케이션 로그를 사용하여 클러스터를 모니터링하고 문제를 진단 할 수 있습니다. Elasticsearch를 서비스로 실행하는 경우 로그의 기본 위치는 플랫폼 및 설치 방법에 따라 다릅니다. 로깅 구성Elasticsearch는 로깅을 위해 Log4j 2 를 사용합니다 . Log4j 2는 log4j2.properties 파일을 사용하여 구성 할 수 있습니다. Elasticsearch는 세 가지 속성은, 노출 ${sys:es.logs.base_path}, ${sys:es.logs.cluster_name}그리고 ${sys:es.logs.node_name}그 로그 파일의 위치를 결정하기 위해 구성 파일에서 참조 할 수 있습니다. 속성 ${sys:es.logs.base_path}은 ..

필드 데이터 캐시 설정

필드 데이터 캐시 설정필드 데이터 캐시에는 특정 필드 유형에 대한 집계를 지원하는 데 사용되는 필드 데이터 와 전역 서 수가 포함 됩니다. 이들은 힙 데이터 구조이므로 캐시 사용을 모니터링하는 것이 중요합니다.캐시 크기캐시의 항목은 빌드하는 데 비용이 많이 들기 때문에 기본 동작은 캐시를 메모리에로드 된 상태로 유지하는 것입니다. 기본 캐시 크기는 무제한이므로 필드 데이터 회로 차단기 에서 설정 한 제한에 도달 할 때까지 캐시가 커 집니다. 이 동작을 구성 할 수 있습니다.캐시 크기 제한이 설정된 경우 캐시는 캐시에서 가장 최근에 업데이트 된 항목을 지우기 시작합니다. 이 설정은 필요에 따라 캐시를 재 구축하는 대신 회로 차단기 제한을 자동으로 피할 수 있습니다.회로 차단기 제한에 도달하면 캐시 크기를 ..

검색 및 클러스터 형성 설정

검색 및 클러스터 형성 설정검색 및 클러스터 형성 은 다음 설정의 영향을받습니다.discovery.seed_hosts( 정적 ) 클러스터에서 마스터 적격 노드의 주소 목록을 제공합니다. 쉼표로 구분 된 주소를 포함하는 단일 문자열 일 수도 있습니다. 각 주소는 host:port또는 host. 는 host중 DNS, IPv4 주소 또는 IPv6 주소를 해결할 수있는 호스트 이름입니다. IPv6 주소는 대괄호로 묶어야합니다. 호스트 이름이 DNS를 통해 여러 주소로 확인되는 경우 Elasticsearch는 모든 주소를 사용합니다. DNS 조회에는 JVM DNS 캐싱 이 적용됩니다 . port이 지정되지 않은 경우 다음 설정을 순서대로 확인하여 결정됩니다.transport.profiles.default.por..

클러스터 간 복제 설정

클러스터 간 복제 설정이러한 교차 클러스터 복제 설정은 클러스터 업데이트 설정 API를 사용하여 라이브 클러스터에서 동적으로 업데이트 할 수 있습니다 .원격 복구 설정다음 설정을 사용하여 원격 복구 중에 전송되는 데이터의 속도를 제한 할 수 있습니다 .ccr.indices.recovery.max_bytes_per_sec( 동적 )각 노드에서 총 인바운드 및 아웃 바운드 원격 복구 트래픽을 제한합니다. 이 제한은 각 노드에 적용되지만 동시에 원격 복구를 수행하는 노드가 많을 수 있으므로 원격 복구 바이트의 총량이이 제한보다 훨씬 클 수 있습니다. 이 제한을 너무 높게 설정하면 진행중인 원격 복구가 과도한 대역폭 (또는 기타 리소스)을 소비하여 클러스터를 불안정하게 만들 위험이 있습니다. 이 설정은 리더 및..

인덱스 삭제 표시

인덱스 삭제 표시클러스터 상태는 인덱스 삭제 표시를 유지하여 삭제 된 인덱스를 명시 적으로 나타냅니다. 클러스터 상태에서 유지되는 삭제 표시의 수는 다음 설정으로 제어됩니다. cluster.indices.tombstones.size( 정적 ) 인덱스 삭제 표시는 삭제가 발생했을 때 클러스터의 일부가 아닌 노드가 삭제가 실행되지 않은 것처럼 클러스터에 가입하고 인덱스를 다시 가져 오는 것을 방지합니다. 클러스터 상태 cluster.indices.tombstones.size가 커지지 않도록하기 위해 마지막 삭제 만 유지합니다. 기본값은 500입니다. 클러스터에 노드가없고 500 개가 넘는 삭제가 누락 될 것으로 예상되는 경우이를 늘릴 수 있습니다. 드물다고 생각하므로 기본값입니다. 삭제 표시는 많은 공간을 ..

기타 클러스터 설정

기타 클러스터 설정메타 데이터다음 설정을 사용하여 전체 클러스터를 읽기 전용으로 설정할 수 있습니다. cluster.blocks.read_only( 동적 ) 전체 클러스터를 읽기 전용으로 만들고 (인덱스는 쓰기 작업을 허용하지 않음) 메타 데이터를 수정할 수 없습니다 (인덱스 생성 또는 삭제).cluster.blocks.read_only_allow_delete( 동적 ) 동일 cluster.blocks.read_only하지만 인덱스를 삭제하여 리소스를 확보 할 수 있습니다. 클러스터 변경을 방지하기 위해이 설정에 의존하지 마십시오. cluster-update-settings API에 대한 액세스 권한이있는 모든 사용자 는 클러스터를 다시 읽기-쓰기로 만들 수 있습니다. 클러스터 샤드 제한클러스터의 노드 ..

클러스터 수준 샤드 할당 필터링

클러스터 수준 샤드 할당 필터링클러스터 수준 샤드 할당 필터를 사용하여 Elasticsearch가 인덱스에서 샤드를 할당하는 위치를 제어 할 수 있습니다. 이러한 클러스터 전체 필터는 인덱스 별 할당 필터링 및 할당 인식 과 함께 적용됩니다 . 파편 할당 필터는 사용자 정의 노드 속성에 기반 또는 내장 될 수있다 _name, _host_ip, _publish_ip, _ip, _host, _id및 _tier속성.cluster.routing.allocation설정은 동적 다른 노드 중 하나 세트에서 이동 라이브 인덱스를 가능하게. 샤드는 동일한 노드에 기본 및 복제본 샤드를 할당하지 않는 것과 같이 다른 라우팅 제약 조건을 위반하지 않고 그렇게 할 수있는 경우에만 재배치됩니다. 클러스터 수준 샤드 할당 필터..

샤드 밸런싱 휴리스틱 스 설정

샤드 밸런싱 휴리스틱 스 설정리 밸런싱은 샤드 할당을 기반으로 각 노드 의 가중치 를 계산 한 다음 노드간에 샤드를 이동하여 무거운 노드의 가중치를 줄이고 더 가벼운 노드의 가중치를 증가시키는 방식으로 작동합니다. 클러스터는 구성 가능한 임계 값 이상으로 노드의 가중치를 다른 노드의 가중치에 더 가깝게 만들 수있는 샤드 이동이 불가능할 때 균형을 이룹니다. 다음 설정을 사용하여 이러한 계산의 세부 정보를 제어 할 수 있습니다. cluster.routing.allocation.balance.shard( Dynamic ) 노드 (float)에 할당 된 총 샤드 수에 대한 가중치 요소를 정의합니다. 기본값은 0.45f. 이 값을 높이면 클러스터의 모든 노드에서 샤드 수를 균등화하는 경향이 높아집니다. clus..

클러스터 수준 샤드 할당 및 라우팅 설정

클러스터 수준 샤드 할당 및 라우팅 설정샤드 할당 은 노드에 샤드를 할당하는 프로세스입니다. 이는 초기 복구, 복제본 할당, 재조정 중에 또는 노드가 추가 또는 제거 될 때 발생할 수 있습니다.마스터의 주요 역할 중 하나는 클러스터를 재조정하기 위해 어떤 샤드를 어떤 노드에 할당할지와 노드간에 샤드를 이동할시기를 결정하는 것입니다.샤드 할당 프로세스를 제어하는 ​​데 사용할 수있는 여러 설정이 있습니다.클러스터 수준 샤드 할당 설정은 할당 및 재조정 작업을 제어합니다.디스크 기반 샤드 할당 설정 은 Elasticsearch가 사용 가능한 디스크 공간을 고려하는 방법과 관련 설정을 설명합니다.샤드 할당 인식 및 강제 인식은 샤드가 여러 랙 또는 가용성 영역에 분산 될 수있는 방법을 제어합니다.클러스터 수준..

회로 차단기 설정

회로 차단기 설정Elasticsearch에는 작업으로 인해 OutOfMemoryError가 발생하는 것을 방지하는 데 사용되는 여러 회로 차단기가 포함되어 있습니다. 각 차단기는 사용할 수있는 메모리 양에 대한 제한을 지정합니다. 또한 모든 차단기에서 사용할 수있는 총 메모리 양을 지정하는 상위 수준 차단기가 있습니다.달리 명시되지 않는 한 이러한 설정은 cluster-update-settings API 를 사용하여 라이브 클러스터에서 동적으로 업데이트 할 수 있습니다 .부모 회로 차단기상위 수준 차단기는 다음 설정으로 구성 할 수 있습니다.indices.breaker.total.use_real_memory( 정적 ) 상위 차단기가 실제 메모리 사용량을 고려해야하는지 ( true) 아니면 하위 회로 차단..