サーバーを運用する上で、現状の負荷状態を把握することは非常に重要です。監視は一般的に、専用の監視システムを利用して行います。OSSであれば、古くはMuninやZabbix、Nagiosなどが有名どころでした。最近ではクラウドとの相性のよい、Prometheusが支配的でしょう。またDatadogやNewRelicといった、自前で監視サーバーをホストする必要のない監視SaaSもよく使われています。
本番運用しているサービスであれば、こうした監視システムをきっちりと構築するのが当然です。しかしそこまで大仰なシステムを使わず、
Netdataの現状
Netdataは、手軽に使える監視システムのひとつです。Ubuntu 25.
$ sudo apt install -U -y netdata
導入のハードルが低く、非常にお手軽なNetdataでしたが、Ubuntu 25.
オープンソースの軽量監視ツールを求めるユーザーにとっては、代替ツールの検討が必要です。そこで今回は、Netdataからの移行先として注目されはじめているBeszelを紹介します。
Beszelの特徴
Beszelは2024年に登場した、超軽量なオープンソースの監視システムです。使いやすいWeb UIを備えており、設定もシンプルですぐに利用を始められます。また自動バックアップ、マルチユーザー認証、OAuth認証、APIアクセスといった機能も、一通り備えています。そして今時の監視システムらしく、Dockerのコンテナも監視できます。
Beszelの開発は非常に活発で、ほぼ毎週のようにリリースが行われています。
Beszelは、登録されたシステムの情報表示と管理のためのWeb UIを提供する
ハブとエージェント間の通信は、WebSocketもしくはSSHによって行われます。ハブとエージェントは、どちらもGo言語で書かれたシングルバイナリとして実装されています。どちらもメモリフットプリントが非常に軽量で、筆者が試しに立ち上げた環境では、ハブの使用メモリが11MB、エージェントの使用メモリが4MBでした。
Beszelのインストール
それではUbuntu 24.
まず以下のコマンドで、DockerとComposeをインストールしてください[1]。
$ sudo apt install -U -y docker.io docker-compose-v2
続いてbeszelを動かすディレクトリと、その中にDocker Compose用のYAMLを作成します。以下のコマンドを実行してください。ここではbeszelのバージョンとして、本記事執筆時点
$ mkdir ~/beszel && cd ~/beszel
$ cat > compose.yaml <<EOF
services:
beszel:
image: henrygd/beszel:0.16.1
container_name: beszel-server
restart: unless-stopped
ports:
- 8090:8090
volumes:
- ./beszel_data:/beszel_data
EOF
以下のコマンドでコンテナを起動します。
$ sudo docker compose up -d
これでBeszelのハブが起動しました。
管理画面へのアクセス
起動したハブにアクセスしてみましょう。Webブラウザから
アカウントの作成ができると、自動的にダッシュボードに遷移します。
ただし、まだハブしか起動しておらず、エージェントが登録されていないため、何も表示されません。続いてエージェントを起動しましょう。
エージェントの追加
Beszelにおけるエージェントの追加方法は、大きく2通りが存在します。ひとつはダッシュボードの右上にある
右上にある歯車アイコンをクリックして、設定画面を表示します。ここで左ペインから
続いてユニバーサルトークンの右側に表示されている
エージェント用のディレクトリを作成し、compose.
$ mkdir ~/beszel_agent && cd ~/beszel_agent $ cat > compose.yaml (ここに先ほどコピーしたYAMLをペーストしてから、Ctrl+Dを押す)
なおBeszelがデフォルトで用意するcompose.
services:
beszel-agent:
# ↓ここにタグを追加する
image: henrygd/beszel-agent:0.16.1
エージェント用のcompose.
$ sudo docker compose up -d
ユニバーサルトークンは、使い回すことができます。そのためbeszel_
ただしユニバーサルトークンの有効期限は、有効化から1時間です。またハブを再起動すると、時間内であっても無効となります。その場合は再度設定画面から、新しいトークンを有効化してください。
Beszelで監視できる項目
Beszelのダッシュボードから、監視対象のシステム名をクリックしてください。以下のようなグラフが表示されます。
デフォルトでCPU、メモリ、ディスク、ネットワーク、ロードアベレージ等が表示されます。Netdataと比較すると項目は少なく、非常にシンプルですが、その反面わかりやすいとも言えるでしょう。開発環境などであれば、CPUやネットワークの負荷がざっくり見られれば十分なことも多く、あまり細かいメトリクスが大量に表示されても、かえって目ざわりということもあります。
監視項目の追加もできます。ファイルサーバーであれば、データ置き場にしている別のストレージを監視したいこともあるでしょう。具体的な例として、/dev/
(...略...)
volumes:
(...略...)
- /mnt/share:/extra-filesystems/sdb1:ro
エージェントを再起動すると、以下のようにsdb1の監視が開始されます。
Dockerコンテナの監視に対応しているのも、今風です。今回構築したサーバーでは、ハブであるbeszel-serverコンテナと、自分自身を監視するbeszel-agentコンテナのふたつが起動しているため、以下のように表示されます。
コンテナ名をクリックすると、コンテナのログと詳細情報が表示されます。昨今のアプリはコンテナを使って開発することも多いため、監視システムから手軽にコンテナの中を覗けるのはとても便利です。
Dockerではなく、Podmanも監視可能です。その場合はドキュメントを参考に、Podman APIを有効にしてください。対応したエージェントを使えば、GPUの監視も可能です。詳しくはドキュメントを参照してください。また本記事では触れませんが、当然アラート機能も備えています。
Beszelは個人の開発マシン、自宅サーバー、小規模な社内環境などに向いた、非常にシンプルな監視ツールです。Docker Composeだけで動かせるため、導入のハードルも非常に低く、また使い終わったらすぐに捨てられるため、一時的な利用にも向いています。開発環境にWebベースの負荷監視を一時的に入れたい、というような用途にぴったりでしょう。
現在BeszelはDebian側でITPが進んでいる状態です。将来的にUbuntuのリポジトリに入れば、Netdata同様、APTでインストールするだけで自分自身を監視できる状態になるかもしれません。より手軽に使えるようになるため、今後の動向に注目ですね。