상태 점검

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab은 서비스의 상태와 필요한 서비스에 대한 도달 가능성을 나타내기 위해 생존성 및 준비성 프로브를 제공합니다.

이 프로브는 데이터베이스 연결, Redis 연결 및 파일 시스템 접근 상태를 보고합니다. 이러한 엔드포인트는 Kubernetes와 같은 스케줄러에 제공될 수 있습니다

시스템이 준비될 때까지 트래픽을 유지하거나 필요에 따라 컨테이너를 재시작하는 데 사용됩니다.

상태 점검 엔드포인트는 로드 밸런서 및 트래픽을 리다이렉트하기 전에 서비스 가용성을 판단해야 하는 다른 Kubernetes 스케줄링 시스템에서 일반적으로 사용됩니다.

이러한 엔드포인트는 대규모 Kubernetes 배포에서 효과적인 가동 시간을 결정하는 데 사용해서는 안 됩니다.

파드가 자동 확장, 노드 실패 또는 다른 정상적이고 비파괴적인 운영 필요로 인해 제거될 때, 잘못된 부정 결과를 나타낼 수 있습니다.

대규모 Kubernetes 배포에서 가동 시간을 확인하려면 UI로 오는 트래픽을 살펴보세요.

이것은 적절히 균형이 잡히고 스케줄링되므로 효과적인 가동 시간을 나타내는 더 나은 지표입니다.

로그인 페이지 /users/sign_in 엔드포인트도 모니터링 할 수 있습니다.

GitLab.com에서는 Pingdom 및 Apdex 측정 도구를 사용하여 가동 시간을 결정합니다.

IP 허용 목록

모니터링 리소스에 액세스하려면 요청하는 클라이언트 IP가 허용 목록에 포함되어야 합니다.

자세한 내용은 모니터링 엔드포인트에 IP를 추가하는 방법을 참조하세요.

엔드포인트를 로컬에서 사용하기

기본 허용 목록 설정을 사용하면 프로브는 다음 URL을 사용하여 localhost에서 접근할 수 있습니다:

GET http://localhost/-/health  
GET http://localhost/-/readiness  
GET http://localhost/-/liveness  

상태

응용 프로그램 서버가 실행 중인지 확인합니다.

데이터베이스나 다른 서비스가 실행되고 있는지 확인하지 않습니다.

이 엔드포인트는 Rails 컨트롤러를 우회하며 요청 처리 생명 주기 초기에 BasicHealthCheck로 구현됩니다.

GET /-/health  

예제 요청:

curl "https://gitlab.example.com/-/health"  

예제 응답:

GitLab OK  

준비성

준비성 프로브는 GitLab 인스턴스가 Rails 컨트롤러를 통해 트래픽을 수용할 준비가 되었는지 확인합니다.

기본적으로 이 체크는 인스턴스 체크만 유효성을 검사합니다.

all=1 매개변수가 지정되면 체크는 종속 서비스(데이터베이스, Redis, Gitaly 등)도 검증하고 각 서비스의 상태를 제공합니다.

GET /-/readiness  
GET /-/readiness?all=1  

예제 요청:

curl "https://gitlab.example.com/-/readiness"  

예제 응답:

{  
   "master_check":[{  
      "status":"failed",  
      "message": "unexpected Master check result: false"  
   }],  
   ...  
}  

실패 시, 엔드포인트는 503 HTTP 상태 코드를 반환합니다.

이 체크는 Rack Attack에서 면제됩니다.

생존성

경고:
GitLab 12.4에서 생존성 체크의 응답 본문이 아래 예제와 일치하도록 변경되었습니다.

응용 프로그램 서버가 실행 중인지 확인합니다.

이 프로브는 Rails 컨트롤러가 다중 스레드로 인해 교착 상태에 빠지지 않았는지 알기 위해 사용됩니다.

GET /-/liveness  

예제 요청:

curl "https://gitlab.example.com/-/liveness"  

예제 응답:

성공 시, 엔드포인트는 200 HTTP 상태 코드를 반환하고 아래와 같은 응답을 반환합니다.

{  
   "status": "ok"  
}  

실패 시, 엔드포인트는 503 HTTP 상태 코드를 반환합니다.

이 체크는 Rack Attack에서 면제됩니다.

Sidekiq

Sidekiq 헬스 체크를 구성하는 방법을 배워보세요.