From 5a860ee3eddca36307fb83e1acb3688dbb77a3ff Mon Sep 17 00:00:00 2001 From: happybell80 Date: Fri, 16 Jan 2026 20:37:06 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Admin=20Dashboard=20=EC=84=9C=EB=B2=84?= =?UTF-8?q?=20=EA=B0=84=20=ED=97=AC=EC=8A=A4=EC=B2=B4=ED=81=AC=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0=20=EB=AC=B8=EC=84=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...dashboard_서버간_헬스체크_개선.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 journey/troubleshooting/260116_admin_dashboard_서버간_헬스체크_개선.md diff --git a/journey/troubleshooting/260116_admin_dashboard_서버간_헬스체크_개선.md b/journey/troubleshooting/260116_admin_dashboard_서버간_헬스체크_개선.md new file mode 100644 index 0000000..c528bd1 --- /dev/null +++ b/journey/troubleshooting/260116_admin_dashboard_서버간_헬스체크_개선.md @@ -0,0 +1,41 @@ +# Admin Dashboard 서버 간 헬스체크 개선 + +**날짜**: 2026-01-16 +**작성자**: Claude +**관련 파일**: `admin-dashboard/backend/services/system_service.py` + +--- + +## 문제 상황 + +51124 서버의 admin-dashboard가 51123 서버 서비스(goosefarm-app, robeing-gateway, opensearch) 헬스체크 시 NOT_FOUND 상태 발생. + +**원인 3가지**: +1. Docker API 제한: 51124에서 51123 컨테이너를 Docker API로 조회 불가 (같은 서버 컨테이너만 조회 가능) +2. 폴백 로직 없음: Docker API 실패 시 HTTP 헬스체크로 폴백하지 않음 +3. 서버 간 접근 불가: 172.17.0.1은 Docker bridge IP로 같은 서버에서만 접근 가능, 51124에서 51123 서비스 접근 시 192.168.219.45 필요 + +## 해결 방안 + +### 1. Docker API 실패 시 HTTP 폴백 추가 +- `system_service.py:458-468`: Docker API 체크 성공 시만 즉시 반환, 실패 시 HTTP 체크로 진행 + +### 2. 서버 간 접근 URL 폴백 +- `system_service.py:475-500`: 172.17.0.1 사용하는 51123 서버 서비스는 192.168.219.45로 폴백 시도 + +**코드 변경**: +- Docker API 성공 체크 후 HTTP 폴백 가능하도록 조건 변경 +- HTTP 체크 시 172.17.0.1 실패 시 192.168.219.45로 재시도 + +## 교훈 + +### 서버 간 접근 시 Docker bridge IP 한계 +- 172.17.0.1은 Docker bridge IP로 같은 호스트에서만 유효 +- 서버 간 접근 시 실제 서버 IP(192.168.219.45/52) 사용 필요 + +### 폴백 로직 필수 +- Docker API는 같은 서버 컨테이너만 조회 가능 +- 원격 서버 서비스는 HTTP 헬스체크로 폴백 필요 + +### 체크 메서드 우선순위 +- Docker API (같은 서버) → HTTP (원격 서버 포함) 순서로 폴백