- log-api-guide.md: 로그 조회 API 사용 가이드 - server-architecture.md: 51123/51124 서버 인프라 구성도 - emergency-manual.md: 비상 대응 매뉴얼 및 트러블슈팅 가이드 로컬 개발자와 51124 서버 담당자가 참고할 수 있도록 문서화
168 lines
3.4 KiB
Markdown
168 lines
3.4 KiB
Markdown
# 비상 대응 매뉴얼
|
|
|
|
## 🚨 긴급 상황별 대응
|
|
|
|
### 1. 서비스 다운
|
|
|
|
#### rb 서비스가 응답하지 않을 때
|
|
```bash
|
|
# 1. 51124 서버 상태 확인
|
|
ssh -p 51124 admin@192.168.219.52
|
|
|
|
# 2. 컨테이너 상태 확인
|
|
docker ps | grep rb
|
|
|
|
# 3. 컨테이너 재시작
|
|
docker restart [container_name]
|
|
|
|
# 4. 로그 확인
|
|
docker logs [container_name] --tail 100
|
|
```
|
|
|
|
#### 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. 로그 정리
|
|
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. 팀 공유 및 개선사항 논의 |