RHEL 고급 #7 Cockpit으로 GUI 관리와 web console — 시리즈 마무리

8 분 소요

여기까지 RHEL 고급 시리즈는 6편 모두 CLI 중심이었습니다. 마지막 한 편은 그 위에 GUI 한 층을 얹습니다. Red Hat이 공식 권장하는 web console Cockpit 입니다. SSH로 접속해서 vi /etc/...로 일일이 고치지 말고, 브라우저에서 한 번에 보는 게 더 빠른 경우들이 있습니다. 이 글에서는 Cockpit의 쓰임, 자주 쓰는 모듈, 다중 머신 관리, 그리고 시리즈 7편을 한 묶음으로 마무리합니다.

RHEL 고급 시리즈에서 이번 글의 위치:

Cockpit의 위치 #

CLI (ssh + vi)Cockpit
학습 곡선높음낮음
자동화우수 (스크립트화 가능)어려움 (수동 작업 중심)
한 화면에서 보기어려움 (htop, journalctl, ss 등 따로)우수 (대시보드에 다 모여 있음)
다중 머신Ansible 등 별도Cockpit 자체에 dashboard
RHEL 표준네 (모든 운영자)네 (RHEL 8부터 web console 공식)

CLI를 못 한다는 뜻이 아니라, CLI가 강력하지만 시야가 좁다는 부분에 Cockpit을 두는 게 표준입니다. 처음 접속한 머신의 큰 그림(서비스가 뭐가 떠 있는지, 디스크가 어떻게 잡혀 있는지, 컨테이너가 몇 개 도는지)을 잡을 때 가장 빠른 도구입니다.

설치와 활성화 #

RHEL 9에는 보통 이미 설치돼 있습니다.

확인과 활성화
$ sudo systemctl status cockpit.socket
○ cockpit.socket - Cockpit Web Service Socket
     Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; disabled; preset: disabled)

# 활성화
$ sudo systemctl enable --now cockpit.socket

# 방화벽 — Cockpit은 9090/tcp 사용
$ sudo firewall-cmd --add-service=cockpit --permanent
$ sudo firewall-cmd --reload

중요한 점: cockpit.service가 아닌 cockpit.socket을 활성화. socket activation 패턴이라 평소엔 데몬이 안 떠 있다가 9090 포트에 접속이 들어오면 그 시점에 깨어납니다. 평소 자원 사용이 거의 0.

접속 #

브라우저에서:

https://<host>:9090

기본 인증서가 self-signed이므로 첫 접속에서 경고가 뜹니다. 운영 머신에는 Let’s Encrypt 인증서나 사내 CA 인증서를 /etc/cockpit/ws-certs.d/에 두는 게 표준.

인증서 위치
/etc/cockpit/ws-certs.d/0-self-signed.cert  # 기본 self-signed
/etc/cockpit/ws-certs.d/1-fullchain.pem     # 커스텀 (알파벳 순으로 마지막이 우선)

로그인 #

PAM으로 인증하므로 시스템 사용자 그대로 로그인합니다. sudo 권한이 있는 사용자라면 좌상단 “Limited access” 토글로 관리자 모드 전환.

로그인 흐름
브라우저 → https://<host>:9090
PAM 인증 (passwd / SSH key / FreeIPA ...)
세션 시작 → 권한이 있으면 "관리자 액세스" 활성

기본 모듈 — 무엇을 볼 수 있나 #

설치 시점에 따라오는 핵심 모듈.

메뉴무엇을
OverviewCPU/메모리/디스크/네트워크 실시간 그래프, 시스템 정보
Logsjournalctl의 GUI — 우선순위/시간/식별자 필터
NetworkingNetworkManager 통합 — 인터페이스, bonding, VLAN, firewalld
StorageLVM, 파일시스템, NFS, iSCSI, RAID, Stratis (RHEL 8/9 전용)
Accounts사용자 / 그룹 관리, 비밀번호 정책, SSH key 관리
Servicessystemd 서비스 — start/stop/enable/disable, 로그 조회
Software Updatesdnf upgrade GUI, 자동 업데이트 설정
Terminal브라우저 안의 SSH 셸

추가 모듈 (별도 설치) #

자주 추가하는 모듈
$ sudo dnf install -y \
    cockpit-podman \         # 컨테이너 관리
    cockpit-machines \       # KVM/libvirt VM 관리
    cockpit-pcp \            # 성능 분석 (PCP 통합)
    cockpit-files \          # 파일 매니저
    cockpit-storaged \       # 고급 스토리지 (Stratis 등)
    cockpit-selinux \        # SELinux 거부 분석
    cockpit-packagekit       # 패키지 관리

설치하면 메뉴에 자동으로 추가됩니다.

자주 쓰는 흐름 #

1. 새 머신 첫 점검 #

순서
Overview     → CPU/메모리/디스크 큰 그림
Networking   → 인터페이스 IP, 라우팅, 방화벽
Storage      → 디스크 파티션, LVM 구성, 마운트
Services     → 떠 있는 서비스, 활성화 상태
Logs         → 최근 에러

5분이면 머신의 전체 상태를 손에 잡을 수 있습니다. SSH로 들어가 df -h && free -h && ss -tlnp && systemctl list-units --state=failed && journalctl -p err -n 50을 도는 것과 동일하지만 시각적으로 한 화면에 모입니다.

2. 컨테이너 운영 — cockpit-podman #

중급 #7에서 본 Podman을 GUI로:

  • 실행 중인 컨테이너 목록
  • 이미지 풀/빌드/제거
  • 컨테이너 시작/중지/재시작
  • 로그 실시간 조회
  • 환경 변수, 마운트, 포트 매핑 시각화
  • Pod 그룹 관리

podman ps, podman logs -f가 익숙해도 처음 접속한 머신에서 컨테이너 구성 전체를 한 번에 보려면 GUI가 빠릅니다. 운영 사이클에서 둘을 같이 쓰는 게 표준.

3. 성능 분석 — cockpit-pcp #

#3 성능 분석에서 본 sar/iostat의 데이터를 GUI 그래프로. Performance Co-Pilot (PCP)를 백엔드로 쓰는 시계열 그래프입니다.

설치
$ sudo dnf install -y cockpit-pcp pcp
$ sudo systemctl enable --now pmcd pmlogger

설치 후 Cockpit Overview에서 CPU/메모리/디스크/네트워크의 시계열 그래프를 볼 수 있습니다 — sar가 로그 파일로 남기는 데이터를 GUI로 시각화한 것.

4. SELinux 거부 분석 — cockpit-selinux #

#4 SELinux 고급에서 본 sealert의 GUI. AVC 거부 목록과 각 거부의 해설, 자동 제안되는 수정 명령 (semanage fcontext -a ... && restorecon ...)까지 GUI에서 한 번에.

권장 흐름:

  1. Cockpit SELinux 메뉴에서 거부 발견
  2. 자동 제안 검토
  3. 명령을 직접 적용하거나, 정책 모듈(#4)로 모듈화

GUI가 사람이 읽기 쉬운 형태로 거부를 모아주는 영역.

5. 가상머신 관리 — cockpit-machines #

KVM 위에서 VM을 운영한다면 GUI로:

  • VM 목록, 상태, 자원 사용
  • 시작/중지/재시작/스냅샷
  • 콘솔 (VNC/SPICE) 접속
  • 네트워크/스토리지 설정
  • 새 VM 생성 (ISO 또는 cloud image)

virsh로 다 할 수 있지만 학습 비용이 큽니다. Cockpit으로는 5분이면 첫 VM을 띄울 수 있습니다.

다중 머신 관리 — Dashboard #

Cockpit의 다른 머신을 추가 기능. SSH로 다른 RHEL 머신에 연결해 한 브라우저에서 여러 머신을 전환합니다.

설정
Cockpit (https://main:9090) → Dashboard → "Add new host"
                                          ssh other-host
                                          (자동으로 cockpit-bridge 띄움)

다른 머신은 Cockpit 자체가 설치돼 있을 필요는 없습니다 — cockpit-bridge (또는 python3으로 부트스트랩)가 SSH 너머에서 동작합니다.

dashboard의 쓰임 #

다중 머신 관리가 필요한 영역은 보통 Satellite 나 Ansible의 몫입니다. Cockpit dashboard는 그 사이 — 수십 대 미만, 임시적, 시각적 점검 이 필요할 때.

규모도구
1 ~ 10 대, 시각적 점검Cockpit dashboard
10 ~ 100 대, 자동화Ansible
100 대 이상Satellite

진단 도구 통합 — sosreport #

기술 지원에 케이스를 열 때 Red Hat이 요구하는 표준 진단 자료가 sosreport 입니다. Cockpit의 Diagnostic Reports 메뉴에서 GUI로 한 번에:

CLI도 같음
$ sudo dnf install -y sos
$ sudo sos report

Press ENTER to continue, or CTRL-C to quit.
...
Your sos report has been generated and saved in:
        /var/tmp/sosreport-host-2026-05-02-abc123.tar.xz

GUI에서는 클릭 한 번 → 진행 표시 → 결과 다운로드. Red Hat 케이스에 첨부.

sosreport가 모으는 것 #

  • /etc/의 주요 설정 파일들
  • journalctl 로그
  • dmesg
  • rpm -qa (설치 패키지 목록)
  • 네트워크 상태 (ip, ss, routes)
  • systemd unit 상태
  • SELinux 상태
  • 메모리/CPU 정보
  • 그 외 60+ 플러그인이 모듈별로 진단 자료 수집

비밀번호 같은 민감 정보는 스크럽되지만, 항상 Red Hat에 보내기 전 직접 검토 권장.

Cockpit과 RHEL 운영 도구의 관계 #

도구같이 쓰는 부분
systemdServices 메뉴 — systemctl의 GUI
journalctlLogs 메뉴 — 시간/우선순위/식별자 필터링
NetworkManagerNetworking — nmcli의 GUI
firewalldFirewall (Networking 안) — firewall-cmd의 GUI
LVM / StratisStorage — 시각적 디스크 구성
Podmancockpit-podman — podman 명령의 GUI
PCPcockpit-pcp — sar/iostat의 그래프 시각화
SELinuxcockpit-selinux — sealert의 GUI
virsh / libvirtcockpit-machines — virsh의 GUI
sosreportDiagnostic Reports — 한 번 클릭

각 모듈은 결국 같은 백엔드 명령을 호출합니다. Cockpit은 새 도구가 아니라 익숙한 RHEL 도구의 시각적 한 층.

흔한 함정 #

  • cockpit.service 활성화cockpit.socket이 정답. service를 직접 활성화하면 socket activation의 이점이 사라집니다.
  • 9090 포트가 방화벽에 막힘firewall-cmd --add-service=cockpit --permanent 누락. 외부에서 접속 안 됨.
  • self-signed 인증서로 운영 — 브라우저 경고가 매번 뜨고, 일부 브라우저는 클립보드 등 일부 기능을 제약. 운영은 정식 인증서로.
  • SELinux 거부 무시 — Cockpit 자체도 SELinux 정책 안에서 동작. 사용자 정의 인증서 위치를 옮기면 라벨이 안 맞아 안 보일 수 있음. restorecon 항상 짝으로.
  • Cockpit만으로 자동화 — Cockpit은 사람이 클릭하는 GUI. 자동화는 Ansible / Satellite / dnf 스크립트로. GUI 작업을 일관성 있게 재현해야 한다면 GUI가 아닌 CLI로 옮기는 게 표준.
  • 다중 머신 dashboard를 운영 표준으로 — 수십 대 미만의 임시적 도구. 본격 다중 머신 운영은 Satellite 또는 Ansible.
  • 방화벽 외부 노출 — 9090을 인터넷에 직접 노출하면 공격 표면. VPN 또는 SSH 터널 너머에서만 접근.

기억해 둘 명령 #

작업명령
활성화sudo systemctl enable --now cockpit.socket
방화벽sudo firewall-cmd --add-service=cockpit --permanent && sudo firewall-cmd --reload
추가 모듈sudo dnf install -y cockpit-podman cockpit-machines cockpit-pcp ...
인증서 변경/etc/cockpit/ws-certs.d/*.cert, *.key 두기 + restorecon
비활성화sudo systemctl disable --now cockpit.socket
진단 자료 (CLI)sudo sos report
접속 URLhttps://<host>:9090

정리 #

  • Cockpit의 위치 — CLI의 시야가 좁은 부분에 시각적 한 층. 새 도구가 아니라 systemd, NetworkManager, journalctl, podman 등 익숙한 도구의 GUI.
  • 활성화cockpit.socket만. service가 아닌 점에 주의. 9090/tcp 방화벽 + 정식 인증서.
  • 자주 쓰는 흐름 — 첫 점검 (Overview → Networking → Storage → Services → Logs), 컨테이너 (cockpit-podman), 성능 (cockpit-pcp), SELinux 거부 (cockpit-selinux), 가상머신 (cockpit-machines).
  • 다중 머신 dashboard — 수십 대 미만 환경의 임시 도구. 본격 다중 운영은 Satellite 또는 Ansible.
  • sosreport — Red Hat 케이스 표준 진단 자료. GUI 한 번 클릭 또는 sos report.
  • 자동화는 항상 별도 — Cockpit은 사람이 보는 도구, 자동화는 Ansible / Satellite / 스크립트로.

시리즈 마무리 #

이걸로 RHEL 고급 시리즈 7 편을 닫습니다. 부팅 단계의 분해부터 시작해서 커널 튜닝, 성능 분석, SELinux 정책 작성, 보안 강화, 다중 머신 운영 인프라, 그리고 GUI 한 층까지 — 한 머신을 깊이 다루는 도구와 여러 머신을 운영하는 도구를 한 사이클로 정리했습니다.

여기까지 따라온 독자는 RHEL 9 운영의 일상적인 도구들을 거의 다 손에 잡았다고 봐도 됩니다. 다음 단계로 넘어간다면:

  • 자격증 트랙 — RHCSA (EX200) → RHCE (EX294, Ansible 자동화). 시리즈 #6의 Satellite, #5의 보안 강화가 시험 도메인의 일부.
  • 실전 트랙 — 한 도메인에 깊이 들어가는 별개 시리즈. 웹 서버 운영, DB 운영, Podman + systemd quadlet, Ansible 자동화 등.
  • Linux 깊이 — RHEL 외의 Linux와 비교, 커널 자체의 깊이, eBPF 같은 모던 도구.

여기까지 따라와 주셔서 감사합니다. RHEL 9가 손에 잡히는 머신이 되길 바랍니다.

X