Cockpit 〜 今月の気になるオープンソース情報
OSS研究室 森 彰吾
先日、Red Hat Enterprise Linux 8がリリースされました。
多くの機能の変更がありましたが、その中でも多くの機能が追加され重要なコンポーネントとなったCockpitを紹介します。
Cockpitとは何か
Cockpitは、Linuxシステムの管理用WEBインタフェースです。わかりやすくいえば、システムの状態の確認やアカウント作成などの作業を、WEBインタフェースからできるようにしたソフトウェアです。
何故Cockpitが必要なのか
Linuxといえばコマンドラインでの操作が当たり前な風潮があります。しかし、コマンドラインは敷居が高いと感じる人がいるのも事実です。
人によっては、LinuxサーバにGUIをインストールして、デスクトップUIから管理を行っています。しかし、デスクトップUIは次のような不便さや問題があります。
- 利用するためにコンソール、あるいはリモートデスクトップで接続が必要になる
- GUIを利用するために大量のソフトウェアをインストールする必要がある
- システム管理とは無関係のソフトウェアまでインストールされてしまう
管理するためにいちいちコンソールで操作するのは手間です。ただリモートデスクトップを利用しようとすると、無駄なアクセス許可設定が必要になります。環境によっては、アクセス制御ポリシーで許可ができないということも有りえます。
GUIをインストールするとソフトウェアが増えてしまうということは、セキュリティパッチを適用する回数が増えるということも意味しています。管理用サービスのアップデートのためにシステムの停止が必要、という本末転倒なことも起こりえます。
Cockpitを利用すると、このような問題点を解消しつつ、Linuxシステムを楽に管理できるようになります。
Cockpitの注目すべき機能
Cockpitは非常に多彩な機能を持つソフトウェアです。その中でも注目すべき機能をピックアップしてお伝えします。
負荷状態の視覚化
Cockpitを導入すると、システムのCPU使用率やメモリ使用率などをグラフで確認できます。コマンドラインでも負荷の情報は確認できますが、数値だけでは値の増減の傾向は読み取れません。
Cockpitのインタフェースにログインするだけで、視覚的に情報を確認できるため、すぐに状態を確認したいときに非常に便利です。
システムサービスの管理
現在多くのLinuxディストリビューションではSystemdが採用されています。ただSystemdのユニットは、非常にわかりにくいです。単純に数が多いだけでなく、サービス・ターゲット・ソケットなど種類が多く、コマンドラインでユニットの関係を紐解いていくのは、一苦労です。
Cockpitでは、Systemdのユニットをうまく管理するために、次のような機能が用意されています。
- ユニットの起動・停止・再起動・自動起動設定
- ユニットの種類ごとの一覧表示
- ユニット名での検索
- ユニットの依存関係情報の表示
- ユニットごとのログの表示
この機能を利用すると、systemctlコマンドを何回も実行しなくて済むので非常に助かります。
ネットワーク・ファイアウォールの設定
Cockpitからネットワークの設定を行うことができます。単純なIPアドレスの設定だけではなく、bondインタフェースやteamインタフェース・ブリッジ・VLANの設定など幅広くサポートしています。またRHEL8から、CockpitでFirewalldのサービス許可設定もできるようになっています。
ストレージの設定
システムを運用していると稀に発生するのが、ストレージの拡張などの作業です。稀にしか発生しないので、手順を忘れてしまったり、手順が不安になることがあります。
Cockpitでは、次のような機能が揃っています。
- LVMボリューム/XFSの拡張
- ファイルシステムの作成
- マウント/アンマウント
- ソフトウェアRAIDの設定
- ISCSIターゲット/イニシエータの設定
比較的複雑なことまでできるようになっているため、難しいコマンドを覚えていなくても、容易に設定することができます。また危険な操作には警告を出してくれるので、安心して作業ができます。
ソフトウェア/サブスクリプションの管理
Cockpitからソフトウェアのアップデートが可能です。ただアップデートするだけではなく、アップデート対象のソフトウェアの一覧と、アップデートの重要度や内容まで確認することができます。
またRHEL8の場合、サブスクリプションの登録・状態の管理もCockpitからできます。コマンドラインでのサブスクリプションの登録は面倒ですが、Cockpitを利用するとID/パスワード等の入力で、簡単に登録ができます。またRed Hatのカスタマーポータルにログインせず、サブスクリプションの有効期間を確認できるのも嬉しい機能です。
操作ログの取得
監査目的で、コマンドラインでの操作を記録したいことがあります。このような場合、従来のLinuxでは、scriptというコマンドを使って記録するのが一般的でした。
Cockpitでは、非常に高機能な操作ログの取得機能が実装されています。
次のようなことができるようになっています。
- 記録したログを動画プレイヤーのようなインタフェースで閲覧できる(youtubeのようなイメージ)
- テキストでログを検索して、該当する操作の時間帯を絞りこむことができる
- 記録する対象をユーザ/グループ等絞ることができる(全ユーザも可能)
scriptコマンドで取得したログは、端末の制御文字など単純なテキストではないデータも含まれているため、後から調べるのに非常に苦労します。対してCockpitは、動画を見ているような間隔で操作を追っていくことができますし、関連する部分を検索することができるため、とても便利です。
その他の機能
今回はいくつかの機能に絞って紹介しましたが、Cockpitには他にも次のような機能があります。
- 複数のサーバの管理
- アカウントの管理
- システムログ(journal)の閲覧
- sosレポートの取得
- SELinuxアラートの情報確認
- カーネルダンプの設定
- WEBインタフェース上でのコマンドライン操作(どうしても必要なときに)
- virt-mangerに代わる仮想マシン管理機能(現在のRHEL8のCockpitではまだ機能が不十分)
デージーネットのWEBサイトで公開している「Cockpit調査報告書」には、これらの機能の詳細についても記載しているので、興味のある方はダウンロードして頂ければ幸いです。
Cockpitの今後
RHEL8に導入されているCockpitは、メインストリームと比較すると若干古いバージョンです。そのため、いくつかの機能面で不足を感じることがあります。ただ逆に言えばメインストリームでは、機能的な改善が行われているため、それらの機能は、近い将来RHEL8にもバックポートされると考えられます。つまりCockpitはもっと便利になるということです。
デージーネットでは、Cockpitの機能追加に注目しつつ、コマンドラインでの操作が苦手というお客様の課題を解決できるよう、Cockpitの導入提案を行っていきます。
デージーネットからのお知らせ
9月にRHEL8新機能セミナーを開催いたします!
Red Hat Enterprise Linux 8の変更箇所や要点とRed Hat Enterprise Linux 8に関連するOSSについてご紹介いたします。お申し込みは、弊社ホームページ「セミナー申込フォーム」からお願いいたします。
https://www.designet.co.jp/seminar/
無料資料ダウンロードに【Cockpit調査報告書】を掲載しました。
Cockpitは、Linuxを管理するためのWEBインタフェースです。本書はLinuxの管理ソフトウェア「Cockpit」についての調査報告書です。
https://www.designet.co.jp/download/#operation
無料資料ダウンロードに【Keycloakサービス連携調査報告書】を掲載しました。
Keycloakを用いて、複数のアプリケーション・サービスのシングルサインオンを実現するための手順の調査報告書です。
https://www.designet.co.jp/download/#authentication
メールサーバの安全性を無料でチェックできるサイトを公開しています。
メールセキュリティへの関心が高まる中、メールセキュリティのチェック項目を整理して、誰でも簡単にチェックできるツールはありませんでした。本サイトでは、メールアドレスを入力するだけで、メールサーバのセキュリティを無料でチェックできます。