DOCS/_archive/docs/architecture/emergency-manual.md
happybell80 725ad0876c fix: 문서 파일 실행 권한 제거
- 모든 .md, .html 파일 권한을 644로 정상화
- .gitignore 파일 권한도 644로 수정
- 문서 파일에 실행 권한은 불필요하고 보안상 바람직하지 않음
- deprecated 아이디어 폴더 생성 및 레벨별 UI 변경 아이디어 이동
2025-08-18 00:37:51 +09:00

3.8 KiB

비상 대응 매뉴얼

🚨 긴급 상황별 대응

1. 서비스 다운

rb/skill 서비스가 응답하지 않을 때

# 1. 51124 서버 상태 확인
ssh -p 51124 admin@192.168.219.52

# 2. 컨테이너 상태 확인
docker ps | grep -E "(rb|skill)"

# 3. 컨테이너 재시작
docker restart [container_name]
# 또는 완전 재구동
cd /home/admin/ivada_project/[project]
docker compose down
docker compose up -d --build

# 4. 로그 확인
docker logs [container_name] --tail 100

# 5. 스킬 서비스별 재시작
# skill-email
cd /home/admin/ivada_project/skill_email
docker compose down && docker compose up -d --build

# skill-news
cd /home/admin/ivada_project/skill_news
docker compose down && docker compose up -d --build

nginx 502 Bad Gateway

# 1. nginx 상태 확인
sudo systemctl status nginx

# 2. 에러 로그 확인
sudo tail -f /var/log/nginx/error.log

# 3. nginx 재시작
sudo systemctl restart nginx

2. 배포 실패

Gitea Actions 실패

  1. Gitea 웹 UI에서 Actions 로그 확인
  2. SSH 키 문제인 경우:
    # 키 fingerprint 확인
    ssh-keygen -l -f ~/.ssh/id_rsa_51123_to_51124
    
  3. 수동 배포:
    ssh -p 51124 admin@192.168.219.52
    cd /home/admin/ivada_project/[project]
    git pull
    docker compose down
    docker compose up -d --build
    

3. 디스크 용량 부족

# 1. 디스크 사용량 확인
df -h

# 2. Docker 정리 (주의: 실행 중인 컨테이너 확인 필수)
docker system prune -af

# 3. 로그 정리 (51123 서버)
sudo rm -rf /var/log/nginx/*.gz
find /mnt/hdd/logs -name "*.log" -mtime +30 -delete

4. 메모리 부족

# 1. 메모리 사용량 확인
free -h
htop

# 2. 메모리 많이 쓰는 프로세스 찾기
ps aux --sort=-%mem | head -10

# 3. 불필요한 컨테이너 중지
docker ps
docker stop [불필요한_컨테이너]

5. SSL 인증서 문제

# 1. 인증서 만료일 확인
sudo certbot certificates

# 2. 수동 갱신
sudo certbot renew --force-renewal

# 3. nginx 재시작
sudo systemctl restart nginx

📞 연락처 및 우선순위

장애 레벨별 대응

Level 1 (Critical) - 즉시 대응

  • 전체 서비스 다운
  • 데이터 유실 위험
  • 보안 침해 → 서버팀 + 개발팀 모두 알림

Level 2 (Major) - 1시간 내 대응

  • 일부 서비스 장애
  • 성능 심각한 저하 → 담당 서버팀 알림

Level 3 (Minor) - 업무시간 내 대응

  • 단순 에러
  • 일시적 장애 → 로그 기록 후 정기 점검 시 처리

🔧 유용한 명령어 모음

모니터링

# 시스템 전체 상태
htop

# 네트워크 연결 상태
ss -tlnp

# Docker 리소스 사용량
docker stats

# 디스크 I/O
iotop

로그 확인

# 실시간 로그 모니터링
tail -f /var/log/nginx/access.log
docker logs -f [container_name]

# 에러 검색
grep -i error /var/log/nginx/error.log
docker logs [container_name] 2>&1 | grep -i error

백업 & 복구

# PostgreSQL 백업
docker exec [postgres_container] pg_dump -U [user] [database] > backup.sql

# 복구
docker exec -i [postgres_container] psql -U [user] [database] < backup.sql

빠른 체크리스트

문제 발생 시:

  • 서비스 상태 확인 (docker ps)
  • 로그 확인 (docker logs)
  • 디스크 공간 확인 (df -h)
  • 메모리 상태 확인 (free -h)
  • nginx 상태 확인 (systemctl status nginx)
  • 네트워크 연결 확인 (ping, curl)
  • 최근 변경사항 확인 (Gitea 커밋 로그)

📝 사후 조치

장애 해결 후:

  1. 트러블슈팅 문서 작성 (/home/admin/temp_docs/troubleshooting/)
  2. 모니터링 강화 필요 여부 검토
  3. 자동화 가능한 부분 스크립트 작성
  4. 팀 공유 및 개선사항 논의