Ubuntu ServerにCockpitとcockpit-sensorsを導入してブラウザからCPU温度を監視する
以前運用していたPT3録画サーバーにおいて、冷却ファンの突然の故障によりCPUがオーバーヒートを起こし、システムが熱暴走で停止するトラブルを経験しました。
小型PCや余剰PCを自宅サーバーとして常時稼働させる場合、筐体内の熱がこもりやすく、ファンの劣化やエアフローの詰まりが致命的なハードウェア障害に直結します。障害が発生してから対処するのではなく、熱の異常上昇を日常的に察知できる環境を整えておくことの重要性を痛感しました。
そこで今回は、Ubuntu Server 26.04をセットアップした環境に対し、Webコンソールツールである「Cockpit」を導入し、遠隔からブラウザ経由でハードウェアの状態や温度を手軽に把握できる監視体制を構築することにしました。
ブラウザを開くだけでCPU温度とハードウェア状態を把握できる環境の構築
自宅サーバーのハードウェア監視における目的と目標は以下の通りです。
- 目的: 障害の兆候を早期に察知するため、ターミナルでのCUI操作を省き、遠隔からブラウザ経由でサーバーのリソース状態とハードウェア健全性を一元管理・監視できるようにする。
- 目標: SSHで都度ログインしてコマンドを実行する手間を一切なくし、WebブラウザでCockpitを開くだけでCPU各コアの温度をリアルタイムに把握できる状態にする。
Cockpit標準機能の限界とサードパーティ製プラグイン導入の壁
Linuxサーバーをブラウザから手軽に管理できるツールとしてCockpitは非常に軽量で扱いやすい基盤です。しかし、標準状態のCockpitではCPUやメモリの使用率、ディスクI/O、ネットワークトラフィックなどは可視化できるものの、ハードウェアの「温度」や「ファン回転数」を閲覧する機能が備わっていません。
さらに、Ubuntu公式のaptリポジトリを検索しても、温度監視用のパッケージ(cockpit-sensors)は公式には収録されていません。
そのため、OS側でマザーボードやCPUの温度を取得するlm-sensorsを導入した上で、GitHub上でコミュニティにより開発・公開されているサードパーティ製プラグインを手動でダウンロードし、Cockpitのシステムディレクトリへ正しく展開・配置する必要があります。
Cockpit本体とcockpit-sensorsのセットアップ手順
Ubuntu Server 26.04のインストールが完了している状態から、Cockpit本体のセットアップおよび温度監視プラグインの配置を進めます。
Cockpit本体のインストールと有効化
公式リポジトリからCockpit本体を導入し、アクセス時のみプロセスが起動するソケット待受を有効化します。
sudo apt update sudo apt install cockpit -y sudo systemctl enable --now cockpit.socket
UFWなどのファイアウォールを有効にしている場合は、Webコンソールの待受ポート(9090)を開放しておきます。
sudo ufw allow 9090/tcp
lm-sensors の導入とセンサーの自動認識
ハードウェア層の温度データを読み取るため、lm-sensorsをインストールしてハードウェアセンサーを自動スキャンします。
sudo apt install lm-sensors -y sudo sensors-detect --auto
スキャン完了後、ターミナル上で温度情報が正常に取得できているか確認します。
sensors
CPUコアごとの温度(Core 0: +50.0°Cなど)が出力されていれば、OS側の準備は完了です。
cockpit-sensors のダウンロードと手動配置
GitHubのリポジトリ(ocristopfer/cockpit-sensors)からリリースアーカイブを取得し、Cockpitのプラグイン格納先である/usr/share/cockpit/sensorsへ配置します。
リリースアーカイブの取得 wget https://github.com/ocristopfer/cockpit-sensors/releases/download/1.1/cockpit-sensors.tar.xz アーカイブからdistディレクトリを展開 tar -xf cockpit-sensors.tar.xz cockpit-sensors/dist プラグインディレクトリとして配置 sudo mv cockpit-sensors/dist /usr/share/cockpit/sensors アーカイブの整理 mv cockpit-sensors.tar.xz cockpit-sensors/
配置後、ディレクトリ内のファイルがWebサービス側から正しく読み取れる状態になっていることを確認します。
Web UIでの温度可視化と運用で見えてきたスクロール表示の課題
ブラウザから以下のURLへアクセスし、Ubuntuの通常ユーザーでログインします。
https://<サーバーのIPアドレス>:9090
左サイドメニューの「ツール」配下に新しく「Sensors」という項目が追加されます。このタブを開くと、lm-sensors経由で取得されたCPU温度がカード形式で表示され、Core 0からCore 3までの各コア温度がリアルタイムに監視できる状態になりました。
SSHでログインしてsensorsコマンドを打つことなく、ブラウザを開くだけでCPU温度の推移が把握できるようになり、目標としていた遠隔監視環境が実現しました。
一方で、センサー数の多い別のマシン(PCHやバッテリー、複数インターフェースを持つ構成)で同プラグインを動かしたところ、新たな課題が浮き彫りになりました。検出されたカードが縦に並んだ際、Cockpitの画面枠内で縦スクロールバーが表示されず、下部に配置されたセンサー情報が見切れてしまう現象が発生しました。
プラグイン側のCSSやコンテナのスタイル指定(overflow設定など)に起因する表示上の不具合と考えられるため、このスクロール問題の解消コード修正については、次回の検証記事で詳しく取り上げる予定です。
まとめ
過去のファン故障によるCPU熱暴走の教訓から、Ubuntu Server 26.04環境へCockpitおよびサードパーティ製プラグインのcockpit-sensorsを導入しました。公式aptに存在しないプラグインを手動配置することで、ブラウザからリアルタイムにCPU各コアの温度を遠隔監視できる環境が整いました。一部の多機能マシンにおいて画面が縦スクロールできず情報が見切れる課題が判明したため、プラグインの表示調整を今後の改善課題とします。

