シンプル、軽量、多機能なサーバー監視ツール「beszel」入門
henrygd/beszelは、サーバー監視を手軽に行うための軽量なツールです。牛丼の「うまい、はやい、やすい」のように、「シンプル、軽量、多機能」の三拍子が揃った監視ツールと言えます。特に、個人のラボ環境や小規模なプロジェクトで、手軽にサーバーの状態を把握したい場合に役立ちます。
リアルタイムな状況把握
サーバーのリソース利用状況(CPU、メモリ、ディスクなど)をリアルタイムに確認できます。
トラブルシューティングの効率化
サーバーの負荷が急増した際、過去の履歴データと照らし合わせることで、何が原因で問題が発生したのかを素早く特定できます。
リソース最適化
どのサービスが多くのリソースを消費しているか視覚的に把握できるため、リソースの割り当てを見直す際の参考になります。
Dockerコンテナの監視
Dockerコンテナのリソース使用状況も個別に監視できるため、コンテナベースのアプリケーションを運用している場合に非常に便利です。
シンプルな構成
複雑な設定が不要で、すぐに使い始めることができます。
beszelはDockerイメージとして提供されているため、DockerとDocker Composeを使用するのが最も簡単な導入方法です。
Docker Composeファイルの作成
以下の内容でdocker-compose.ymlファイルを作成します。
version: '3.8'
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
ports:
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock # Docker統計情報を取得するために必要
restart: unless-stopped
起動
作成したディレクトリで以下のコマンドを実行します。
docker-compose up -d
これで、http://localhost:8000にアクセスするとbeszelのダッシュボードが表示されます。
beszelは単体で動作するため、特別なアプリケーションコードは必要ありません。ここでは、より実践的な使い方として、監視対象のサーバーでbeszelを起動し、複数のコンテナを監視する例を挙げます。
シナリオ
WebサーバーとデータベースがDockerコンテナで動いている環境
docker-compose.ymlにサービスを追加
既存のdocker-compose.ymlファイルに、監視したいサービスを追加します。
version: '3.8'
services:
beszel:
image: henrygd/beszel:latest
container_name: beszel
ports:
- "8000:8000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
web_server:
image: nginx:latest
container_name: my_web_server
ports:
- "80:80"
restart: unless-stopped
database:
image: postgres:latest
container_name: my_database
environment:
- POSTGRES_PASSWORD=mysecretpassword
restart: unless-stopped
起動
以下のコマンドで起動します。
docker-compose up -d