Cockpit活用ガイド:WebインターフェースでCentOS Stream 9を効率的に管理

CentOS tutorial - IT technology blog
CentOS tutorial - IT technology blog

クイックスタート:Cockpitをたった5分でインストール

Linux初心者の方、あるいはサーバー管理のための直感的なツールをお探しですか?Cockpitはまさに理想的なソリューションです。CentOS Stream 9の管理がウェブ閲覧のように簡単になります。すぐに始めるために、いくつかの基本的なコマンドを実行するだけです。

ステップ1:Cockpitのインストール

CentOS Stream 9では、Cockpitは公式リポジトリで提供されているため、インストールは非常に迅速です。RHELベースのディストリビューションにおけるこの利便性は本当に素晴らしいと思います!


sudo dnf install cockpit -y

ステップ2:サービスの有効化と起動

インストール後、Cockpitサービスが有効になり、サーバー起動時に自動的に開始されるようにする必要があります。


sudo systemctl enable --now cockpit.socket

--nowオプションにより、すぐにサービスが開始され、個別のsystemctl startコマンドを実行する手間が省けます。

ステップ3:ファイアウォールでポートを開放

Cockpitはポート9090を使用します。もしCentOS Stream 9でファイアウォールが実行されている場合(ほとんどの場合そうです!)、外部からアクセスできるようにこのポートを開放する必要があります。


sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload

cockpitサービスはfirewalldにすでに定義されており、非常に便利です。具体的なポート番号9090を覚える必要はありません。ファイアウォールをリロードすると、変更がすぐに有効になります。

ステップ4:Webインターフェースへのアクセス

これで、Webブラウザを開き、次のアドレスにアクセスできます。
https://<あなたのサーバーのIPアドレスまたはホスト名>:9090

ログイン画面が表示されます。Linuxサーバーのユーザーアカウントとパスワード(sudo権限を持つもの)を使用してログインしてください。これで、完全なサーバー管理インターフェースを手にしました!

詳細解説:Cockpitとは何か、そしてなぜ使うべきか?

Cockpitは、Red Hatが開発したWebベースのサーバー管理インターフェースです。その主な目的は、Linuxシステムの管理とリモート監視を簡素化することです。このインターフェースは、直感的で軽量、そしてリソース消費が少ないように設計されています。

「強力なCLIがあるのに、なぜCockpitが必要なのか?」と疑問に思うかもしれません。以前、私の会社にはCentOS 7で稼働するいくつかのサーバーがあり、AlmaLinuxへの移行が必要でした。その際、CLIのバージョンを頻繁に切り替えたり、各サーバー固有の設定を覚えたりすることは、本当に大きな課題でした。

Cockpitはその作業を大幅に簡素化してくれました。全体像の把握と直接的な操作機能を提供し、CentOS Stream 9、AlmaLinux、Fedora、さらにはUbuntuサーバーでさえ、たった一つのインターフェースから簡単に管理できるようになります。

Cockpitの主な機能

  • システム概要: CPU、RAM、ディスクI/O、ネットワークトラフィックをリアルタイムで直感的に確認できます。
  • サービス管理: systemdサービスを簡単に起動、停止、有効化/無効化できます。
  • ログ表示: コマンドを使用せずに、システムログ(journald)に素早くアクセスできます。
  • ストレージ管理: LVMの作成、管理、パーティショニング、ディスクの状態確認ができます。
  • ネットワーク設定: IPアドレス、DNS、Bond、Bridgeを便利に設定できます。
  • アカウント管理: ユーザーの追加、削除、パスワード変更を直感的に行えます。
  • 統合ターミナル: ブラウザ内で直接ターミナルにアクセスでき、複雑なコマンドを実行するのに非常に便利です。

Cockpitを使えば、基本的な管理タスクから高度なタスクまで、CLIの専門家でなくても実行できます。これは、ITを学び始めたばかりの人や、システム管理コマンドに気を取られずに開発作業に集中したい人にとって特に役立ちます。

応用編:Cockpitの秘められた力を引き出す

Cockpitは単一のサーバー管理にとどまりません。複数のサーバーを同時に管理したり、他のモダンなテクノロジーと統合したりできる、多くの高度な機能も備えています。

マルチサーバー管理(ダッシュボード)

私がCockpitで特に気に入っている点の一つは、単一のダッシュボードから複数のサーバーを管理できる機能です。この機能は、サーバークラスターを運用している場合や、多数の仮想マシンを監視する必要がある場合に非常に役立ちます。

  1. Cockpitがインストールされているサーバーにログインします。
  2. 左側のメニューでDashboardを選択します。
  3. (+) Add new hostをクリックし、追加したいサーバーのIPアドレスまたはホスト名を入力します。

サーバーを追加するには、新しいサーバーにもCockpitがインストールされ、ポート9090が開放されている必要があります。追加後、複数のブラウザタブや異なるSSHセッションを開くことなく、サーバー間を簡単に切り替えて管理できます。

コンテナ管理(Podman)

CentOS Stream 9(およびRHELエコシステム)では、Dockerの代わりにPodmanの使用が推奨されています。Cockpitには、Podmanコンテナを直感的に管理できる統合モジュールが用意されています。

  • 実行中、停止中、または新規作成されたコンテナのリストを表示します。
  • コンテナのログを簡単に表示します。
  • インターフェースから直接、コンテナ内部のターミナルにアクセスします。

cockpit-podmanモジュールをインストールするだけです。


sudo dnf install cockpit-podman -y

その後、CockpitのページをF5で更新すると、「Podman Containers」の項目がすぐに表示されます。

リアルタイム性能監視

Cockpitの「Overview」セクションでは、CPU、RAM、ディスクI/O、ネットワークに関する非常に詳細な性能監視グラフが提供されます。個人的には、サーバーの動作が遅い兆候があるときに、すぐに状況を確認するためにこれらを頻繁に利用しています。これらのグラフはリアルタイムで更新され、問題を迅速に発見するのに役立ちます。

私の経験に基づく実践的なヒント

1. 常にセキュリティを最優先する

  • HTTPSを使用: CockpitはデフォルトでHTTPSを使用します。SSL証明書が有効であることを確認してください。または少なくとも、不必要なセキュリティリスクを避けるために、自己署名証明書(self-signed certificate)に関する警告を十分に理解しておく必要があります。
  • 強力なパスワード: サーバーのユーザーアカウントには、常に複雑で一意のパスワードを使用してください。
  • アクセス制限: 可能であれば、firewalldをより詳細に設定することで、信頼できるIPアドレスからのみポート9090へのアクセスを許可してください。

2. CockpitとCLI、使い分けのタイミングは?

Cockpitは次のタスクに非常に優れています。

  • システムの状態を迅速に監視する。
  • 基本的なサービスを管理する。
  • ログを確認する。
  • 簡単なネットワーク設定の変更を実行する。

しかし、自動化タスク、複雑な設定、または高い精度と詳細な制御が必要な場合は、依然としてCLIが最善の選択肢です。私は通常、Cockpitでサーバーの状態を「ざっと確認」し、より詳細な「手術」が必要な場合はCLIに切り替えます。

3. FreeIPA/SSOとの統合

FreeIPAやその他のシングルサインオン(SSO)ソリューションを使用する大規模なエンタープライズ環境で作業している場合、Cockpitは簡単に統合できます。これにより、ユーザーと権限の管理がより効率的になり、許可されたユーザーのみがサーバーにアクセスできるようになります。

4. 拡張モジュールを探求する

Cockpitコミュニティは非常に活発で、多くの便利な拡張モジュール(アドオン)を提供しています。Nagios、45Drives Ceph Installerなどのモジュールや、その他の多くの機能を見つけることができます。ニーズに合ったモジュールを探してインストールし、管理エクスペリエンスを最適化してください。

このガイドを参考に、CentOS Stream 9をCockpitで自信を持って効率的に管理できるようになることを願っています。あなたのサーバー管理が成功することを祈っています!

Share: