イントロ
セルフホストといえば、マシンの監視って必要じゃないですか?!
とはいえ、有名どころ(DatadogとかPrometheusとか)は設定が複雑だったり、色々ハードルが高い・・・
ということで今回はBeszelというシンプルな監視ツールを紹介します!
シンプルなモニタリングツールです。特にDockerに特化していて、各コンテナのリソース使用率(CPU、メモリ、ネットワーク、ディスク)を表示できます。
もちろん、CPU監視からマシンが停止していないかまで監視できます。
通知ももちろん対応しており、Shoutrrrベースなので、Slackやメール、Discordなど様々な通知方法に対応しています。
当然ながら監視、という意味ではセルフホスト側にはエージェント、クラウドVM上でハブを立てる、といった運用でなければアクティブかの監視はできません。もしVMとかを持っていないのであれば、PikaPodsのようなサービスと組み合わせると良いかもしれません。
Beszelの使い方
環境情報
$ docker version
Client: Docker Engine - Community
Version: 29.1.3
API version: 1.52
Go version: go1.25.5
Git commit: f52814d
Built: Fri Dec 12 14:49:51 2025
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.1.3
API version: 1.52 (minimum version 1.44)
Go version: go1.25.5
Git commit: fbf3ed2
Built: Fri Dec 12 14:49:51 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.2.0
GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc:
Version: 1.3.4
GitCommit: v1.3.4-0-gd6d73eb8
docker-init:
Version: 0.19.0
GitCommit: de40ad0
前提条件
- Docker がインストールされていること
- Traefik が導入されていること(リバースプロキシサーバー)
- 今回はVM側にハブとバイナリによるエージェントのステップです
- 私自身の環境ではセルフホスト側にDockerコンテナのエージェントも建てています
- ハブとエージェント、どちらもDockerコンテナで建てることも可能です
手順
-
compose.ymlを作成しますdomain.tldは自分の環境に合わせて変更してください。https://beszel.domain.tldでアクセスできるようになります。compose.ymlservices: beszel: image: henrygd/beszel:latest container_name: beszel restart: unless-stopped expose: - 8090 volumes: - ./data:/beszel_data environment: APP_URL: https://beszel.domain.tld USER_CREATION: true # 初回はTrueでアカウント作成を実施 DISABLE_PASSWORD_AUTH: false # OIDCを有効化したらパスワードは無効化していい labels: traefik.enable: true traefik.http.routers.beszel.rule: Host(`beszel.domain.tld`) traefik.http.services.beszel.loadbalancer.server.port: 8090 traefik.http.routers.beszel.entrypoints: websecure traefik.http.routers.beszel.tls: true traefik.http.routers.beszel.tls.certResolver: cloudflare traefik.docker.network: traefik-network networks: - traefik-network networks: traefik-network: external: true -
Beszelエージェントのバイナリをダウンロードして実行します
curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh -
Beszelのハブを起動して、UIにアクセス
docker compose up -dhttps://beszel.domain.tldにアクセスすると、Beszelの画面が表示されます。
認証の補足
バックエンドにPocketBaseを使用しており、初回のユーザー登録後、OIDC認証を有効化することも可能です。
Beszelの感想
- 良いところ
- シンプルで見やすいUI
- Dockerコンテナのリソース使用率が見れる
- 通知方法が豊富(Shoutrrrベース)
- OIDC認証対応
- エージェントとハブの構成が柔軟(しかも軽い)
- イマイチなところ
- 特になし
- 最近までUIに少し不満があったのですが修正されました
- 特になし
以上、Beszelの紹介でした。
最近Systemdサービスの監視、S.M.A.R.T監視も対応しており、まだまだ発展途上かもしれません。