Skip to content

socket-manager/launcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SOCKET-MANAGER Launcher (GUI & CLI ランチャー)

SOCKET-MANAGER Framework をベースに構築された、クロスプラットフォーム対応のサービス管理ランチャーです。GUIモードとCLIモードの両方に対応し、柔軟な運用と高い可視性を提供します。

GUIモードではWebSocketサーバーを内蔵しており、ブラウザから直接接続可能。CLIモードでは軽量なランタイムライブラリを用いて、スクリプトや自動化にも適応します。


【 設計方針 】

  • GUIモードとCLIモードの両対応
    利用シーンに応じて切り替え可能。GUIはブラウザベース、CLIはコマンドライン操作に最適化

  • SOCKET-MANAGER Framework による実装
    以下ライブラリの融合的な実装。
    CLIモード:常駐型アプリ開発用の RuntimeManager ライブラリ
    GUIモード:ネットワークサーバー開発用の SocketManager ライブラリ

  • SOCKET-MANAGER Framework推奨構成への親和性
    プロセスの絶対数によるマルチサーバー管理に最適化

  • 軽量設計
    最小限の依存関係でランチャー自身が負荷を及ぼさないよう配慮

  • CPUリソースの明示的な割り当て機能
    論理CPUへの配置指定とプロセス状態の可視化
    CPUの割り当てを適切に行う事によってサービス間の競合を抑制

  • ログ収集と運用透明性の両立
    アクション単位での追跡・監視・記録機能を実装

  • サービス種別の柔軟な対応
    コマンドライン起動型であれば Framework 製以外のサービスにも対応可能

  • グループ単位でのサービス管理
    任意のサービス群に対して一括操作・監視が可能な柔軟なグルーピング機能を搭載

  • クロスプラットフォーム対応
    Windows/Linux環境で共通の操作性と機能性を提供します。特にWindows環境ではWSLなどの仮想層に依存せず、ネイティブAPIを用いてCPU/メモリ/ディスクなどのリソースを直接管理・監視しています。これにより、USB接続のリムーバブルディスクの抜き差しなどにもリアルタイムで対応可能です。


【 GUI モード 】

< 画面 イメージ >

GUI モード画面

< 特 徴 >

  • WebSocketサーバー内蔵
    Webサーバーや中継サーバーが不要で、ブラウザから直接ランチャーに接続可能

  • スケールアウト対応
    複数の物理サーバーへ同時接続し、統合管理が可能

  • 簡易サーバー監視機能
    CPU・メモリ・ディスクの使用率をグラフで可視化
    warn / alert / critical の3段階閾値で色分け・メール通知に対応
    閾値やメール通知先は各リソースごとに設定ファイルで指定可能

  • サービス管理機能
    単体 / 全体 / グループ単位でのボタンによる起動・停止制御
    サービス単位で CPU / メモリ などのリソース使用率のリアルタイムな可視化
    サービス制御ログの一覧表示
    ブラウザ上でのサービス設定編集(追加・編集・削除)
    編集内容の保存・JSON形式でのダウンロード

  • 設定ファイルのロード機能
    編集前の状態に戻したい場合や、バックアップファイルの適用が可能

  • 論理CPUの割り当て
    論理CPU単位の稼働率グラフを見ながら負荷状況に応じた割り当てが可能

  • カスタムモニタリング機能
    サービス側から任意のモニタリングデータをUDPで送信することで、GUIランチャー上にカスタムパーツとしてリアルタイム表示可能
    ユーザー数や接続状況など、運用に合わせた独自指標を柔軟に可視化できます

  • チャット機能
    管理者間のコミュニケーションに対応。通常メッセージとプライベートメッセージをサポート

  • レスポンシブデザイン
    PC・タブレット・スマートフォンなど、画面サイズに応じて最適化
    モバイル端末からの接続ではWebサーバーが必要になります(静的HTMLが解釈できないため)

  • ログ追跡
    ログレベル/アクション/オペレーター単位での複合フィルタリング機能


【 CLI モード 】

< 画面 イメージ >

CLI モード画面

< 特 徴 >

  • サービス管理機能
    単体 / 全体 / グループ単位での起動・停止制御
    サービス単位で status アクションによる CPU / メモリ などのリソース使用率の可視化
    設定ファイルによるサービス設定編集(追加・編集・削除)

  • 論理CPUの割り当て
    cpuinfo アクションで表示される論理CPU番号を使って設定ファイルにて割り当てが可能

  • 自動再起動
    サービス停止を検知した際に自動起動。設定ファイルでON/OFF制御可能

  • ログ保存
    ログレベル/アクション単位などで追跡可能。設定ファイルで daily / monthly の保存形式を選択可能


【 基本アクションの種類 】

以下のアクションはサービス設定ファイル(JSON形式)と連携して動作します。
GUIモード時は start/stop 系アクションのボタンを使って操作します。

  • start
    "サービス名"、あるいは"group:サービス名"を指定して起動

  • startall
    サービス設定ファイルで定義済みの全サービスを起動

  • stop
    "サービス名"、あるいは"group:サービス名"を指定して停止

  • stopall
    サービス設定ファイルで定義済みの全サービスを停止

  • status
    "サービス名"、あるいは"group:サービス名"を指定して状態表示

  • statusall
    サービス設定ファイルで定義済みの全サービスを状態表示

  • cpuinfo
    稼働中物理サーバーのCPU構成を表示(論理CPU割当用の参照情報)

  • shutdown
    GUI モードや CLI モードに関係なく、foreground か background で動作中のランチャーを終了する
    動作中のサービスには影響を及ぼしません

※ group の設定はサービス設定ファイル内で行います。GUIモード時は画面で設定できます。


【 インストールと起動方法 】

以下の composer コマンドでインストールできます。

> composer create-project socket-manager/launcher <インストール先のディレクトリ名>

インストールが終わったらプロジェクトのルートディレクトリで php worker app:cli コマンドを入力し、以下のように Usage が表示されれば正常にインストールされています。

> php worker app:cli

以下のいずれかを指定して下さい。
start <サービス名> or <group:グループ名>
startall
stop <サービス名> or <group:グループ名>
stopall
status <サービス名> or <group:グループ名>
statusall
cpuinfo
shutdown

GUI モードで確認する時は以下のコマンドを入力してください。

> php worker app:gui

コマンド実行後 app/client/launcher.html のファイルをブラウザで開き、ランチャーを起動している「ホスト名(デフォルトはlocalhost)」や「ポート番号(デフォルトは5000ポート)」と「オペレータ名」を入力してから「接続」ボタンを押すと画面が表示されます。


※初期状態のサービス設定ファイル setting/service.json.sample にはサンプルが定義されています。内容を定義後はファイル名をデフォルトの service.json にしてからお使い下さい。ファイル名は設定ファイルで変更可能です。


【 Contact Us 】

バグ報告やご要望などはこちらから受け付けております。


【 License 】

MIT, see LICENSE file.