Elasticsearch 마이그레이션 문제 해결
Elasticsearch 마이그레이션 문제 해결에 대해 설명합니다.
Elasticsearch 마이그레이션을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. elasticsearch.log 에 오류가 포함되어 있고 실패한 마이그레이션을 다시 시도해도 작동하지 않으면 GitLab 지원에 문의하세요. 자세한 내용은 고급 검색 마이그레이션 을 참조하세요. 오류: Elasticsearch::Transport::Transport::Errors::BadRequest # 유사한 예외가 발생하면 올바른 Elasticsearch 버전을 사용하고 시스템 요구 사항 을 충족하는지 확인하세요. sudo gitlab-rake gitlab:check 명령을 사용하여 버전을 자동으로 확인할 수도 있습니다. 오류: Faraday::TimeoutError (execution expired) # 프록시를 사용하는 경우 Elasticsearch 호스트의 IP 주소로 no_proxy 라는 사용자 정의 gitlab_rails['env'] 환경 변수를 설정합니다. 단일 노드 Elasticsearch 클러스터 상태가 yellow에서 green으로 변경되지 않음 # 단일 노드 Elasticsearch 클러스터의 경우 기능적 클러스터 상태는 yellow입니다(green이 아님). 그 이유는 기본 샤드가 할당되지만 Elasticsearch가 레플리카를 할당할 수 있는 다른 노드가 없기 때문에 레플리카를 만들 수 없기 때문입니다. 이는 Amazon OpenSearch 서비스를 사용하는 경우에도 적용됩니다. Warning 레플리카 수를 0 으로 설정하는 것은 권장되지 않습니다(이는 GitLab Elasticsearch 통합 메뉴에서 허용되지 않음). Elasticsearch 노드를 추가할 계획이 있다면(총 Elasticsearch가 1개 이상) 레플리카 수를 0 보다 큰 정수 값으로 설정해야 합니다. 그렇지 않으면 중복성이 부족해집니다(노드 하나를 잃으면 인덱스가 손상됨). 단일 노드 Elasticsearch 클러스터에서 green 상태를 원한다면 위험을 이해하고 다음 쿼리를 실행하여 레플리카 수를 0 으로 설정합니다. 클러스터는 더 이상 샤드 레플리카를 만들려고 시도하지 않습니다. curl --request PUT localhost:9200/gitlab-production/_settings --header 'Content-Type: application/json' \ --data '{ "index" : { "number_of_replicas" : 0 } }' 오류: health check timeout: no Elasticsearch node available # 인덱싱 프로세스 중 Sidekiq에서 health check timeout: no Elasticsearch node available 오류가 발생하는 경우: Gitlab::Elastic::Indexer::Error: time="2020-01-23T09:13:00Z" level=fatal msg="health check timeout: no Elasticsearch node available
