상태 체크

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

GitLab은 서비스 헬스와 필요한 서비스에 대한 reachability를 나타내기 위한 liveness 및 readiness 프로브를 제공합니다. 이러한 프로브는 데이터베이스 연결, Redis 연결, 그리고 파일 시스템 접근 상태에 대한 보고를합니다. 이러한 엔드포인트는 쿠버네티스와 같은 스케줄러에 제공되어 시스템이 준비되기 전까지 트래픽을 유지하거나 필요할 때 컨테이너를 다시 시작합니다.

IP 허용 디렉터리

모니터링 리소스에 액세스하려면 요청 클라이언트 IP가 허용 디렉터리에 포함되어야 합니다. 자세한 내용은 모니터링 엔드포인트의 허용 디렉터리에 IP 추가하는 방법을 참조하십시오.

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

기본 허용 디렉터리 설정으로 localhost에서 다음 URL을 사용하여 프로브에 액세스할 수 있습니다.

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

헬스

애플리케이션 서버가 실행 중인지를 확인합니다. 데이터베이스 또는 다른 서비스가 실행 중인지는 확인하지 않습니다. 이 엔드포인트는 Rails Controllers를 우회하고 요청 처리 라이프사이클 초기에 추가 미들웨어 BasicHealthCheck로 구현됩니다.

GET /-/health

예시 요청:

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

예시 응답:

GitLab OK

준비 상태

준비 상태 프로브는 GitLab 인스턴스가 Rails Controllers를 통해 트래픽을 수용할 수 있는지를 확인합니다. 기본적으로 체크는 인스턴스 체크만을 유효성 검사합니다.

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에서 제외됩니다.

라이브니스

caution
GitLab 12.4에서 라이브니스 체크의 응답 본문이 아래 예시와 일치하도록 변경되었습니다.

애플리케이션 서버가 실행 중인지를 확인합니다. 이 프로브는 Rails Controllers가 멀티 스레딩으로 인해 데드락에 빠지지 않았는지를 알 수 있습니다.

GET /-/liveness

예시 요청:

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

예시 응답:

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

{
   "status": "ok"
}

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

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

Sidekiq

Sidekiq 상태 체크를 구성하는 방법을 알아보세요.