CLIツール
c0m4r/kula avatar
c0m4r/kula

KulaのリングバッファでLinuxホストを長短両方から見る

軽量で自己完結型の Linux サーバー監視ツール。 KULA 軽量で自己完結型の Linux サーバー監視ツール。** Web サイト |デモ | Docker Hub 依存関係ゼロ。

スター 1,319フォーク 66GoAGPL-3.0

ひと目でわかる

これは何?
依存関係なしの単一バイナリで、カーネル情報、コンテナ、DB、Webサーバーを収集するLinux監視ツール。
誰に向いている?
クラウドへ監視データを送りたくないLinux管理者が、単一ホストの状態をWebと端末で確認する用途に向きます。固定容量のリングバッファは古いデータを上書きするため、長期履歴や複数ホストの上限を暗黙に期待できません。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。最後のコミットは 1 日前です。
何の言語で書かれている?
主に Go です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

/procと/sysから読む単一バイナリ

KulaはGo製の軽量なLinuxサーバーモニタリングツールです。単一バイナリで、外部データベースや実行時依存関係を必要とせず、毎秒`/proc`と`/sys`から情報を収集します。同じバイナリがHTTP、WebSocket、Webダッシュボード、ターミナルTUIを提供します。

READMEは監視ホスト数の上限やスケーリング制限を示していません。単一ホストでCPU、メモリ、ディスク、ネットワークを読む試験から始め、複数プロセスやコンテナ統計を加えたときのKula自身の資源使用量を観察します。

15カテゴリの観測対象

収集対象にはCPU使用率とコア数、GPU負荷・電力・VRAM、ロードアベレージ、メモリとスワップ、インターフェース別ネットワーク、ディスクI/O、ファイルシステム、稼働時間、エントロピー、プロセス、温度、バッテリーがあります。Docker、podman、raw cgroupsのコンテナ統計も対象です。

PostgreSQL、MySQL/MariaDB、nginx、apache2のアプリケーション統計とカスタムメトリクスもREADMEにあります。NVIDIA GPUは追加設定が必要な場合があるため、GPUだけ未取得という結果をホスト全体の監視失敗と混同せず、wikiの設定と実機のデバイス公開を確認します。

1秒から5分へ集約する

Kulaは固定サイズのバイナリファイルを使うリングバッファへ書き込み、容量が満ちると古いエントリを上書きします。READMEの初期値は、生の1秒サンプルが250MB、1分集約が150MB、5分集約が50MBです。1分データは平均・最小・最大を持ち、長い期間は細部を失った集約で見る設計です。

起動時には最新サンプルキャッシュと保留中の集約バッファを復元します。`config.yaml`で容量を変える具体的な説明はREADMEにないため、設定を編集する前にバックアップを取り、再起動、容量超過、古いデータの上書きを実測します。

Web、TUI、ローカルAIを分ける

WebダッシュボードはChart.jsとSVGゲージを使い、WebSocketでライブ更新し、長い時間範囲では履歴APIへ切り替えます。ドラッグ選択ズーム、フォーカス、Y軸設定、デバイス選択、グリッド/リスト表示、アラート、ライト/ダークテーマ、Prometheus exporterがREADMEに記載されています。

TUIはCPU、メモリ、通信、ストレージ圧力、ホスト健全性、短期傾向を端末で見ます。任意のOllamaアシスタントはCSVによるチャート分析とメトリクス取得を行い、1ターン最大5回のツール呼び出しを使います。AI推論はOllamaを介してローカルで実行されますが、収集データの表示範囲は別に確認します。

Argon2idとヘルスエンドポイント

認証は任意です。有効にするとArgon2idのパスワードハッシュ、安全なセッションCookie、滑動式の有効期限、ハッシュ化したセッション永続化、Bearerセッショントークンを使います。パスワードハッシュを生成し、その出力を`config.yaml`の`web.auth`へ入れる手順がREADMEにあります。

ヘルス確認の入口は`/health`と`/status`で、どちらも200 OKと`kula is healthy`を返します。Cookieフラグやセッション期限の既定値は未記載なので、外部公開前に認証、リバースプロキシ、ネットワーク制限、ログの秘密情報を確認します。

配布、プライバシー、AGPL-3.0

amd64 GNU/Linux向けにインストーラ、SHA-256付きtarball、Docker、deb、rpm、AUR、Snap、`./addons/build.sh`によるビルドが案内されています。ARMとRISC-Vのパッケージもリリースにあるとされ、Snapは厳格なサンドボックスで機能が制限される場合があります。チェックサムはリリース0.18.8の例で検証します。

Kulaはクラウド接続、第三者API、登録、広告を必要とせず、エアギャップ環境で動作し外部へメタデータを送らないとREADMEは説明します。ライセンスはAGPL-3.0です。向くのは自己管理ホストの短中期監視で、まず保持期間、復旧、認証、チェックサム、Prometheus取得を確認してから採用します。

保持期間と公開面を測る

`config.yaml`をバックアップしてKulaを起動し、CPU、メモリ、ネットワーク、Docker統計を収集します。WebSocketのライブ値、履歴API、Prometheus exporter、TUIを同時刻に比べ、1秒データが1分と5分の集約へどう変わるかを確認します。既定容量で古いデータが上書きされる時点も測ります。

認証を有効にしてArgon2idのハッシュを設定し、`/health`と`/status`、未認証のダッシュボード、Bearerトークンを確認します。DockerやSnapのデバイス差も比較します。Ollamaを接続する場合はCSV分析とツール呼び出しがローカルに留まること、1ターン最大5回の制限が動くことを記録します。

リングの上書きを可視化する

既定容量で1秒サンプルを保存し、履歴APIから最古の時刻がいつ消えるかを確認します。再起動前後の最新値と1分・5分集約を比較し、Prometheusへ送る現在値とKula内の履歴を区別します。保存ファイルをバックアップして復旧し、認証を有効にした状態でWebSocketとTUIの公開範囲も確認します。 保持期間を実測し、再起動後の最新値と履歴を確認します。 履歴の最古時刻とファイル容量を定期的に記録し、上書き時期を運用値にします。

編集部の結論

クラウドへ監視データを送りたくないLinux管理者が、単一ホストの状態をWebと端末で確認する用途に向きます。固定容量のリングバッファは古いデータを上書きするため、長期履歴や複数ホストの上限を暗黙に期待できません。まず`config.yaml`、保存ファイル、`/health`、認証、再起動後の集約データを確認し、保持期間が運用要件に足りるかを測ってください。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート