RHEL 上級 #7 Cockpit による GUI 管理と Web Console — シリーズ締め

読了 9分

ここまで RHEL 上級シリーズは 6 編すべて CLI 中心でした。最後の 1 編はその上に GUI を 1 層重ねます。Red Hat が公式に推奨する Web Console Cockpit です。SSH で接続して vi /etc/... で 1 つずつ直すのではなく、ブラウザで一度に見る方が速い場面があります。この記事では Cockpit の位置づけ、よく使うモジュール、複数マシン管理、そしてシリーズ 7 編をひとまとめに締めくくります。

RHEL 上級 シリーズでこの記事の位置:

Cockpit の位置づけ #

CLI (ssh + vi)Cockpit
学習曲線高い低い
自動化優秀 (スクリプト化可能)困難 (手作業中心)
1 画面で見る困難 (htopjournalctlss などを別々に)優秀 (ダッシュボードに集約)
複数マシン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 を回すのと同じですが、視覚的に 1 画面に集約されます。

2. コンテナ運用 — cockpit-podman #

中級 #7 で見た Podman を GUI で:

  • 実行中のコンテナ一覧
  • イメージ pull/build/削除
  • コンテナの開始/停止/再起動
  • ログのリアルタイム参照
  • 環境変数、マウント、ポートマッピングの可視化
  • Pod グループ管理

podman pspodman 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 マシンに接続し、1 つのブラウザで複数マシンを切り替えます。

設定
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 ではクリック 1 回 → 進行表示 → 結果ダウンロード。Red Hat ケースに添付。

sosreport が集めるもの #

  • /etc/ の主要設定ファイル群
  • journalctl ログ
  • dmesg
  • rpm -qa (インストール済みパッケージ一覧)
  • ネットワーク状態 (ipssroutes)
  • 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 — クリック 1 回

各モジュールは結局同じバックエンドコマンドを呼びます。Cockpit は新しいツールではなく、馴染みの RHEL ツールの視覚的な 1 層です

よくある落とし穴 #

  • 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 操作を一貫して再現したいなら 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 の視野が狭い場面に視覚的な 1 層。新ツールではなく 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 クリック 1 回または sos report
  • 自動化は常に別 — Cockpit は人が見るツール、自動化は Ansible / Satellite / スクリプトで。

シリーズ締めくくり #

これで RHEL 上級シリーズ 7 編を閉じます。ブート段階の分解から始まり、カーネルチューニング、パフォーマンス分析、SELinux ポリシー作成、セキュリティ強化、複数マシン運用インフラ、そして GUI の 1 層まで — 1 マシンを深く扱うツールと、複数マシンを運用するツールを 1 サイクルで整理しました。

ここまで一緒に来た読者は、RHEL 9 運用の日常的なツールをほぼすべて手にしたといってよいでしょう。次のステップに進むなら:

  • 資格トラック — RHCSA (EX200) → RHCE (EX294、Ansible 自動化)。シリーズ #6 の Satellite、#5 のセキュリティ強化が試験ドメインの一部。
  • 実戦トラック — 1 つのドメインに深く入る別シリーズ。Web サーバ運用、DB 運用、Podman + systemd quadlet、Ansible 自動化など。
  • Linux 深掘り — RHEL 以外の Linux との比較、カーネル自体の深さ、eBPF のようなモダンツール。

ここまでお付き合いいただきありがとうございました。RHEL 9 が手に馴染むマシンになりますように。

X