Ubuntu Server에 Cockpit 올려서 브라우저로 서버 관리하기


이전에 안쓰는 노트북을 홈서버로 개조해보자 (feat. Windows를 밀고 Ubuntu Server 세팅하기) 으로 안 쓰는 노트북에 Ubuntu Server를 올려 홈서버 베이스는 잡아뒀다.

매번 자원이 어느 정도 남았는지 htop, df -h 같은 걸 SSH로 치는데… 역시나 나는 게으른 사람인지라 너무… 힘들다 ^^….

그래서 브라우저로 서버 상태/웹 터미널까지 보는 Cockpit을 올렸다.
(Proxmox 호스트가 아니라 개인 노트북 Ubuntu Server 기준)

SSH로 자원 확인

그래도 ssh로도 자원 확인 방법은 세팅해두면 좋으니 한 번 정리해봤다.

uptime                                    # 가동시간 + CPU 부하
nproc                                     # CPU 코어 수
lscpu                                     # CPU 상세
top                                       # CPU/메모리 실시간 (q로 종료)
htop                                      # top 업그레이드판 (설치 필요)
free -h                                   # 메모리 남은 양
df -h                                     # 디스크 남은 양
df -ih                                    # inode 사용량
lsblk -f                                  # 디스크/파티션
sudo du -xhd1 / 2>/dev/null | sort -h     # 용량 많이 먹는 경로
systemctl --failed                        # 죽은 서비스
sudo journalctl -p err -b                 # 이번 부팅 에러 로그
nvidia-smi                                # NVIDIA GPU 있을 때만

평소엔 uptime, free -h, df -h, htop 정도면 충분하다.

Cockpit 설치

전제: Ubuntu Server + SSH + sudo 계정

sudo apt update
sudo apt install -y cockpit
sudo apt install -y cockpit-pcp           # (선택) 성능 그래프
sudo apt install -y cockpit-podman        # (선택) 컨테이너 쓸 때

sudo systemctl enable --now cockpit.socket
sudo systemctl status cockpit.socket      # active (listening) 이면 OK
sudo ss -tlnp | grep 9090                 # 기본 포트 9090

sudo ufw allow 9090/tcp                   # 포트 열기 (ufw 쓸 때만)
sudo ufw status

집에서 접속하기

일단 서버 주소를 알아야 하기에, 다음의 명령어로 LAN IP를 확인 후 9090포트로 이동하면 된다.
아마 여러 IP주소가 나올텐데, 거기서 맨 처음으로 나오는 값을 입력하면 된다.

hostname -I                               # 서버 LAN IP 확인
ip -4 addr show                           # 인터페이스별 IP 상세

브라우저:

https://192.168.x.x:9090                  # 위에서 나온 IP 사용

이 때 이미지처럼 사이트에 접속하면 비밀번호를 입력하라고 나오는데, SSH 쓰는 리눅스 계정 그대로 입력하면 된다.

만약 로그인 계정을 잘 모르겠으면 터미널에서 아래 명령어로 확인해보자.

groups                                    # sudo 있는지 확인
sudo usermod -aG sudo <username>          # 없으면 추가 후 재로그인

Tailscale로 밖에서 접속

개발자들이라면 보통은 로컬 세팅만 하지 않는다. 위의 세팅으로 하게 된다면 집 밖으로 나갔을 때는 해당 페이지에 접속할 수 없기 때문이다.

따라서 밖에서도 자유롭게 쓰고 싶은 사람은 Tailscale처럼 VPN을 붙이는 것도 추천한다.

홈서버 세팅하기

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up                         # 나온 URL로 로그인
tailscale status
tailscale ip -4                           # 100.x.x.x

접속하기

https://100.x.x.x:9090
https://<머신이름>:9090                   # MagicDNS 켠 경우

방화벽 (권장)

sudo ufw delete allow 9090/tcp            # 전체 개방 제거
sudo ufw allow from 100.64.0.0/10 to any port 9090 proto tcp   # Tailscale만
sudo ufw allow from 192.168.0.0/16 to any port 9090 proto tcp  # (선택) 집 LAN도
sudo ufw status

(선택) Serve

:9090 없이 쓰려면:

sudo tailscale serve --bg https+insecure://127.0.0.1:9090
sudo tailscale serve status               # 접속 URL 확인
sudo tailscale serve reset                # 끌 때

Serve = Tailnet 안만 / Funnel = 인터넷 공개 → Cockpit은 Funnel 쓰지 말 것!!

로그인 후

대시보드까지 접속을 성공했다면 이제 웹 UI로 모든 것을 확인할 수 있다!


Author: Ruby Kim
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Ruby Kim !
Comments
  TOC