클라우드 Mac에서 OpenClaw Gateway를 24시간 돌릴 때, 첫 설치보다 자주 터지는 건 재부팅 후 복귀 실패, 로그가 디스크를 잠식, 프로세스는 살아 있는데 채널·모델이 침묵하는 패턴입니다. 이 글은 튜토리얼을 지나 OpenClaw를 프로덕션 인프라로 취급하는 팀을 위한 것입니다. 무인 운영에서 흔한 오해 여섯 가지, 프로세스·컨테이너·리버스 프록시 분기 표, 붙여 넣을 수 있는 launchd·systemd 스니펫, 로그·디스크 스냅샷, 여섯 단계 자가 복구 런북과 온콜 지표 세 가지를 담았습니다. 읽은 뒤에는 plist·Unit을 고칠지, 볼륨을 고칠지, 아니면 고정된 순서로 모델·채널 층으로 돌아갈지 판단할 수 있습니다.
이어서 프로세스가 보이는 것과 메시지 왕복을 분리하고, macOS·Linux 감독자로 이어집니다.
1층(호스트 프로세스)는 Gateway 바이너리·Node 프로세스가 올바른 사용자 아래에서 살아 있고, 의도한 인터페이스에 바인딩되며, 최신 토큰과 데이터 디렉터리를 보는지 묻습니다.
2층(컨테이너)는 compose 네트워크, 퍼블리시한 포트, 볼륨으로 좁힙니다. 호스트 curl과 컨테이너 내부 curl이 다르면 Docker 네트워크 분기 체크리스트부터 보세요.
3층(프록시)는 TLS, WebSocket Upgrade, 경로 제거, 타임아웃을 다룹니다. 엣지 502·핸드셰이크 이슈는 Nginx·Caddy 체크리스트를 따릅니다.
원격 Mac에서는 3층이 SSH 터널이나 사설 DNS 뒤에 있는 경우가 많습니다. localhost curl이 된다고 공개 콜백까지 된다고 보지 마세요. Slack·Telegram류 채널은 채널 트러블슈팅 체크리스트로 OAuth 범위도 확인하세요.
Gateway가 CI 빌드·cron과 같은 호스트를 쓰면 디스크 IO와 CPU 경합에 주의하세요. 빌드 스파이크가 로그 fsync와 TLS 핸드셰이크를 느리게 해 간헐적 타임아웃으로 보입니다. 빌드 캐시와 Gateway 데이터 경로를 분리해 모니터링하고, 둘 다 쓰기 속도에 알림을 걸어 인프라 지터를 모델 품질 퇴행으로 오진하지 마세요.
| 증상 | 먼저 의심할 층 | 다음 조치(실행 가능) |
|---|---|---|
| 감독자는 실행 중인데 리스너 없음 | 프로세스·plist·unit | 동일 사용자로 포그라운드 한 번 실행, WorkingDirectory와 ProgramArguments 확인 |
| 호스트는 OK, 컨테이너 안에서 업스트림 curl 실패 | 컨테이너 네트워크 | compose 네트워크, 퍼블리시 포트, 잘못된 host 네트워킹 점검 |
| 도메인 502인데 루프백은 OK | 리버스 프록시 | proxy_pass, Upgrade 헤더, read_timeout 정합 |
| UI는 OK, 채널 침묵 | 채널·콜백 URL | 웹훅 URL과 TLS 체인이 릴리스와 함께 어긋나지 않았는지 확인 |
| 무작위 정체, 여유 GB 한 자릿수 | 디스크·로그 | 아래 표대로 du, 로그 레벨 낮추기 |
| 부하 높음, 모델 429 | 모델 이그레스·큐 | 스로틀·우회·백오프 연장, 살아 있는 파드를 liveness로 죽이지 않기 |
launchd는 UserName, WorkingDirectory, stdout·stderr 경로, 그리고 KeepAlive와 짝을 이루는 ThrottleInterval을 명시해 크래시 폭풍이 호스트를 고정하지 못하게 하세요.
systemd는 Restart=on-failure와 RestartSec을 짝지우고, EnvironmentFile과 LimitNOFILE을 문서화합니다. 둘 다 SSH 세션이 끝난 뒤에도 서비스가 살아 있어야 한다는 점이 무인 운영과 대화형 디버깅의 핵심 차이입니다.
Docker가 Gateway를 감싸면 launchd·systemd는 보통 Node가 아니라 docker compose up -d(또는 래퍼)를 감독합니다. 건강 검사는 compose나 Kubernetes 헬스 체크 가이드에 설명된 HTTP 프로브로 옮겨, 얼어붙은 컨테이너를 호스트가 건강하다고 착각하지 않게 하세요.
<!-- 샘플 키만—경로·사용자·명령은 설치에 맞게 조정 --> <key>KeepAlive</key><true/> <key>ThrottleInterval</key><integer>30</integer> <key>StandardOutPath</key><string>/var/log/openclaw/gateway.out.log</string> <key>StandardErrorPath</key><string>/var/log/openclaw/gateway.err.log</string>
# /etc/systemd/system/openclaw-gateway.service (스니펫) [Service] Restart=on-failure RestartSec=20 EnvironmentFile=-/etc/openclaw/gateway.env LimitNOFILE=1048576
로그·설정·데이터 경로를 분리해 마운트하면 백업과 쿼터가 독립됩니다. 로테이션은 호스트 평문 로그와 Docker json-file 드라이버를 모두 다뤄야 합니다. 그렇지 않으면 컨테이너를 지워도 디스크에 거대한 레이어가 남습니다. 최소한 Bearer 토큰, 웹훅 시크릿, 이메일, 채널 ID 꼬리를 마스킹하고, SIEM으로 보내기 전에는 취약한 블랙리스트 정규식보다 허용 필드 목록을 선호하세요.
설치 후 doctor 가이드와 짝을 이룹니다. 티켓에는 doctor 요약만 붙이고, 전체 환경 덤프를 채팅에 넣지 마세요.
중앙 로깅에서는 OpenClaw 전용 보존·샘플링 정책을 두세요. 사고 중에는 샘플링을 올리고, 변경 창이 끝나면 자동으로 되돌려 임시 디버그가 영구 기본값이 되지 않게 하세요.
| 경로 유형 | 흔한 위치(예) | 확인·조치 |
|---|---|---|
| Gateway 텍스트 로그 | /var/log/openclaw/ 또는 프로젝트 logs/ | du -sh + 임계 알림, newsyslog·logrotate |
| Docker 그래프 | 그래프 드라이버가 관리 | docker system df, json-file 크기 상한 |
| 작업 디렉터리·캐시 | ~/.openclaw, 빌드 캐시 | 업그레이드 전 백업, 오래된 세션 파일 정리 |
| 루트 볼륨 여유 | / | df -h, 여유 약 15% 미만이면 사람에게 페이지 |
# 빠른 용량 스냅샷(경로는 설치에 맞게 조정) du -sh /var/log/openclaw 2>/dev/null docker system df 2>/dev/null df -h /
주의: 데이터를 지우기 전에 볼륨과 시크릿이 미사용인지 확인하세요. 프로덕션에서는 맹목적인 rm -rf보다 확장·로테이션을 선호합니다.
du를 24시간 전과 비교해 로그 폭증을 잡습니다.compose restart로 서비스를, 필요 시 호스트 재부팅, 종료 코드를 남깁니다.이 글은 원격 Mac에서의 장기 감독, 로그·디스크 위생, 정체 분기 순서를 다룹니다. doctor 가이드는 설치 후 검증, Docker 네트워크 체크리스트는 컨테이너 라우팅, 리버스 프록시 가이드는 TLS·WebSocket, 헬스 프로브 가이드는 오케스트레이터 의미를 다룹니다. 문서는 설치→네트워크→엣지→정상 상태 순으로 쌓아 런북 중복을 줄이세요.
절전 일정, 패치 주기, 로밍 네트워크는 SLA로 적기 어렵고, 일상 업무와 디스크·대역폭을 나눠 쓰면 정체와 로그 폭풍을 분리하기 힘듭니다. 계약된 전용 원격 Mac이면 전원 정책, 디스크 티어, 이그레스를 개인 습관에서 분리할 수 있습니다.
OpenClaw와 자동화에 CI 테스터와 같은 리전, 낮은 절전 확률, 예측 가능한 디스크·대역폭이 필요하면 MACCOME 클라우드 Mac이 더 안정적인 실행면을 제공합니다. 먼저 대여 요금을 확인하고, 지역별 주문 페이지를 여세요—싱가포르, 도쿄, 서울, 홍콩, 미국 동부, 미국 서부. 연결 절차는 고객 센터에서 확인하세요.
FAQ
재부팅 후에는 데몬과 설정 중 무엇을 먼저 보나요?
포그라운드로 설정이 읽히는지 증명한 뒤 plist·unit 환경과 경로로 돌아갑니다. 설치 단계는 설치 후 doctor·트러블슈팅 가이드를 참고하세요.
로그가 디스크를 채울 수 있나요?
가능합니다. 무인 환경에서 흔합니다. 로테이션·알림·파이프라인 마스킹을 넣으세요. 티어 비교는 Mac mini 대여 요금 페이지에서 하세요.
UI는 뜨는데 응답이 없나요?
모델, 채널, 큐 순으로 분기하고 재시작만 반복하지 마세요. 채널 트러블슈팅 체크리스트를 함께 읽으세요.
원격 Mac이 계속 절전되나요?
전원 설정을 조정하고 감독자가 다시 띄우도록 두며, 벤더 유지보수 창을 확인하세요. 연결 키워드는 고객 센터에서 검색하세요.