이 가이드는 온프레미스 EKB 배포에서 문제를 해결하기 위한 레벨 1 (L1) 진단 단계를 제공합니다. 이 단계는 컨테이너, 데이터베이스, 서비스, 시스템 리소스와 관련된 일반적인 문제를 식별하는 데 도움이 됩니다.
전제 조건: EKB가 배포된 고객의 VM/서버에 대한 SSH 접근 권한과 Docker 명령 실행 및 컨테이너 로그 접근에 대한 적절한 권한이 필요합니다.
컨테이너 상태 확인
모든 컨테이너 상태 확인
먼저 실행 중인 컨테이너와 해당 상태를 확인합니다:
예상 컨테이너:
web - 프론트엔드 애플리케이션
api 또는 fastapi_backend - 백엔드 API 서버
worker 또는 celery_worker - Celery 워커
redis - Redis 캐시
rabbitmq - RabbitMQ 메시지 큐
supabase-studio - Supabase Studio
supabase-kong - Kong API 게이트웨이
supabase-auth - 인증 서비스
supabase-db 또는 postgres - PostgreSQL 데이터베이스
- 기타 Supabase 서비스 (storage, meta 등)
확인 사항:
- 모든 컨테이너가 “Up” 상태여야 합니다
- 어떤 컨테이너도 “Restarting” 또는 “Exited” 상태여서는 안 됩니다
- 해당되는 경우 상태 검사가 “healthy”로 표시되어야 합니다
실패한 컨테이너 재시작
컨테이너가 중지되었거나 재시작 중인 경우:
백엔드 컨테이너 로그
API 컨테이너 로그 확인
백엔드 API 컨테이너 로그에는 오류, 데이터베이스 연결, 서비스 문제에 대한 중요한 정보가 포함되어 있습니다:
확인 사항:
- 데이터베이스 연결 오류
- Redis 연결 실패
- RabbitMQ 연결 문제
- 인증 오류
- API 엔드포인트 오류 (500, 503 등)
- 가져오기/내보내기 오류
- 지식 베이스 처리 오류
- 워커 작업 실패
워커 컨테이너 로그 확인
워커 컨테이너는 백그라운드 작업 (KB 처리, 임베딩 등)을 처리합니다:
확인 사항:
- 작업 실행 오류
- 메모리 문제
- 타임아웃 오류
- 워커의 데이터베이스 연결 오류
- 지식 베이스 동기화 실패
- 임베딩 생성 오류
웹 컨테이너 로그 확인
프론트엔드 컨테이너 로그에서 UI 및 API 연결 문제를 확인할 수 있습니다:
확인 사항:
- 빌드 오류
- API 연결 실패
- 환경 변수 문제
- 포트 바인딩 오류
데이터베이스 상태
PostgreSQL/Supabase 데이터베이스 상태 확인
확인 사항:
- 데이터베이스 컨테이너가 실행 중인지
- 로그에 연결 오류가 없는지
- 데이터베이스가 가득 차지 않았는지 (디스크 공간 확인)
- 활성 연결이 제한 내에 있는지
- 작업을 차단하는 장시간 실행 쿼리가 없는지
API에서 데이터베이스 연결 확인
데이터베이스 마이그레이션 확인
Redis 상태
Redis 컨테이너 확인
확인 사항:
- Redis가 ping에 응답하는지
- 메모리 사용량이 제한 내에 있는지
- 연결 오류가 없는지
- eviction 오류 (메모리 부족)가 없는지
API 컨테이너에서 Redis 테스트
RabbitMQ 상태
RabbitMQ 컨테이너 확인
확인 사항:
- 컨테이너가 실행 중인지
- 연결 오류가 없는지
- 큐가 메시지를 처리하고 있는지
- 메시지 백로그가 없는지
API에서 RabbitMQ 확인
시스템 리소스
디스크 공간 확인
디스크 공간 부족은 데이터베이스, 스토리지, 컨테이너 문제를 일으킬 수 있습니다:
확인 사항:
- 루트 파티션에 충분한 공간이 있는지 (>20% 여유 공간 권장)
- Docker 볼륨이 가득 차지 않았는지
- 데이터베이스 데이터 디렉토리에 공간이 있는지
- Supabase 스토리지에 공간이 있는지
메모리 사용량 확인
확인 사항:
- 시스템에 사용 가능한 메모리가 있는지
- 컨테이너가 메모리 제한에 도달하지 않았는지
- 로그에 OOM (메모리 부족) 킬이 없는지
CPU 사용량 확인
네트워크 연결
컨테이너 네트워크 확인
포트 가용성 확인
환경 변수
환경 구성 확인
확인 사항:
- 데이터베이스 연결 문자열이 올바른지
- Redis 및 RabbitMQ 호스트 이름이 올바른지
- API URL이 올바르게 구성되어 있는지
- 필수 환경 변수가 설정되어 있는지
- 변수 이름에 오타가 없는지
파일 권한
파일 및 디렉토리 권한 확인
확인 사항:
- 애플리케이션 디렉토리가 읽기 가능한지
- Docker 소켓에 올바른 권한이 있는지
- 볼륨 마운트에 적절한 권한이 있는지
- 인증서 파일에 접근할 수 있는지
서비스별 확인
지식 베이스 문제
지식 베이스가 업데이트되거나 처리되지 않는 경우:
채팅/에이전트 문제
인증 문제
일반적인 오류 패턴
데이터베이스 연결 오류
증상:
- “Connection refused” 오류
- “Too many connections” 오류
- 타임아웃 오류
진단 단계:
- 데이터베이스 컨테이너 실행 확인:
docker ps | grep db
- 데이터베이스 로그 확인:
docker logs supabase-db
- 연결 제한 확인:
docker exec supabase-db psql -U postgres -c "SHOW max_connections;"
- 활성 연결 확인:
docker exec supabase-db psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"
- 환경 변수에서 DATABASE_URL 확인
Redis 연결 오류
증상:
- Redis에 “Connection refused”
- 캐시 미스
- 세션 문제
진단 단계:
- Redis 컨테이너 확인:
docker ps | grep redis
- Redis 테스트:
docker exec redis redis-cli ping
- Redis 로그 확인:
docker logs redis
- 환경 변수에서 Redis 호스트 이름 확인
워커 작업 실패
증상:
- 작업이 완료되지 않음
- 지식 베이스가 동기화되지 않음
- 백그라운드 작업 실패
진단 단계:
- 워커 로그 확인:
docker logs worker
- 워커 컨테이너 상태 확인:
docker ps | grep worker
- RabbitMQ 큐 확인: RabbitMQ 관리 콘솔 접근
- 메모리 문제 확인:
docker stats worker
스토리지/파일 업로드 문제
증상:
- 파일 업로드 실패
- “File too large” 오류
- 스토리지 할당량 초과
진단 단계:
- 디스크 공간 확인:
df -h
- Supabase 스토리지 로그 확인:
docker logs supabase-storage
- Supabase 구성에서 파일 크기 제한 확인
- 스토리지 버킷 구성 확인
빠른 진단 스크립트
모든 확인을 한 번에 실행하는 진단 스크립트를 만듭니다:
diagnostics.sh로 저장하고 실행 가능하게 만듭니다: chmod +x diagnostics.sh, 그리고 실행합니다: ./diagnostics.sh
에스컬레이션 정보
L2 지원으로 에스컬레이션할 때 다음을 제공하세요:
- 컨테이너 상태:
docker ps -a 출력
- 최근 로그: 해당 컨테이너의 최근 100-200줄
- 시스템 리소스:
df -h 및 free -h 출력
- 오류 메시지: 로그의 특정 오류 메시지
- 구성: 설정된 환경 변수 이름 (값이 아닌)
- 타임라인: 문제가 시작된 시점
- 영향: 영향을 받는 기능
지원팀 문의: support@automationanywhere.com
추가 리소스