An open API service indexing awesome lists of open source software.

https://github.com/socket-manager/launcher

SOCKET-MANAGER Launcher: サービス管理用 GUI & CLI ランチャー
https://github.com/socket-manager/launcher

cli cuei-o devops framework gui launcher monitoring php project-repository service socket-manager

Last synced: about 2 months ago
JSON representation

SOCKET-MANAGER Launcher: サービス管理用 GUI & CLI ランチャー

Awesome Lists containing this project

README

          

# 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 モード画面](./img/GUI_main.png "GUI モード画面")

### < 特 徴 >

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

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

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

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

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

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

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

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

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

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

---

## 【 CLI モード 】

### < 画面 イメージ >

![CLI モード画面](./img/CLI_main.png "CLI モード画面")

### < 特 徴 >

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

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

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

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

---

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

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

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

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

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

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

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

- restartall
サービス設定ファイルで定義済みの全サービスを再起動

- 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 が表示されれば正常にインストールされています。

```CLI モードでのUsage
> php worker app:cli

以下のいずれかを指定して下さい。
start <サービス名> or
startall
stop <サービス名> or
stopall
restart <サービス名> or
restartall
status <サービス名> or
statusall
cpuinfo
shutdown
```


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

```GUI モードでの確認
> php worker app:gui
```

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


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

---

## 【 ドキュメント 】
GUI や CLI モードでの詳しい使い方や、設定ファイルのメンテナンス方法などの解説は以下のドキュメントを参照してください
https://socket-manager.github.io/document/launcher/

---

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

---

## 【 License 】
MIT, see LICENSE file.