DOCS/troubleshooting/250731_claude_SSHFS로그설정.md

114 lines
4.6 KiB
Markdown

# SSHFS를 이용한 로그 저장소 설정
## 오후 10시 50분 - SSHFS 설정 시작
### 배경
- rb10508 등 로빙 컨테이너들의 로그가 SSD에 저장되고 있음
- CLAUDE.md에 명시된 대로 로그는 HDD(/mnt/hdd/logs/)에 저장되어야 함
- 51123 서버에 HDD가 있고, 51124 서버에서 SSHFS로 마운트하여 사용하기로 결정
### 왜 SSHFS가 적합한가?
1. 이미 SSH 키 설정 완료 - 추가 인증 설정 불필요
2. 다양한 로그 형태 지원 - stdout/stderr뿐만 아니라 파일 로그도 저장
3. 설정 최소화 - 51123 서버는 디렉토리만 만들면 됨
4. 투명한 작동 - 컨테이너는 로컬 디렉토리처럼 사용
### 51123 서버에서 수행한 작업 (오후 10시 48분)
```bash
# 1. 51124서버 전용 로그 디렉토리 생성
sudo mkdir -p /mnt/hdd/logs/51124-server
sudo chown admin:admin /mnt/hdd/logs/51124-server
# 2. 51124서버의 SSH 공개키 추가
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrkj5+lZUnX7+L+UMDTO+td395n7o7sg0ZlcYszIIXhbPjU5tLi+XW2HDX76Ts76cDvZEljVpnqTYjCS39tTGZgd7rNKMx45NZ2zJBXZuSuDaejmFqXsYPEm3Ithky2McTtx+l1dlLSy7vIYEe7IlpB0XI8bKyfK+xFKzuBsD3B5yqdEZbaaeqAwASQc1pJanIlUjsTt4mop2dwsc/XjkkwR1BADWDUVtku+BulqaVOunITTOQGWwgUGPtkpW+msc/MJ3qx599/AShjEGWbS5TrOeeZnV59vW2TipPTnJOmOGybOYI85+GCNGvwiOjxJ7Fl0GyhOiKQkqrkOK3820S72LkOjcGNJhzOXkfclgIaYkeMBtOobUR70n/vObKjUTqrCmnabX0Z5U+p+TW5EZ+kS7jqrq6U6uy21hlUB/VKJmHO0LbBCyDd4th5+0kzoqO0AlyrGOoth+2lanbrIx7bOO2zavCZM/Wj4K0bTkYzwHU3ND/YLWYfrH6WS9BVvuD0FehTdLD+FNE1tZzf/GefoL8sKXGuheu96lAh9C4ROQw0RzgTIkBQQD6WKCDPRlddUvbsk6uty88Q14+FucL2gCulRRWSCHocRggV+r2v4grNaBdBwQr795GWozIPR4unn1wUTAZGdd4iEu2m8YpwZKUSbJVkoyE+4Lr43ejgQ== admin@robeing-i9" >> ~/.ssh/authorized_keys
# 3. cleanup 스크립트에 51124 서버 로그 정리 추가
# /home/admin/scripts/cleanup-server.sh 파일 수정
# 51124 서버 로그도 30일 후 자동 정리되도록 설정
```
### 51124 서버에서 완료한 작업
```bash
# 1. SSHFS 설치
sudo apt install -y sshfs
# 2. 마운트 포인트 생성
sudo mkdir -p /mnt/51123logs
# 3. 마운트 시도 (SSH 키 등록 후 다시 시도 필요)
sudo sshfs -o allow_other,reconnect admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs -p 51123
```
### 다음 단계 (SSH 키 등록 후)
```bash
# 1. SSHFS 마운트
sudo sshfs -o allow_other,reconnect admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs -p 51123
# 2. 자동 마운트 설정 (/etc/fstab)
echo "admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs fuse.sshfs _netdev,allow_other,reconnect,port=51123 0 0" | sudo tee -a /etc/fstab
# 3. docker-compose.yml 수정
# 각 로빙 서비스의 볼륨 설정 변경
volumes:
- /mnt/51123logs/rb10508:/code/logs
# 기존: ./logs:/code/logs
```
## 오후 10시 51분 - SSHFS 마운트 성공
### 완료된 작업
```bash
# 1. SSH 키 파일 지정하여 마운트
sshfs -o IdentityFile=/home/admin/.ssh/id_rsa_deploy admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs -p 51123
# 2. 마운트 확인
df -h /mnt/51123logs
# 결과: 916G 크기의 HDD가 성공적으로 마운트됨
# 3. 테스트
mkdir -p /mnt/51123logs/rb10508
echo "SSHFS mount test - $(date)" > /mnt/51123logs/rb10508/test.log
```
### 영구 마운트 설정 (선택사항)
```bash
# /etc/fstab에 추가하려면:
echo "admin@192.168.219.45:/mnt/hdd/logs/51124-server /mnt/51123logs fuse.sshfs _netdev,allow_other,reconnect,port=51123,IdentityFile=/home/admin/.ssh/id_rsa_deploy 0 0" | sudo tee -a /etc/fstab
```
### 교훈
1. **서버 간 통신은 항상 SSH 키 먼저**: 51123-51124 간 SSH 키가 설정되어 있지 않았음
2. **마운트 포인트 이름 규칙**: /mnt/51123logs처럼 연결하는 서버 번호를 명시하면 관리가 편함
3. **SSHFS vs NFS**: 간단한 로그 저장용도는 SSHFS가 설정이 훨씬 간편함
4. **SSH 키 파일 명시**: -o IdentityFile 옵션으로 특정 키 파일 지정 필요
### 로컬 개발자에게 전달할 사항
각 로빙 서비스의 docker-compose.yml 파일에 볼륨 설정 추가 필요:
```yaml
# rb8001/docker-compose.yml
services:
rb8001:
volumes:
- /mnt/51123logs/rb8001:/app/logs # 추가
# 기존 볼륨들...
# rb10508_test/docker-compose.yml
services:
rb10508_test:
volumes:
- /mnt/51123logs/rb10508_test:/app/logs # 추가
# 기존 볼륨들...
# rb10408_test/docker-compose.yml
services:
rb10408_test:
volumes:
- /mnt/51123logs/rb10408_test:/app/logs # 추가
# 기존 볼륨들...
```
작업자:
- Claude (51123 서버 - SSH 키 등록 및 디렉토리 생성)
- Claude (51124 서버 - SSHFS 설정 및 마운트)