# 비상 대응 매뉴얼 ## 🚨 긴급 상황별 대응 ### 1. 서비스 다운 #### rb/skill 서비스가 응답하지 않을 때 ```bash # 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 ```bash # 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 키 문제인 경우: ```bash # 키 fingerprint 확인 ssh-keygen -l -f ~/.ssh/id_rsa_51123_to_51124 ``` 3. 수동 배포: ```bash 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. 디스크 용량 부족 ```bash # 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. 메모리 부족 ```bash # 1. 메모리 사용량 확인 free -h htop # 2. 메모리 많이 쓰는 프로세스 찾기 ps aux --sort=-%mem | head -10 # 3. 불필요한 컨테이너 중지 docker ps docker stop [불필요한_컨테이너] ``` ### 5. SSL 인증서 문제 ```bash # 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) - 업무시간 내 대응 - 단순 에러 - 일시적 장애 → 로그 기록 후 정기 점검 시 처리 ## 🔧 유용한 명령어 모음 ### 모니터링 ```bash # 시스템 전체 상태 htop # 네트워크 연결 상태 ss -tlnp # Docker 리소스 사용량 docker stats # 디스크 I/O iotop ``` ### 로그 확인 ```bash # 실시간 로그 모니터링 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 ``` ### 백업 & 복구 ```bash # 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. 팀 공유 및 개선사항 논의