InfoGrab DocsInfoGrab Docs

헬스 체크

헬스, 활성 상태, 준비 상태 확인을 수행하는 방법을 설명합니다.

GitLab은 서비스 상태와 필수 서비스로의 연결 가능 여부를 나타내는 활성 상태 및 준비 상태 프로브를 제공합니다. 이 프로브는 데이터베이스 연결, Redis 연결, 파일 시스템 액세스 상태를 보고합니다. 이 엔드포인트는 Kubernetes와 같은 스케줄러에 제공 하여 시스템이 준비될 때까지 트래픽을 보류하거나 필요에 따라 컨테이너를 재시작할 수 있습니다. 헬스 체크 엔드포인트는 주로 트래픽을 전달하기 전에 서비스 가용성을 판단해야 하는 로드 밸런서와 그 밖의 Kubernetes 스케줄링 시스템에서 사용합니다. 대규모 Kubernetes 배포에서 실질 가동 시간을 판단하는 용도로는 이 엔드포인트를 사용하지 않아야 합니다. 그렇게 하면 자동 크기 조정, 노드 장애, 또는 그 밖의 정상적이고 중단을 일으키지 않는 운영 사유로 Pod가 제거될 때 거짓 음성이 나타날 수 있습니다. 대규모 Kubernetes 배포에서 가동 시간을 판단하려면 UI로 향하는 트래픽을 확인합니다. 이 트래픽은 적절히 분산되고 스케줄링되므로 실질 가동 시간을 더 잘 나타냅니다. 로그인 페이지 /users/sign_in 엔드포인트를 모니터링할 수도 있습니다. GitLab.com에서는 Pingdom 과 같은 도구와 Apdex 측정값으로 가동 시간을 판단합니다. IP 허용 목록 # 모니터링 리소스에 액세스하려면 요청하는 클라이언트 IP가 허용 목록에 포함되어야 합니다. 자세한 내용은 모니터링 엔드포인트의 허용 목록에 IP를 추가하는 방법 을 참고합니다. 로컬에서 엔드포인트 사용 # 기본 허용 목록 설정에서는 다음 URL로 localhost에서 프로브에 액세스할 수 있습니다. GET http://localhost/-/health GET http://localhost/health_check GET http://localhost/-/readiness GET http://localhost/-/liveness 헬스 # 애플리케이션 서버가 실행 중인지 확인합니다. 데이터베이스나 다른 서비스가 실행 중인지는 검증하지 않습니다. 이 엔드포인트는 Rails 컨트롤러를 우회하며 요청 처리 수명 주기의 아주 이른 시점에 추가 미들웨어 BasicHealthCheck 로 구현되어 있습니다. GET /-/health 요청 예시: curl "https://gitlab.example.com/-/health" 응답 예시: GitLab OK 포괄적 헬스 체크 # Warning 로드 밸런싱이나 자동 크기 조정에 /health_check 를 사용하지 않아야 합니다. 이 엔드포인트는 백엔드 서비스(데이터베이스, Redis)를 검증하므로, 해당 서비스가 느리거나 사용할 수 없으면 애플리케이션이 정상 동작하더라도 실패합니다. 이 때문에 정상적인 애플리케이션 노드가 로드 밸런서에서 불필요하게 제거될 수 있습니다. /health_check 엔드포인트는 데이터베이스 연결, Redis 가용성, 그 밖의 백엔드 서비스를 포함한 포괄적인 헬스 체크를 수행합니다. health_check gem이 제공하며 애플리케이션 스택 전