0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一人アドカレ 12日目: Beszelの紹介

Posted at

イントロ

セルフホストといえば、マシンの監視って必要じゃないですか?!
とはいえ、有名どころ(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コンテナで建てることも可能です

手順

  1. compose.ymlを作成します

    domain.tldは自分の環境に合わせて変更してください。https://beszel.domain.tldでアクセスできるようになります。

    compose.yml
    services:
      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
    
  2. Beszelエージェントのバイナリをダウンロードして実行します

    curl -sL https://get.beszel.dev -o /tmp/install-agent.sh && chmod +x /tmp/install-agent.sh && /tmp/install-agent.sh
    
  3. Beszelのハブを起動して、UIにアクセス

    docker compose up -d
    

    https://beszel.domain.tldにアクセスすると、Beszelの画面が表示されます。

認証の補足

バックエンドにPocketBaseを使用しており、初回のユーザー登録後、OIDC認証を有効化することも可能です。

Beszelの感想

  • 良いところ
    • シンプルで見やすいUI
    • Dockerコンテナのリソース使用率が見れる
    • 通知方法が豊富(Shoutrrrベース)
    • OIDC認証対応
    • エージェントとハブの構成が柔軟(しかも軽い)
  • イマイチなところ
    • 特になし
      • 最近までUIに少し不満があったのですが修正されました

以上、Beszelの紹介でした。

最近Systemdサービスの監視、S.M.A.R.T監視も対応しており、まだまだ発展途上かもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?