docs: 기록 51123 임시복구 서비스 연속성 조치
This commit is contained in:
parent
d724447baf
commit
19e9695e57
78
journey/troubleshooting/260304_51123_임시복구_서비스연속성_조치내역.md
Normal file
78
journey/troubleshooting/260304_51123_임시복구_서비스연속성_조치내역.md
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# 260304 51123 임시복구 서비스 연속성 조치내역
|
||||||
|
|
||||||
|
## 1. 목적
|
||||||
|
- 51124 서버 장애 상황에서 51123 단독으로 robeing 핵심 서비스 연속성을 임시 복구한다.
|
||||||
|
- 2026-03-04 기준, 내일(2026-03-05) 오전 9시~10시 일정/이메일 경로 중단을 방지한다.
|
||||||
|
|
||||||
|
## 2. 장애 징후 및 운영 영향
|
||||||
|
- `/api/message` 응답이 3초 제한 내 타임아웃(`HTTP:000`, `curl (28)`)으로 실패.
|
||||||
|
- 게이트웨이 경유 일부 경로에서 422/500이 혼재되어 호출 신뢰도가 저하.
|
||||||
|
- PostgreSQL 연결 슬롯 고갈(Idle 세션 누적)로 신규 작업 지연.
|
||||||
|
- 51124 불가 상태로 기존 이중서버 가정(23 인프라 + 24 실행)이 깨짐.
|
||||||
|
|
||||||
|
## 3. 확인된 근본 원인
|
||||||
|
1. Docker 브리지 대역(`172.21.0.0/16`)에서 호스트 포트(8001, 9024, 8512) 접근이 방화벽에 막혀 내부 연계가 단절됨.
|
||||||
|
2. PostgreSQL Idle 세션 누적으로 커넥션 풀 여유가 줄어 응답 지연이 증폭됨.
|
||||||
|
3. rb8001 런타임에서 고비용 경로(의도/검색 그래프 포함)가 활성화된 상태로 느린 경로가 잦게 호출됨.
|
||||||
|
4. gateway 환경변수 일부가 운영 실IP 기준과 어긋나 헬스/검증 경로가 불안정했음.
|
||||||
|
|
||||||
|
## 4. 실제 조치 내역(51123)
|
||||||
|
### 4.1 네트워크/방화벽
|
||||||
|
- UFW allow 규칙 추가:
|
||||||
|
- `from 172.21.0.0/16 to any port 8001 proto tcp`
|
||||||
|
- `from 172.21.0.0/16 to any port 9024 proto tcp`
|
||||||
|
- `from 172.21.0.0/16 to any port 8512 proto tcp`
|
||||||
|
|
||||||
|
### 4.2 데이터베이스
|
||||||
|
- Idle 커넥션 92건 정리(`pg_terminate_backend`)로 슬롯 회복.
|
||||||
|
- 즉시 재접속 정상화 확인.
|
||||||
|
|
||||||
|
### 4.3 rb8001 성능 안전모드(임시)
|
||||||
|
- `/home/admin/rb8001/.env` 오버라이드 적용:
|
||||||
|
- `INTENT_ENGINE=v1`
|
||||||
|
- `INTENT_USE_LANGGRAPH=false`
|
||||||
|
- `INTENT_USE_COT=false`
|
||||||
|
- `WEB_SEARCH_USE_GRAPH=false`
|
||||||
|
- 적용 방식: `docker compose down && docker compose up -d --build`
|
||||||
|
|
||||||
|
### 4.4 gateway 운영값 정합화
|
||||||
|
- `/home/admin/robeing-gateway/.env` 수정:
|
||||||
|
- `ROBEING_DEFAULT_HOST=192.168.219.45`
|
||||||
|
- `MONITOR_URL="http://192.168.219.45:9024"`
|
||||||
|
- 적용 방식: `docker compose down && docker compose up -d --build`
|
||||||
|
|
||||||
|
## 5. 검증 결과(2026-03-04)
|
||||||
|
1. 컨테이너 상태
|
||||||
|
- `robeing-gateway(8100)`, `rb8001(8001)`, `robeing_monitor(9024)`, `skill-calendar(8512)`, `skill-email(8501)` running 확인.
|
||||||
|
|
||||||
|
2. 헬스/응답
|
||||||
|
- gateway `/healthz` 200.
|
||||||
|
- gateway `/api/message` 정상 응답 복구(측정 약 0.5~1.7초 구간).
|
||||||
|
|
||||||
|
3. 핵심 기능
|
||||||
|
- 일정성 문구 포함 메시지 요청 시 응답 정상.
|
||||||
|
- `self-improvement`, `prompt-db`는 유효 스키마 요청에서 성공, 비유효 payload는 기대대로 422/500.
|
||||||
|
|
||||||
|
4. 이메일 경로(내일 9~10시 핵심)
|
||||||
|
- `skill-email` `/health` 200.
|
||||||
|
- rb8001 컨테이너 -> skill-email 내부 호출 200.
|
||||||
|
- NaverWorks 메일 리스트 API(실 UUID `3550cef6-63e1-4ceb-8802-a25c9d1c6917`) 200, 목록 수신 확인.
|
||||||
|
|
||||||
|
5. 스케줄 DB
|
||||||
|
- `scheduled_jobs` 활성 항목 확인:
|
||||||
|
- `naverworks_daily`: `0 9 * * mon-fri`
|
||||||
|
- `coldmail_daily`: `5 9 * * mon-fri`
|
||||||
|
- `daily_headlines`: `10 9 * * mon-fri`
|
||||||
|
- `companyx_news`: `0 10 * * mon-fri`
|
||||||
|
|
||||||
|
## 6. 잔여 리스크 및 운영 주의
|
||||||
|
- `skill-embedding(8515)` 미기동 상태는 지속. rb8001 로그에 임베딩 연결 에러가 간헐적으로 남을 수 있음.
|
||||||
|
- 현재 복구는 "핵심 연속성 확보" 기준의 임시 안정화이며, 51124 복구 후 원래 분리구조로 되돌리는 재배치가 필요.
|
||||||
|
- 스케줄 실행 직전/직후(2026-03-05 08:55~10:10) 구간 모니터링을 강화해야 함.
|
||||||
|
|
||||||
|
## 7. 24 서버 인계 메모
|
||||||
|
- 51124 복구 후 우선순위:
|
||||||
|
1. rb8001/skill/chromadb 원복 배치
|
||||||
|
2. gateway 대상 upstream 재점검
|
||||||
|
3. 임시 성능 플래그(`INTENT_USE_LANGGRAPH=false` 등) 단계적 해제 여부 성능 측정 후 결정
|
||||||
|
- 본 문서는 51123 임시복구 기준 운영 기록이며, 24 원복 시 별도 후속 문서로 분리 기록 권장.
|
||||||
Loading…
x
Reference in New Issue
Block a user