はじめに
SOCKET-MANAGER Frameworkをベースに構築したクロスプラットフォーム対応のサービス管理ランチャーです。GUIモードとCLIモードの両方に対応し、柔軟な運用と高い可視性を提供します。
- GUIモード:WebSocketサーバー内蔵、ブラウザから直接接続可能
- CLIモード:軽量ランタイムでスクリプトや自動化に最適
- クロスプラットフォーム対応:Windows/Linuxで共通の操作性
- ネイティブリソース監視:仮想層に依存せず、物理リソースを直接把握
設計方針と特徴(抜粋)
以下は本ランチャーの設計思想と主要機能の一部です。
モード切替対応
- GUI:ブラウザベースで直感的な操作
- CLI:GUI環境がない場面でも軽快に動作
CPUリソースの最適化
- 論理CPU単位での割り当て
- サービス間の競合を抑制
柔軟なサービス管理
- グループ単位での一括操作
- Framework製以外のサービスにも対応
リソース監視と可視化
- CPU/メモリ/ディスク使用率をリアルタイム表示
- 閾値設定とメール通知機能
GUI上での設定ファイル編集
- サービス定義の追加・編集・削除
- JSON形式での保存・ダウンロード
GUIモードの画面イメージ
GUIモードでは、サービスの起動・停止、リソース監視、設定編集などをブラウザ上で一括管理できます。
WebSocketサーバーを内蔵しているため、外部Webサーバー不要で直接接続可能です。
CLIモードの画面イメージ
CLIモードでは、コマンドラインからサービスの起動・停止、状態確認、CPU割り当てなどを制御できます。
スクリプトやcronとの連携にも適しており、GUI環境がない場面でも柔軟に運用可能です。
インストールと起動方法
# インストール
composer create-project socket-manager/launcher <任意のディレクトリ>
# CLIモード起動
php worker app:cli
# GUIモード起動
php worker app:gui
GUIモードでは app/client/launcher.html
をブラウザで開き、ホスト名・ポート番号・オペレータ名を入力して接続します。
おわりに
複数の自作サーバーを効率的に運用・監視するため、プロセス単位でのスケール制御や論理CPUへの明示的な割り当てを可能にし、CPUリソースを最適化できるように設計しました。
また、SOCKET-MANAGER FrameworkのIPCモデルをベースとすることで、WebSocketサーバーとランチャーを統合し、ブラウザから直接操作できるようにしています。これにより、従来面倒だった設定ファイルの定義をGUI上で編集・保存・リロード・ダウンロードといった操作が可能となりました。
リソース監視の面では仮想層に依存しない設計を採用し、ネイティブAPIを用いてCPU、メモリ、ディスクなどの物理リソースを直接監視できるようにしています。これにより、Dockerなどの抽象化された環境では得られない、実機レベルでの正確なリソース把握を重視しています。