手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Cockpit – Linux サーバー管理 WebUI を補助的に使う

Cockpit は Linux サーバーの状態確認や一部の管理操作をブラウザから行える WebUI です。Ubuntu 22.04 サーバーでは、CLI 運用を置き換えるものではなく、状態確認や補助的な操作に使う位置づけが扱いやすいです。

この記事では、Ubuntu 22.04 に Cockpit を導入し、9090 番ポート、firewall、ログイン、TLS、証明書、運用時の注意点を確認します。

関連する記事
この記事で確認すること
  • Cockpit を補助的な管理 WebUI として使う位置づけ
  • cockpit パッケージの導入
  • 9090 番ポートと firewall の確認
  • ログイン、TLS、証明書の考え方
  • CLI 運用と併用するときの注意点
参考
書籍
参考書籍

ストーリーで覚える Linux CLI 入門

Linux のコマンドライン操作を基礎から確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

Cockpit を使う位置づけ

Cockpit はサーバー管理を見える化する WebUI です。便利ですが、すべての設定を Cockpit だけで完結させるより、CLI と設定ファイルを主にして、Cockpit は確認用として使う方が変更履歴を追いやすくなります。

用途Cockpit が向くことCLI で確認したいこと
状態確認CPU、メモリ、ディスク、ログを見るsystemctl / journalctl
サービス管理起動、停止、状態確認unit ファイルと依存関係
ネットワーク現在の接続状態を見るNetplan 設定ファイル
更新更新候補の確認APT の実行ログと方針

パッケージをインストールする

Ubuntu 22.04 の標準リポジトリから cockpit を導入します。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y cockpit
cockpit-bridge --version

サービス状態を確認する

Cockpit は socket activation で起動します。cockpit.socket が有効になっているか確認します。

systemctl status cockpit.socket --no-pager
systemctl is-enabled cockpit.socket
systemctl status cockpit.service --no-pager || true

Cockpit を有効化する

必要に応じて cockpit.socket を有効化します。常時 Web サービスとして公開する意図がない場合は、公開範囲を先に決めます。

sudo systemctl enable --now cockpit.socket
systemctl status cockpit.socket --no-pager
ss -lntp | grep 9090 || true

アクセス URL を確認する

Cockpit は通常 9090 番ポートで待ち受けます。まずサーバー自身から応答を確認し、外部端末からの接続は firewall と公開範囲を確認してから行います。

curl -kI https://127.0.0.1:9090/
hostname -I
ip -br addr

firewall を確認する

外部端末から Cockpit に接続する場合は、9090 番ポートの許可が必要です。管理 WebUI なので、許可する送信元を限定します。

sudo ufw status verbose
sudo nft list ruleset | grep 9090 || true
sudo iptables -S | grep 9090 || true

ログイン権限を確認する

Cockpit は Linux のユーザー認証を使います。管理操作を行う場合は、そのユーザーの sudo 権限も関係します。

id "$USER"
groups "$USER"
sudo -l

TLS と証明書を確認する

Cockpit は HTTPS でアクセスします。検証では自己署名証明書のままでも確認できますが、継続利用する場合は内部 CA や運用方針に合わせます。

sudo ls -l /etc/cockpit/ws-certs.d 2>/dev/null || true
openssl s_client -connect 127.0.0.1:9090 -servername localhost </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

ログを確認する

接続できない場合は、socket、service、journal を分けて確認します。

journalctl -u cockpit.socket -n 50 --no-pager
journalctl -u cockpit.service -n 50 --no-pager
journalctl -t cockpit-ws -n 50 --no-pager || true

使わない場合は停止する

Cockpit を常時使わない場合は、socket を止めて無効化します。管理 WebUI は便利ですが、不要な待ち受けを増やさないことも重要です。

sudo systemctl disable --now cockpit.socket
systemctl status cockpit.socket --no-pager
ss -lntp | grep 9090 || true

運用時に見るポイント

Cockpit は便利な補助画面ですが、設定変更の根拠や手順は CLI と設定ファイルで追えるようにしておきます。

  • 9090 番ポートの公開範囲を限定する
  • 管理ユーザーと sudo 権限を確認する
  • TLS 証明書の扱いを決める
  • Cockpit で変更した内容も CLI で確認する
  • 不要な場合は cockpit.socket を止める

まとめ

Ubuntu 22.04 の Cockpit は、サーバー状態の確認や一部の管理操作をブラウザから行える補助的な WebUI です。CLI 運用を置き換えるものとしてではなく、状態確認と補助操作に使うと扱いやすくなります。

導入後は、cockpit.socket、9090 番ポート、firewall、ログイン権限、TLS 証明書、ログを確認します。不要な場合は socket を停止し、管理 WebUI の公開範囲を広げすぎないようにします。

関連する記事
Ubuntu 22.04 Cockpit – Linux サーバー管理 WebUI を補助的に使う

Ubuntu 22.04 Cockpit – Linux サーバー管理 WebUI を補助的に使う」への2件のフィードバック

  1. NetworkManager がインストールされてしまいます。
    私は、 cockpit-networking (ネットワーク管理機能) と cockpit-machines (仮想マシン管理機能) を除いたインストールを実行しています。

    sudo apt install -y cockpit-ws cockpit-system cockpit-packagekit cockpit-storaged cockpit-pcp

    1. ご指摘の通り、apt install cockpit では依存関係として NetworkManager もインストールされますね。
      ただ、Netplan をデフォルト (renderer: networkd) で使う場合は、Cockpit から管理できないだけで、特に動作に影響はないため、私はあまり問題視していませんでした。
      とはいえ、使わないものをインストールしない という観点では、パッケージを絞る方法は確かに有益ですね。
      記事の更新も検討してみます。コメントありがとうございました!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る