실습 로그 / Proxmox 홈랩
홈랩 8단계 · 홈랩 운영 점검
운영 중인 VM 4대(portfolio, careernavi, yeoulmok, calendar)의 상태를 한 번에 점검하고, 시간대·스냅샷·Guest Agent·커널 버전을 통일해서 관리하기 쉬운 상태로 만든다.
운영리눅스트러블슈팅
목표
- 운영 중인 VM 4대(portfolio, careernavi, yeoulmok, calendar)의 상태를 한 번에 점검하고 설정 맞추기
- 시간대·스냅샷·Guest Agent·커널 버전을 통일해서 관리하기 쉬운 상태로 만들기
A. 서버 현황 점검
- Mac에서 반복문 한 줄로 VM 3대(portfolio, careernavi, yeoulmok)의 상태를 한 번에 모음
- 확인한 항목: OS, 커널, 시간대, 디스크, 계정, IP, Docker/Compose/cloudflared 버전, 컨테이너와 포트
for h in portfolio careernavi yeoulmok; do echo "=== $h"; ssh haewonlee@$h '
lsb_release -ds; uname -r; timedatectl show -p Timezone --value
df -h / | tail -1; ls /home; tailscale ip -4; hostname -I | cut -d" " -f1
docker --version; docker compose version --short; cloudflared --version | head -1
docker ps --format "{{.Names}} | {{.Image}} | {{.Ports}}"'; done
- VM 사양(코어·메모리·디스크·스냅샷)은 Proxmox 호스트 Shell에서
qm으로 확인
qm: Proxmox에서 VM을 다루는 명령어. VM 안이나 Mac이 아니라 pve 호스트에서만 동작함
for i in 100 103 104 105; do echo "=== $i"; qm config $i | grep -E '^(name|cores|memory|scsi0|net0|agent)'; qm listsnapshot $i; done
| 항목 |
portfolio |
careernavi |
yeoulmok |
| 커널 |
7.0.0-34 |
7.0.0-38 |
7.0.0-42 |
| 시간대 |
Etc/UTC |
Etc/UTC |
Etc/UTC |
| 디스크 사용 |
12G / 38G (33%) |
9.1G / 28G (35%) |
6.7G / 28G (26%) |
| Docker / Compose |
29.8.2 / 5.5.1 |
29.9.2 / 5.6.1 |
29.9.2 / 5.6.1 |
| cloudflared |
2026.10.0 |
2026.10.5 |
2026.10.7 |
| 대기 중 업데이트 |
48개 + 재시작 필요 |
18개 |
0개 |
- 정리한 결과로 각 프로젝트 페이지에 서버 구성 표를 추가함
- 발견한 점 (급하지 않음)
- portfolio의 Grafana(3000)·Prometheus(9090), careernavi·yeoulmok의 API(8000)가
0.0.0.0으로 열려 있음 → 같은 공유기(LAN) 안에서 바로 접속 가능
- 터널로만 쓰면 되니 나중에
127.0.0.1로 묶는 게 안전함
0.0.0.0: 모든 네트워크 인터페이스에서 접속을 받겠다는 뜻
127.0.0.1: 자기 자신(서버 내부)에서만 접속 가능
B. 운영 설정 맞추기
- 시간대를 4대 모두 한국 시간으로 통일
- 이유: 로그·크론 시간이 UTC면 9시간씩 헷갈림. 장애 볼 때 시간 맞추기가 제일 중요함
sudo timedatectl set-timezone Asia/Seoul && date
# Mon Nov 2 11:43:25 AM KST 2026
- 스냅샷 생성: careernavi(103), yeoulmok(104)에
base_setup 추가 (pve Shell)
- 스냅샷: 특정 시점의 VM 상태를 저장해두는 것. 업데이트하다 망가지면 그 시점으로 되돌릴 수 있음
- 업데이트 전에 찍어둔 게 포인트
qm snapshot 103 base_setup
qm snapshot 104 base_setup
| VM |
스냅샷 |
| 100 portfolio |
base_setup (10/1) |
| 103 careernavi |
base_setup (11/2) |
| 104 yeoulmok |
base_setup (11/2) |
| 105 calendar |
base-setup |
- yeoulmok에 Qemu Guest Agent 설치
- Qemu Guest Agent: VM 안에서 돌면서 Proxmox에 IP·상태를 알려주고, 정상 종료·스냅샷을 도와주는 프로그램
sudo apt install -y qemu-guest-agent && sudo systemctl start qemu-guest-agent
systemctl is-active qemu-guest-agent # active
- careernavi는 Proxmox 설정에서 Agent가 꺼져 있음 → 켜려면 VM 재시작이 필요해서 11/16 발표 이후로 미룸
- 저장소(thin pool) 사용량 확인: 23%로 여유 있음
- thin LVM: 디스크를 실제로 쓴 만큼만 차지하는 방식. VM들에 할당한 합계가 실제 용량보다 커도 됨(오버프로비저닝)
- 그래서 경고가 뜨지만, 실제 사용률이 높아지기 전엔 문제없음. 사용률만 주기적으로 보면 됨
lvs # data pve twi-aotz-- Data% 23
C. 커널 업데이트와 재부팅
- 업데이트가 밀려 있던 portfolio(48개, 재시작 필요)와 careernavi(18개)를 업데이트하고 재부팅
sudo apt update && sudo apt upgrade -y && sudo reboot
- 커널: OS의 핵심. 커널이 바뀌면 재부팅해야 새 버전이 적용됨
*** System restart required ***: 업데이트는 됐는데 재부팅해야 적용된다는 표시
- 재부팅 후 확인한 것
uname -r # 7.0.0-42-generic
docker ps # 모든 컨테이너 Up
- careernavi: 약 1분 만에 복구. db / web / api 모두 Up
- portfolio: site, Grafana, Prometheus, cAdvisor, node-exporter 5개 모두 Up
- 컨테이너가 알아서 다시 뜬 이유: compose에
restart 정책이 걸려 있어서 Docker가 부팅 때 자동으로 올림
- 결과: VM 4대 모두 커널
7.0.0-42로 통일
| VM |
커널 |
Docker / Compose |
cloudflared |
| portfolio |
7.0.0-34 → 7.0.0-42 |
29.8.2 / 5.5.1 → 29.9.2 / 5.6.1 |
2026.10.0 → 2026.10.7 |
| careernavi |
7.0.0-38 → 7.0.0-42 |
29.9.2 / 5.6.1 |
2026.10.5 → 2026.10.7 |
| yeoulmok |
7.0.0-42 |
29.9.2 / 5.6.1 |
2026.10.7 |
트러블슈팅
1. 엉뚱한 VM이 재부팅됨
- 증상 : portfolio를 업데이트·재부팅하려고 했는데, careernavi가 재부팅됨
- 확인한 것
- 이미 careernavi에 접속한 상태에서
ssh haewonlee@portfolio를 입력함
- careernavi에는 portfolio로 가는 키가 없어서 접속이 실패함 (
Permission denied (publickey))
- 그 다음 줄
sudo apt upgrade -y && sudo reboot이 careernavi에서 그대로 실행됨
- 원인
- 프롬프트(
haewonlee@careernavi:~$)를 확인하지 않고 명령어를 이어서 붙여넣음
- 접속 실패를 못 보고 넘어감
- 해결
- careernavi는 약 1분 뒤 정상 복구됨 (db / web / api Up, 커널 7.0.0-42로 업데이트됨)
exit로 Mac에 돌아온 뒤 portfolio에 다시 접속해서 업데이트·재부팅함
- 재발 방지
- 재부팅·삭제처럼 되돌리기 어려운 명령 전에는 프롬프트 확인 또는
hostname 실행
- 다른 서버로 갈 땐 서버 안에서 또 ssh하지 말고,
exit로 Mac에 돌아와서 접속
- ssh와 위험한 명령을 한 번에 붙여넣지 않기
2. yeoulmok "Guest Agent not running"
- 증상 : Proxmox 요약 화면에 yeoulmok의 IP가 안 뜨고 Agent가 실행 중이 아니라고 나옴
- 확인한 것
qm config 104에 agent: 1 (Proxmox 쪽 설정은 켜져 있음)
- VM 안에는
qemu-guest-agent 패키지가 설치돼 있지 않음
- 원인
- Proxmox 설정만 켜고, VM 안에 Agent 프로그램을 설치하지 않음
- 설치 직후에도
disabled or a static unit, not starting it이라며 자동 시작이 안 됨
- 해결
sudo apt install -y qemu-guest-agent && sudo systemctl start qemu-guest-agent
systemctl is-active qemu-guest-agent # active
- 재발 방지
- 새 VM 체크리스트에 "Proxmox Agent 체크 + VM 안에 qemu-guest-agent 설치" 둘 다 포함
- 설치 후
systemctl is-active로 확인까지
남은 작업